Options with mainline linux kernel drivers:
- MCP2221A (i2c + 4x GPIO)
- CP2112 (i2c + GPIO)
Options without kernel support:
- FT232H
- Arduino nano and clones
- Raspberry Pi Pico running some interesting firmware
- ESP32 running something like ESPHome (completely separate from host)
I've chosen the Pico for now and forked the u2if project for firmware and host support[1]. I also put together a generic ESPHome-compatible protocol server in python to tie my widgets to Home Assistant[2].