nuttx/drivers
Justin Hammond 572b7a0b55 usbhost: Report what a hub is on the port it occupies.
Some host controllers must be told about the hubs in a topology, not only
about the device at the end of it.  xHCI is one: a hub's slot context
carries a hub flag, its downstream port count and the think time of its
transaction translator, and the controller routes to anything behind that
hub using them.

The hub class driver already reads both values from the hub descriptor and
keeps them privately.  Publish them on the hub's own hub port, beside the
speed and function address that already describe the device attached
there.  A driver setting up a device behind a hub finds them on that
device's parent.

They are written before the hub activates any downstream port, so they are
in place before there is anything behind it, and a port with no hub
reports zero ports because the hub class clears each child before use.
Nothing is required to read them.

Fields rather than a driver method: a method would need a null check at
the call site and would define an order it must be called in.  Both are
inside CONFIG_USBHOST_HUB, as struct usbhost_hubport_s's parent pointer
already is.

Multi-TT is not included; it comes from the hub's interface protocol
rather than its descriptor, and driving a multi-TT hub as single-TT costs
bandwidth behind it but is correct.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Justin Hammond <justin@dynam.ac>
2026-09-28 21:45:57 +08:00
..
1wire drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
aie Documentation,drivers/aie: align machine learning docs with current code 2026-09-19 15:16:18 -03:00
analog drivers/analog: add MCP445X potentiometer support 2026-08-08 18:37:08 +08:00
audio drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
bch drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
can drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
clk !include/fcntl.h: align open flags with Linux values 2026-06-30 13:43:44 +08:00
contactless drivers/contactless: fix uninitialized uid leak in mfrc522_read 2026-07-13 19:50:57 +08:00
coresight drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
crypto drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
devfreq drivers/devfreq: add ondemand governor build support 2026-08-08 15:23:54 -03:00
devicetree
dma
dummy
eeprom drivers/eeprom: add 24CW160 support 2026-08-06 12:39:36 +02:00
efuse drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
i2c drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
i2s drivers/efuse/efuse: Drivers Registered With World Write Permissions(Part 1) 2026-07-13 12:08:01 +02:00
i3c nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
input input/gt9xx: fix register write and no-contact read 2026-08-31 16:16:21 +08:00
ioexpander drivers/ioexpander/sx1509: include nuttx/arch.h for up_mdelay 2026-09-24 20:16:12 +08:00
ipcc drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
lcd drivers/lcd: honour the LCD_APA102_* settings in the apa102 LCD driver 2026-08-13 09:54:26 -03:00
leds drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
loop drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
math drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
misc libs/libc: Fix divide-by-zero in stat() with large filesystem block sizes 2026-07-16 23:37:22 +08:00
mmcsd drivers/mmcsd: Switch SD cards into high speed. 2026-08-18 09:38:45 +08:00
modem sched/semaphore: Remove the return value check of nxsem_init/nxmutex_init 2026-09-25 10:37:43 +02:00
motor drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
mtd sched/semaphore: Fix pre-existing nxstyle issues in the touched files 2026-09-25 10:37:43 +02:00
net nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
note nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
pci drivers/pci/pci.c: fix nxstyle issues 2026-08-25 01:40:32 +08:00
pinctrl drivers/pinctrl: Add pad read-back and a procfs entry. 2026-08-21 20:04:59 +08:00
pipes drivers/: Multiple Drivers Are Registered With World Writable Part 3 2026-07-16 09:49:07 -03:00
power drivers/power: Describe the regulators through procfs. 2026-08-18 17:28:02 +08:00
rc drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
regmap
reset nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
rf drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
rpmsg nuttx/atomic: replace atomic_fetch_xxx with atomic_xxx just like zephyr 2026-08-24 13:20:45 +08:00
rptun drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
segger cmake: Use NUTTX(_DIR/_BIN_DIR) instead CMAKE(_SRC_DIR/_BIN_DIR) 2026-08-09 11:13:08 -03:00
sensors sched/semaphore: Fix pre-existing nxstyle issues in the touched files 2026-09-25 10:37:43 +02:00
serial drivers/serial/serial.c: fix nxstyle 2026-09-18 08:36:25 -03:00
spi drivers/spi/ice40: fix operator precedence in final clock cycle count 2026-07-20 17:05:01 +08:00
syslog syslog/ramlog: Survive writes made before the OS is ready. 2026-08-08 15:20:54 -03:00
thermal drivers/thermal: Cool a devfreq device instead of a cpufreq policy. 2026-08-18 09:46:47 -03:00
timers drivers/timers/ptp_clock_dummy: fix the nanoseconds of the monotonic time. 2026-09-20 17:54:48 -03:00
usbdev sched/semaphore: Fix pre-existing nxstyle issues in the touched files 2026-09-25 10:37:43 +02:00
usbhost usbhost: Report what a hub is on the port it occupies. 2026-09-28 21:45:57 +08:00
usbmisc drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
usbmonitor
usrsock drivers/: Multiple Drivers Are Registered With World Writable - Part 2 2026-07-15 15:27:28 +08:00
vhost drivers/vhost: Optimize vhost-net performance and robustness 2026-09-27 18:41:30 +08:00
video drivers/video: zero message on MIPI DSI driver 2026-07-24 20:57:57 -03:00
virtio drivers/input: partial fix of indistinguishable ASCII and special keycodes 2026-07-29 22:51:15 -03:00
wireless sched/semaphore: Fix pre-existing nxstyle issues in the touched files 2026-09-25 10:37:43 +02:00
.gitignore
CMakeLists.txt
drivers_initialize.c driver/devfreq: add procfs for devfreq 2026-08-08 15:23:54 -03:00
Kconfig driver/devfreq: DVFS framework for devices 2026-08-08 15:23:54 -03:00
Makefile driver/devfreq: DVFS framework for devices 2026-08-08 15:23:54 -03:00