support of FunctionRemoteWake

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
RoKl_290166
Level 4
Level 4
Welcome!

Hello,

   

does the FX3 support the FunctionRemoteWake-capability?

   

If I do a GetStatus on the first interface of a function (consisting of 3 interfaces) I get always 0x0000 for the 2 status-bytes. This would mean the device is not FunctionRemoteWake-capable (as bit D0 = 0) and I found no API where I could enable or disable this capability in the FX3-firmware?!

   

 

   

Regards,

   

Robert

0 Likes
3 Replies
Anonymous
Not applicable

Yes. FX3 does support Function remote wake capability.

   

 

   

We have a pair of APIs that can help the device signal remote wake:

   

 

   

"CyU3PUsbSetLinkPowerState (CyU3PUsbLPM_U0)" should be called to initiate the LFPS signalling to get the USB link back to U0 from U3.

   

 

   

"CyU3PUsbSendDevNotification (1, 0, 0)" should be called to send a DEV_NOTIFICATION(FUNCTION_WAKE) TP to the host after the link is back in U0.

   

 

   

One constraint we have is that the driver will only send 0s in response to a GET_STATUS command addressed to the interface. This means that it is not possible for the application to indicate FUNCTION_WAKE support when fast enumeration is in use.

   

 

   

The work-around to this is to disable fast enumeration, and then implement only the GET_STATUS command in the Setup CB. The application can return CyFalse for all other setup commands, thus letting the driver handle them.

   

 

   

I am attaching a piece of code where this is done, and remote wakeup is performed based on GPIO interrupt.

   

Thanks,

   

sai krishna.

lock attach
Attachments are accessible only for community members.
Anonymous
Not applicable
0 Likes
RoKl_290166
Level 4
Level 4
Welcome!

Thanks, that helps!

0 Likes