Hi! I designed a new hardware by using CH335F, But I find uhubctl does not support it! How could I make it to be supported #519
Replies: 2 comments
-
Here is the lsusb -v output |
Beta Was this translation helpful? Give feedback.
-
uhubctl is enumerating all hubs, then for each hub it checks hub descriptor for power switching mode supported. It could be none, ganged or ppps (per port power switching). None means power switching is not supported. Ganged means all ports power must be turned off to turn any given port off - uhubctl will skip such hubs (unless you force it with option -f). And finally, hub can report ppps, which means all ports can be individually turned off or on. Unfortunately many hubs may report ppps, but not really support it. Once we know that hub supports ppps, we can send special USB control message to the hub itself to turn off specific port - this is documented in USB 2.0 specification. Your newly designed hub should understand such control message and do appropriate circuitry switching to cut power off. Unfortunately, this can be greatly complicated for USB 3 hubs. Each USB 3 hub is actually two independent hubs in one package: USB 2 and USB 3, and they share access to physical ports. If you want to turn off power to given port, you need to turn it off for both virtual hubs (USB 2 and USB 3), otherwise voltage will be still applied to given physical port. As outlined in README paragraph USB 3 duality, uhubctl will try to do that automatically. However, hub firmware must be smart enough to understand this complexity and act accordingly. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
All reactions