As per our API documentation, the CyU3PMipicsiGpifLoad API does not return CY_U3P_ERROR_NOT_SUPPORTED error.
refer section 126.96.36.199 in FX3 API Guide. Can you please double check if it is CY_U3P_ERROR_NOT_SUPPORTED or some other error?
There are cases in which a FX3/CX3 based board comes up with different PIDs for the Boot Loader such as 0x00BC, 0x00B0, 0x0053. These are the PIDs of few other devices of Cypress which share the same Boot Loader code as that of FX3. These devices have different set of PMODE values for their boot options.
When the PMODE Pins of FX3/CX3 are not soldered properly to appropriate values or if there is any fault in the PMODE Connection (High / Low / Tristate), the BootLoader code assumes FX3/CX3 as a different Cypress devices and assigns any one of the PIDs of 0x00BC, 0x00B0, 0x0053. These PIDs are recognized by the cyusb3.sys Driver.
When this issue occurs, try any of these solution:
1) Re-check the PMODE Connections.
2) Manually bind the Cypress Driver to the FX3/CX3 Device with different PID using the Device manager. (Before binding, the device appears in the name “WestBridge” in the Device Manager) i.e you can go ahead with 0x00BC itself. This will not cause any probelem in the functionality
188.8.131.52 CyU3PReturnStatus_t CyU3PMipicsiGpifLoad ( CyU3PMipicsiBusWidth_t busWidth, uint32 t bufferSize )
Fixed Function GPIF Waveform Load.
CY_U3P_SUCCESS - If the operation is successful CY_U3P_ERROR_NOT_SUPPORTED - If the part on which
this function is called is not a CX3 device.
This is from the EZ-USB® FX3 SDK Firmware API Guide Version 1.3.3
Below is a piece of a code we use:
status = CyU3PMipicsiGpifLoad(CY_U3P_MIPICSI_BUS_16, ES_UVC_DATA_BUF_SIZE);
if (status != CY_U3P_SUCCESS)
CyU3PDebugPrint (4, "\n\rAppInit:MipicsiGpifLoad Err = 0x%x", status);
if (status == CY_U3P_ERROR_NOT_SUPPORTED)
/* a pulse on test point 17*/
status = CyU3PGpioSetValue (21, CyTrue);
status = CyU3PGpioSetValue (21, CyFalse);
I'll check PMODE pins connections
Dear Madhu Sudhan,
Thank you for your suggestion to check PMODE pins. PMODE was set to 1 on our board.
When I left it floating MIPI-CSI block was initialized successfully. The board has a right PID (F3).
With kind regards,