We are using the CY7C65632-28LTXC in a new design. Power control for downstream ports is managed by AP2161DM8G-13 from Diodes Inc. The CY7C65632 is perminently connected to the USB host which is an Arm processor running a Linux 3.0.35 kernel.
We are seeing a strange behaviour where power to the downstream ports is being disabled when no devices are connected to the CY7C65632.
During boot, if at least one device is connected it will enumerate and power will remain active on all ports. If we remove the device after boot, power to the ports is disabled shortly after.
If we run lsusb -v from the Linux command line, power will appear on the ports again for a short period of time. If a device is connected when power is present, the device will enumerate and power will remain active. If we then remove the device, power disappears again and no enumeration of devices occur until we run lsusb -v again.
Running lsusb without the -v (verbose) switch does not activate power on the USB ports.
Our theory is that when there is no power at the downstream USB ports, newly connected devices cannot be detected as the slave device doesn't see power and can't pull the D+ or D- lines up to initiate enumeration. lsusb -v must somehow wake the CY7C65632 chip up (perhaps to re-read device descriptors?), and during this process any connected slave devices are able to pull up the D+ / D- lines and trigger enumeration.
It is interesting to note that as long as at least one device is connected and enumerated, all ports appear to continueworking until the last device is removed.
We have monitored all of the over current pins and do not see them being asserted at any time during testing. This is confirmed by no over current messages appearing in the Linux logs.
It seems unlikely that there is would be something wrong with the CY7C65632 chip, but also equally unlikely that Linux is advising the hub to power down the ports when no devices are connected, preventing detection of newly connected devices.