I'm not able to get the device to suspend. Firmware seems to work properly as disabling the device from the device manager will suspend it and enabling it will wake up.
In normal operation Windows keeps sending some brief burst with 125us interval which I assume are SOF packets. Disabling from the device manager will end SOF packets. I think this should be the situation if suspend would work properly
Device is connected to the USB root hub which is also hosting mouse and keyboard. I guess that selective suspend should be used to suspend separate USB hub ports?
I have been reading Microsoft documentation about USB suspend but I think that I'm even more confused now. There is all kinds of separate documents about power policies and suspend. Some suggest adding some registry entries to the .inf file which in this case is cyUSB3.inf. Those I tried and they did nothing. Some documents are describing some functions or other stuff needed to be made in the drivers to make selective suspend. I'm not familiar with Windows programming or drivers and this all does not make any sense to me.
I hope somebody here at the community or at the Cypress could help me? I'm sure someone have tackled this already as the suspend is integral part of USB and should be working by default.
To put the device into suspend:
Do the following:
1. Enable remote wake up functionality in the firmware.
2. Enable the selective suspend in your PC power option settings as shown in the attached picture.
Then you should see the device go to suspend after 10S of no Bus activity (Here assumption is that the driver the device is bound to is cyusb3)