Unfortunately, this is not an ideal design.

- Most USB hub chips can be strapped/hard wired configured, or controllable by i2c already directly. Funnily enough this chip isn't, but is extremely cheap (less than 24 cents!).

- The "port enable" feature on this design only controls VBUS (power pin of each connector), not the hub itself, so on a self-powered device it may not actually disconnect the device if it doesn't need VBUS to operate.

[1]: https://www.lcsc.com/product-detail/USB-ICs_CoreChips-SL2-1A...

Hub chips often already have pins for per port VBUS control, and you just need to wire P-channel mosfets to them (hub manufacturers often cheap out on this). You can then control port power through sysfs.

In my experience this support was rare. I had an issue a few years ago with multiple USB 3 cameras (Intel Realsense) on a mobile robot that would periodically freeze up and need to be hard-reset, and a power-controllable hub seemed like the least-bad way to hack around it. I found my way to this tool, with its convenient list of compatible hardware:

https://github.com/mvp/uhubctl

Of the USB 3 options on the list, several were EOL or impossible to find, and when I ordered one each of the remainder, there was only one I could get working, and it wasn't reliable about being able to reset a device that had frozen to the point where Linux no longer had sysfs entries for it.

We ended up instead using a hub with an internal jumper to disable bus power, and then putting the self power line through a separately-controllable relay.