Merge branch 'feat/usb-h4-support' into 'master'

feat(soc/usb): Add USB support for ESP32-H4

Closes IDF-12341 and IDF-12342

See merge request espressif/esp-idf!41642
This commit is contained in:
Igor Masar
2025-10-09 18:28:16 +08:00
26 changed files with 2697 additions and 30 deletions
@@ -136,6 +136,9 @@ examples/peripherals/i2s/i2s_advance/i2s_usb:
- if: SOC_I2S_SUPPORTED != 1
- if: SOC_I2C_SUPPORTED != 1
- if: SOC_USB_OTG_SUPPORTED != 1
- if: IDF_TARGET == "esp32h4"
temporary: true
reason: usb_device_uac does not support esp32h4
depends_components:
- esp_driver_i2s
- esp_driver_i2c
@@ -559,6 +562,12 @@ examples/peripherals/usb/device:
depends_filepatterns:
- examples/peripherals/usb/device/**/*
examples/peripherals/usb/device/cherryusb_serial_device:
disable:
- if: (IDF_TARGET == "esp32h4") or (SOC_USB_OTG_SUPPORTED != 1)
temporary: true
reason: CherryUSB does not support esp32h4
examples/peripherals/usb/device/tusb_ncm:
disable:
- if: SOC_USB_OTG_SUPPORTED != 1 or SOC_WIFI_SUPPORTED != 1
@@ -592,6 +601,12 @@ examples/peripherals/usb/host:
- components/esp_hw_support/include/esp_private/usb_phy.h
- examples/peripherals/usb/host/**/*
examples/peripherals/usb/host/cherryusb_host:
disable:
- if: (IDF_TARGET == "esp32h4") or (SOC_USB_OTG_SUPPORTED != 1)
temporary: true
reason: CherryUSB does not support esp32h4
examples/peripherals/usb_serial_jtag/usb_serial_jtag_echo:
disable:
- if: SOC_USB_SERIAL_JTAG_SUPPORTED != 1
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# TinyUSB Composite Device (MSC + Serial) Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# TinyUSB Sample Descriptor
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# TinyUSB Human Interface Device Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# TinyUSB MIDI Device Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# TinyUSB Mass Storage Device Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# TinyUSB Serial Device Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# USB CDC-ACM Host Driver Example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# USB CDC-ACM Virtual COM Port example
+2 -2
View File
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# USB HID Class example
This example implements a basic USB Host HID Class Driver, and demonstrates how to use the driver to communicate with USB HID devices (such as Keyboard and Mouse or both) on the ESP32-S2/S3. Currently, the example only supports the HID boot protocol which should be present on most USB Mouse and Keyboards. The example will continuously scan for the connection of any HID Mouse or Keyboard, and attempt to fetch HID reports from those devices once connected. To quit the example (and shut down the HID driver), users can GPIO0 to low (i.e., pressing the "Boot" button on most ESP dev kits).
+2 -2
View File
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# USB Mass Storage Class example
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# USB Host Library Example
+2 -2
View File
@@ -1,5 +1,5 @@
| Supported Targets | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
# USB Camera Example