Merge branch 'ci/esp32s31_usb_host_enable' into 'master'

ci(usb/host): enable esp32s31 and esp32h4 for USB host examples

See merge request espressif/esp-idf!47654
This commit is contained in:
Igor Masar
2026-04-17 18:26:55 +08:00
9 changed files with 29 additions and 19 deletions

View File

@@ -838,9 +838,6 @@ examples/peripherals/usb/device/tusb_ncm:
examples/peripherals/usb/host:
disable:
- if: SOC_USB_OTG_SUPPORTED != 1
- if: IDF_TARGET == "esp32s31"
temporary: true
reason: USB host examples do not support esp32s31 yet
disable_test:
- if: IDF_TARGET not in ["esp32s3", "esp32p4"]
temporary: true

View File

@@ -1,5 +1,5 @@
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- |
# USB CDC Host Driver Example

View File

@@ -1,5 +1,5 @@
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- |
# 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).

View File

@@ -1,5 +1,5 @@
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- |
# USB Mass Storage Class example

View File

@@ -1,15 +1,24 @@
# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: CC0-1.0
import pytest
from pytest_embedded import Dut
from pytest_embedded_idf.utils import idf_parametrize
@pytest.mark.temp_skip_ci(targets=['esp32s2'], reason='lack of runners with usb_host_flash_disk tag')
@pytest.mark.temp_skip_ci(
targets=['esp32s2', 'esp32s31', 'esp32h4'], reason='lack of runners with usb_host_flash_disk tag'
)
@pytest.mark.usb_host_flash_disk
@idf_parametrize(
'config,target',
[('default', 'esp32s2'), ('default', 'esp32s3'), ('default', 'esp32p4'), ('esp32p4_psram', 'esp32p4')],
[
('default', 'esp32s2'),
('default', 'esp32s3'),
('default', 'esp32p4'),
('esp32p4_psram', 'esp32p4'),
('default', 'esp32s31'),
('default', 'esp32h4'),
],
indirect=['config', 'target'],
)
def test_usb_host_msc_example(dut: Dut) -> None:

View File

@@ -1,5 +1,5 @@
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- |
# USB Host Library Example

View File

@@ -1,13 +1,15 @@
# SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: CC0-1.0
import pytest
from pytest_embedded import Dut
from pytest_embedded_idf.utils import idf_parametrize
@pytest.mark.temp_skip_ci(targets=['esp32s2'], reason='lack of runners with usb_host_flash_disk tag')
@pytest.mark.temp_skip_ci(
targets=['esp32s2', 'esp32s31', 'esp32h4'], reason='lack of runners with usb_host_flash_disk tag'
)
@pytest.mark.usb_host_flash_disk
@idf_parametrize('target', ['esp32s2', 'esp32s3', 'esp32p4'], indirect=['target'])
@idf_parametrize('target', ['esp32s2', 'esp32s3', 'esp32p4', 'esp32s31', 'esp32h4'], indirect=['target'])
def test_usb_host_lib_example(dut: Dut) -> None:
# register client
dut.expect_exact('CLASS: Registering Client')

View File

@@ -1,5 +1,5 @@
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | -------- | -------- | -------- | -------- |
| Supported Targets | ESP32-H4 | ESP32-P4 | ESP32-S2 | ESP32-S3 | ESP32-S31 |
| ----------------- | -------- | -------- | -------- | -------- | --------- |
# USB Camera Example

View File

@@ -24,5 +24,7 @@ no_runner_tags:
- esp32c6,jtag
- esp32c61,jtag
- esp32h2,jtag
- esp32h4,usb_host_flash_disk
- esp32p4,jtag
- esp32s2,usb_host_flash_disk
- esp32s31,usb_host_flash_disk