Tactility/Platforms/platform-esp32/bindings/espressif,esp32-usbhost.yaml
Ken Van Hoeylandt cb4ce5246d
USB host refactored (#684)
- Create `USB_HOST_TYPE` base driver in TactilityKernel
- Refactor esp32_usbhost dts format, and create child devices dynamically
- Use PSRAM for task stacks where possible: saving 20 kB from just the task stacks, but roughly 30 kB when nothing is connected.
- Allow the user to disable USB host interface in the USB settings app, saving an additionaly 20 kB of IRAM when nothing was connected.
- Change listener-based APIs to subscribe and poll/await pattern. This avoids callstacks of apps and services leaking into the USB API

This results in big IRAM savings: 30 kB when USB host is on and nothing is connected, and 50 kB total when USB host is disabled.
This brings the total free IRAM after boot from roughly 170 kB to 200 kB (host enabled) or 220 kB (host disabled).
2026-10-10 13:33:32 +02:00

32 lines
1.1 KiB
YAML

description: ESP32 USB Host controller
compatible: "espressif,esp32-usbhost"
properties:
peripheral-map:
type: int
default: 0
description: |
Bitmask of USB OTG controllers to use. Only meaningful on ESP32-P4,
which has two independent USB DWC cores. On ESP32-S2/S3 this field
is ignored (single controller, always used).
Default 0 selects the default peripheral (P4 default: controller 0, HS/UTMI).
BIT(0) = controller 0 (HS, UTMI PHY - GPIO 49/50 aka USB2_OTG pins, e.g. USB-A on Tab5)
BIT(1) = controller 1 (FS, FSLS PHY - GPIO 24/25 aka USB1 pins, e.g. USB-C OTG on Tab5)
hid:
type: boolean
default: true
description: Detect HID devices (keyboard, mouse, consumer control)
midi:
type: boolean
default: true
description: Detect MIDI devices
msc:
type: boolean
default: true
description: Detect and mount mass storage devices
audio:
type: boolean
default: true
description: Detect USB Audio Class output devices (ESP32-S3 and ESP32-P4 only, ignored on other targets)