I'm trying to set the intf parameters for S-Port0 as follows:
intfParams.resetGpio = 0xFF;
intfParams.rstActHigh = CyFalse;
intfParams.cardDetType = CY_U3P_SIB_DETECT_DAT_3;
intfParams.writeProtEnable = 1;
intfParams.lowVoltage = CyFalse;
intfParams.voltageSwGpio = 0xFF;
intfParams.lvGpioState = CyFalse;
intfParams.useDdr = CyTrue;
intfParams.maxFreq = CY_U3P_SIB_FREQ_52MHZ;
intfParams.cardInitDelay = 0;
stat = CyU3PSibSetIntfParams (CY_U3P_SIB_PORT_0, &intfParams);
This is returning CY_U3P_ERROR_BAD_ARGUMENT and I don't understand why. Is there something I'm overlooking?
As per your code snippet, you are enabling the write protection on the storage port 0. GPIO used for write protection detection on Storage port 0 is GPIO 43. You need to configure this GPIO as simple GPIO in your firmware. Else the API CyU3PSibSetIntfParams will fail.
Please have a look.