Tomas Rezucha
6eb5def1d0
ci(usb/device): re-enable usb_device tests for ESP32-P4
2025-11-26 16:00:15 +01:00
Tomas Rezucha
94f81da483
feat(usb/device): Add USB device support to ESP32-P4 v3
2025-10-20 09:46:18 +02:00
Tomas Rezucha
39be672f8e
feat(usb/host): Add USB Host support to ESP32-P4 v3
2025-10-20 09:46:18 +02:00
Tomas Rezucha
ab5e48b026
feat(usb/host): Add option to choose peripheral for USB host library
...
Starting with ESP32-P4 we can have targets that have more than 1 USB-OTG peripheral.
This commit adds an option to choose which peripherals will be used by USB Host lib.
Internally, we will still have only 1 Root HUB but with multiple Root ports.
2025-06-30 08:47:45 +02:00
Tomas Rezucha
73058bfca0
docs(usb): Update ESP32-P4 USB pins to MP version
...
Closes https://github.com/espressif/esp-idf/issues/16136
2025-06-16 16:39:22 +02:00
Tomas Rezucha
4b15ef706b
Merge branch 'fix/usb_comprehensive_heap' into 'master'
...
fix(usb/host): Do not call heap_caps_get_allocated_size() in USB host driver
Closes IDFGH-15138
See merge request espressif/esp-idf!38715
2025-04-30 14:22:08 +08:00
Tomas Rezucha
6badd2cf25
fix(usb/host): Do not call heap_caps_get_allocated_size() in USB host driver
...
It causes heap corruption if heap poisoning is enabled on ESP32-P4.
It returns incorrect size on ESP32-S3.
Closes https://github.com/espressif/esp-idf/issues/15815
2025-04-29 14:50:11 +08:00
Tomas Rezucha
ca58556221
Merge branch 'fix/usb_host_ep_char_ls_via_fs' into 'master'
...
fix(usb_host): Correctly initialize set pipe ep char
Closes IDF-12980
See merge request espressif/esp-idf!38631
2025-04-23 14:49:16 +08:00
Tomas Rezucha
206fe63029
Merge branch 'feat/new_usb_uvc_example' into 'master'
...
refactor(usb/host): Update UVC example for new UVC driver v2.0
Closes IDF-10240
See merge request espressif/esp-idf!38359
2025-04-22 18:26:43 +08:00
Tomas Rezucha
1816b95261
refactor(usb/host): Update UVC example for new UVC driver v2.0
2025-04-22 08:48:18 +02:00
Tomas Rezucha
b37c882aa9
Merge branch 'docs/update_cn_translation_for_usb' into 'master'
...
docs: Provide CN translation for usb device
See merge request espressif/esp-idf!38387
2025-04-15 22:37:08 +08:00
Tomas Rezucha
179a468adf
Merge branch 'fix/usb_host_hcd_test_pipe_stall' into 'master'
...
feat(usb_host): Fix HCD test HCD control pipe STALL
See merge request espressif/esp-idf!38338
2025-04-15 20:43:15 +08:00
Tomas Rezucha
602a777dbd
Merge branch 'mock/usb_dev_info' into 'master'
...
mock(usb): Extend USB mock with usb_host_device_info()
See merge request espressif/esp-idf!37952
2025-03-25 17:52:53 +08:00
Tomas Rezucha
914d003c7b
test(usb): Extend USB mock with usb_host_device_info()
...
Also provide mocks for CTRL transfers usb_host_transfer_submit_control()
2025-03-25 08:10:30 +01:00
Tomas Rezucha
51fd02dd83
Merge branch 'fix/usb_phy_set_speed' into 'master'
...
fix(usb/phy): Fixed crash on external PHY init with speed != UNDEFINED
See merge request espressif/esp-idf!37218
2025-02-26 19:50:23 +08:00
Tomas Rezucha
ca24a117c7
fix(usb/phy): Fixed crash on external PHY init with speed != UNDEFINED
...
Also deprecated usb_phy_otg_dev_set_speed()
and usb_phy_action() which are no longer used in esp-idf
2025-02-21 14:11:51 +01:00
Tomas Rezucha
f9d580210c
Merge branch 'fix/usb_non_periodic' into 'master'
...
fix(usb/host): Set SCHED_INFO for all channels
Closes IDF-12035
See merge request espressif/esp-idf!36724
2025-02-06 00:20:24 +08:00
Tomas Rezucha
e80a84c148
fix(usb/host): Set SCHED_INFO for all channels
...
Although the hardware documentation suggests that SCHED_INFO is only used
for periodic channels, empirical evidence shows that omitting this configuration
on non-periodic channels can cause them to freeze.
Therefore, we set this field for all channels to ensure reliable operation.
2025-02-05 02:35:48 +08:00
Tomas Rezucha
dfcc0b22c9
Merge branch 'fix/periodic_fs_usb_on_p4' into 'master'
...
fix(usb/host): Fixed Full Speed periodic transfers on ESP32-P4
Closes IDF-11988
See merge request espressif/esp-idf!36560
2025-01-27 17:28:24 +08:00
Tomas Rezucha
125a3f0297
refactor(usb): Include supported PHYs information in SoC
2025-01-24 14:03:04 +01:00
Tomas Rezucha
ce59bd4017
fix(usb): Fixed missing GPIO drive capability on ESP32-P4
...
All USB PHYs that share their IOs with GPIOs must set
the GPIO's drive capability to maximum.
2025-01-24 14:02:52 +01:00
Tomas Rezucha
91f0cb493f
fix(usb/host): Fixed Full Speed periodic transfers on ESP32-P4
...
For FS periodic endpoints 'tokens_per_frame' must be set to 8
LL usb_dwc_ll_hctsiz_set_sched_info() function.
2025-01-24 13:43:32 +01:00
Tomas Rezucha
70ead76a4d
Merge branch 'refactor/usb_merge_p4_phy' into 'master'
...
refactor(usb/phy): Merge P4 and S2/S3 PHYs into one module
Closes IDF-11902
See merge request espressif/esp-idf!36249
2025-01-16 16:39:21 +08:00
Tomas Rezucha
65c2cc095d
refactor(usb/phy): Merge P4 and S2/S3 PHYs into one module
...
P4 had separate PHY implementation for initial bring-up,
now we can merge it with the original PHY driver.
2025-01-15 11:18:10 +01:00
Tomas Rezucha
b92e993d56
Merge branch 'refactor/cleanup_usb_phy' into 'master'
...
Cleanup USB PHY
See merge request espressif/esp-idf!35783
2025-01-08 16:11:54 +08:00
Tomas Rezucha
c97b2e6cc8
refactor(usb/phy): Start using values from usb_dwc_info in PHY driver
...
Add tests for PHY sanity checks
2025-01-07 10:00:48 +01:00
Tomas Rezucha
a66cecd250
refactor(usb/phy): Do not use deprecated variables in usb_phy
2025-01-07 09:10:23 +01:00
Tomas Rezucha
3132ffbcd7
feat(hal/usb): Explicitly enable clock and reset USB WRAP on init
2025-01-07 09:10:23 +01:00
Tomas Rezucha
f029ad207f
Merge branch 'fix/usb_ctrl_nyet' into 'master'
...
fix(usb/host): Fix reaction on High-Speed NYET packet
See merge request espressif/esp-idf!35737
2025-01-02 17:25:35 +08:00
Tomas Rezucha
a57e4d7bdd
Merge branch 'feat/dfu_p4' into 'master'
...
feat(dfu): Enable DFU on ESP32-P4
Closes IDF-7757
See merge request espressif/esp-idf!35539
2024-12-18 23:57:23 +08:00
Tomas Rezucha
3fd2f53c68
fix(usb/host): Fix reaction on High-Speed NYET packet
...
In Scatter-Gather DMA mode, the USB-DWC will automatically enable
PING protocol if an OUT packet is NACKed by the High-Speed device.
The PING bit must be manually reset.
2024-12-17 17:45:54 +01:00
Tomas Rezucha
bf86ab3926
feat(dfu): Enable DFU on ESP32-P4
2024-12-11 09:23:32 +01:00
Tomas Rezucha
691a0ee1fd
Merge branch 'feature/usb_ctrl_hint' into 'master'
...
feat(hints/usb): Add a hint about too small control transfer size
See merge request espressif/esp-idf!34936
2024-11-18 21:03:30 +08:00
Tomas Rezucha
66596b7f59
feat(hints/usb): Add a hint about too small control transfer size
2024-11-18 21:03:30 +08:00
Tomas Rezucha
e613fcde6e
Merge branch 'contrib/github_pr_14738' into 'master'
...
fix(docs): code comment spelling error (GitHub PR)
Closes IDFGH-13896
See merge request espressif/esp-idf!34863
2024-11-13 19:23:47 +08:00
Tomas Rezucha
5532fa8e26
Merge branch 'contrib/github_pr_14858' into 'master'
...
fix(examples/usb_host_lib): correct typo in comments (GitHub PR)
Closes IDFGH-14038
See merge request espressif/esp-idf!34861
2024-11-13 15:58:10 +08:00
Tomas Rezucha
1e7098fe97
Merge branch 'contrib/github_pr_14859' into 'master'
...
fix(usb_host): return ESP_ERR_NO_MEM on failed alloc in client register (GitHub PR)
Closes IDFGH-14037
See merge request espressif/esp-idf!34862
2024-11-13 15:33:11 +08:00
Tomas Rezucha
00dcf1a0c0
Merge branch 'docs/usb_host_examples_readme' into 'master'
...
docs(usb_host): Update usb_host example READMEs for P4
Closes IDFGH-13706 and IDFGH-10950
See merge request espressif/esp-idf!34510
2024-10-31 17:08:10 +08:00
Tomas Rezucha
f7da0175b0
docs(usb_host): Update usb_host example READMEs for P4
...
Closes https://github.com/espressif/esp-idf/issues/14578
Closes https://github.com/espressif/esp-idf/issues/12142
2024-10-31 09:00:59 +01:00
Tomas Rezucha
1805efb0b2
Merge branch 'feat/dynamic_usb_hal' into 'master'
...
feat(hal/usb): Make USB-DWC HAL&LL configuration independent
Closes IDF-11437
See merge request espressif/esp-idf!34045
2024-10-30 18:32:32 +08:00
Tomas Rezucha
d837cae2b0
feat(hal/usb): Make USB-DWC HAL&LL configuration independent
...
Previously, we included symbols from soc/usb_dwc_cfg.h and configured
the HAL and LL according to it. Now we get the configuration in runtime
from USB-DWC registers.
Added missing definition for USB FS peripheral on ESP32-P4.
2024-10-24 16:54:20 +02:00
Tomas Rezucha
e60ebae1e2
Merge branch 'refactor/usb_periph' into 'master'
...
Refactor: USB peripheral
See merge request espressif/esp-idf!33971
2024-10-24 19:35:41 +08:00
Tomas Rezucha
c1f5d3067f
feat(hal/usb): Add USB UTMI PHY HAL
...
* Add a bare-bones HAL API for the USB UTMI PHY
* Split USB-DWC LL per target
2024-10-24 15:18:30 +08:00
Tomas Rezucha
b02ad37a55
feat(soc/usb): Add USB related changes to soc_caps and usb_dwc_periph
...
This commit changes the following:
- Add types and data structures indicating the available USB controllers
for each target.
2024-10-24 15:18:30 +08:00
Tomas Rezucha
c2b5339275
Merge branch 'feat/usb_disconnect_api' into 'master'
...
refactor(usb): Update HCD tests to use port power off for disconnections
Closes IDF-11006
See merge request espressif/esp-idf!31179
2024-09-06 09:46:57 +08:00
Tomas Rezucha
19bf686d5e
feat(usb/host): Enable USB Host tests on P4
2024-09-05 19:41:07 +02:00
Tomas Rezucha
3857f779cc
fix(usb/host): Correctly handle unpowered port in HUB
2024-09-05 19:40:52 +02:00
Tomas Rezucha
19d488370f
Merge branch 'feat/usb_ls_p4' into 'master'
...
Fix USB Low-Speed devices on ESP32-P4
Closes IDF-9565
See merge request espressif/esp-idf!33201
2024-09-03 13:59:59 +08:00
Tomas Rezucha
ba16f50560
refactor(usb/host): Move P4 HS PHY function to correct LL file
...
Moved usb_wrap_ll_enable_precise_detection() in usb_wrap_ll.h
to usb_utmi_ll_enable_precise_detection() in usb_utmi_ll.h
Fixes commit 97d30e7c48
2024-09-02 14:39:28 +02:00
Tomas Rezucha
21c6c62087
fix(usb/host): Fix USB Low Speed devices connection on P4
...
P4 USB UTMI PHY was updated to specification v2.0
2024-09-02 14:39:22 +02:00
Tomas Rezucha
c990e1007d
Merge branch 'docs/usb_docs_p4' into 'master'
...
Update USB host & device documentation for P4
Closes IDF-7724
See merge request espressif/esp-idf!32855
2024-08-26 15:47:05 +08:00
Tomas Rezucha
c48d1641b4
docs(usb/host): Update USB host docs for ESP32-P4
2024-08-26 08:26:45 +02:00
Tomas Rezucha
d0220bd3e8
docs(usb/device): Update USB device docs for ESP32-P4
2024-08-26 08:26:39 +02:00
Tomas Rezucha
73e0948332
Merge branch 'docs/usb_maintainer_docs_p4' into 'master'
...
docs(usb/host): Update maintainer docs for ESP32-P4
See merge request espressif/esp-idf!32831
2024-08-22 22:21:31 +08:00
Tomas Rezucha
6457d3942d
Merge branch 'fix/usb_dma_api' into 'master'
...
fix(usb/host): Use new cache aligned DMA alloc functions
Closes IDF-10048
See merge request espressif/esp-idf!32891
2024-08-20 23:45:45 +08:00
Tomas Rezucha
512df697f0
docs(usb/host): Update maintainer docs for ESP32-P4
2024-08-20 08:14:21 +02:00
Tomas Rezucha
660319ecaf
fix(usb/host): Use new cache aligned DMA alloc functions
2024-08-20 08:13:32 +02:00
Tomas Rezucha
b71bf5f014
Merge branch 'docs/remove_c5_usb' into 'master'
...
docs(esp32c5): Remove USB docs from the 'docs_not_updated' list
Closes IDF-9456
See merge request espressif/esp-idf!32566
2024-08-05 16:31:49 +08:00
Tomas Rezucha
b0a308bdc0
docs(esp32c5): Remove USB docs from the 'docs_not_updated' list
2024-08-02 15:41:03 +02:00
Tomas Rezucha
33e68632b9
Merge branch 'fix/usb_hs_scheduler' into 'master'
...
fix(usb/host): Fix occasional ISOC scheduler skipping transfers
Closes IDFCI-2241
See merge request espressif/esp-idf!32012
2024-07-11 23:10:23 +08:00
Tomas Rezucha
43c06a5d11
fix(usb/host): Fix occasional ISOC scheduler skipping transfers
2024-07-09 16:59:27 +02:00
Tomas Rezucha
15c4d0e076
Merge branch 'fix/usb_isoc_error_status' into 'master'
...
fix(usb/host): Decode error flags in ISOC transfers
Closes IDF-7976
See merge request espressif/esp-idf!31873
2024-07-03 15:02:14 +08:00
Tomas Rezucha
04be071dc6
fix(usb/host): Decode error flags in ISOC transfers
2024-07-02 15:08:30 +02:00
Tomas Rezucha
67c10eafaa
Merge branch 'feature/usb_host_multi_configuration' into 'master'
...
USB Host multiconfiguration support pt1 (getting the configuration descriptor)
Closes IDFGH-11532 and IDF-8732
See merge request espressif/esp-idf!26760
2024-06-20 20:29:12 +08:00
Tomas Rezucha
e5bc2549ca
Merge branch 'fix/usb_host_enum_urb_rounded_for_string_desc' into 'master'
...
fix(enum): Returned usb_round_up_to_mps for control request of string descriptors
See merge request espressif/esp-idf!31487
2024-06-13 23:50:13 +08:00
Tomas Rezucha
6b10a3074a
fix(ci): Temporarily disable USB device tests on S3
...
Partially reverts 1302fd70ba
2024-04-17 11:43:10 +02:00
Tomas Rezucha
e9daf4912b
fix(usb/host): Do not allow unaligned cache access for M2C direction
2024-03-26 16:41:12 +01:00
Tomas Rezucha
ba1ce22b6c
Merge branch 'fix/usb_uvc_example_p4' into 'master'
...
USB Host UVC example fixes for P4
Closes IEC-94, IDF-4942, and IDF-6505
See merge request espressif/esp-idf!29560
2024-03-21 17:47:51 +08:00
Tomas Rezucha
4f900edb06
Merge branch 'feat/esp_hid_clean_interface' into 'master'
...
refactor(esp_hid): Create one common event loop
See merge request espressif/esp-idf!29449
2024-03-14 21:31:49 +08:00
Tomas Rezucha
868d375c1d
refactor(esp_hid): Create one common event loop
...
After this change, only one event loop is created.
It is reused by all transport layers (BT, BLE, USB).
2024-03-14 11:34:13 +01:00
Tomas Rezucha
348d4ef18d
fix(usb/examples): Fix UVC example crash on non-UVC device connection
2024-03-12 20:19:12 +01:00
Tomas Rezucha
fa2986fdef
Merge branch 'feat/usb_host_sync_types' into 'master'
...
Add synchronization types from USB specs table 9-13
See merge request espressif/esp-idf!29263
2024-03-12 14:48:16 +08:00
Tomas Rezucha
c5dd4a827c
Merge branch 'fix/bbpll_usb_link_error' into 'master'
...
fix(esp_phy): Allow "Enable USB when phy init" option only on supported targets
Closes IDFGH-10996 and IDFGH-11554
See merge request espressif/esp-idf!27364
2024-03-07 19:43:01 +08:00
Tomas Rezucha
65515487a9
Merge branch 'revert-f68c131e' into 'master'
...
Revert "Merge branch 'ci/disable_p4_cdc_acm_host' into 'master'"
Closes IDFCI-2042
See merge request espressif/esp-idf!29418
2024-03-05 21:26:25 +08:00
Tomas Rezucha
832a706eb5
revert(usb_host): Revert temporary disable cdc_acm_vcp test for P4
...
This reverts commit b1bbca60ee
2024-03-05 10:04:10 +01:00
Tomas Rezucha
ea086840a4
fix(esp_phy): Allow WiFi/USB interference workaround option only on supported targets
...
"Enable USB when phy init" Kconfig option would call esp_phy function
`phy_bbpll_en_usb()` that is not implemented for all targets.
Selecting this option for unsupported target results in linking error.
The necessity of this workaround is now defined soc_caps.h rather than
in the Kconfig.
Closes https://github.com/espressif/esp-idf/issues/12185
2024-03-04 16:35:51 +01:00
Tomas Rezucha
33425140bf
Merge branch 'feature/usb_hs_periodic_scheduler' into 'master'
...
feat(usb/host): Update ISOC scheduler for HS endpoints
Closes IDF-7473
See merge request espressif/esp-idf!27804
2024-03-04 16:45:26 +08:00
Tomas Rezucha
93fc17575f
Merge branch 'refactor/esp_hid_astyle' into 'master'
...
refactor(esp_hid): Format the code with astyle
See merge request espressif/esp-idf!29302
2024-03-04 15:41:10 +08:00
Tomas Rezucha
72f00d7c6d
feat(usb/host): Update ISOC scheduler for HS endpoints
...
USB-OTG uses 'sched_info' field of HCTSIZ register to schedule transactions
in USB microframes.
2024-03-01 18:05:40 +01:00
Tomas Rezucha
6529f7e3ec
Merge branch 'ci/usb_host_add_p4_examples_ci' into 'master'
...
ci(USB): add ESP32-P4 runners to existing USB CI
Closes IDF-9127
See merge request espressif/esp-idf!28795
2024-02-29 18:43:16 +08:00
Tomas Rezucha
7f22c235db
refactor(esp_hid): Format the code with astyle
2024-02-27 14:48:43 +01:00
Tomas Rezucha
5863a27bd2
feat(usb/host): Add missing sync types from USB specification
2024-02-26 10:50:20 +01:00
Tomas Rezucha
c24dcd02c1
Merge branch 'feature/esp_hid_usb_preparation' into 'master'
...
refactor(esp_hid): Prepare for USB transport layer
See merge request espressif/esp-idf!28472
2024-02-12 16:29:12 +08:00
Tomas Rezucha
6f30198ca3
feat(esp_hid): Add Connection Request event
...
This event is useful for situations where the HID device
requests connection. Typically in USB transport.
2024-02-07 15:34:55 +08:00
Tomas Rezucha
f7bff8b1fc
refactor(esp_hid): Create new esp_hid_addr_t type
2024-02-07 15:34:55 +08:00
Tomas Rezucha
56a159a7d5
refactor(esp_hid): Move header files to esp_private directory
...
esp_hidd_private.h and esp_hidh_private.h are required by components
that extend esp_hid with a new transport layer, such as USB
2024-02-07 15:34:55 +08:00
Tomas Rezucha
81031490dc
Merge branch 'fix/usb_example_newlib_nano' into 'master'
...
fix(usb/example): Fixed MSC compilation with Newlib Nano format
Closes IEC-60
See merge request espressif/esp-idf!28702
2024-02-06 17:42:11 +08:00
Tomas Rezucha
49f3dae095
Merge branch 'ci/add_p4_usb_host_to_ci' into 'master'
...
feature(usb): Add USB support for ESP32-P4
Closes IDF-6873
See merge request espressif/esp-idf!28585
2024-01-31 22:04:23 +08:00
Tomas Rezucha
f13ae0fc08
feat(esp32p4): Add USB-OTG support for ESP32-P4
2024-01-30 15:07:11 +01:00
Tomas Rezucha
e511905fd2
fix(usb/example): Fixed MSC compilation with Newlib Nano format
...
https://github.com/espressif/idf-extra-components/issues/254
2024-01-25 09:51:51 +01:00
Tomas Rezucha
cb21994358
Merge branch 'fix/common_examples_cmake' into 'master'
...
fix(examples): Make esp_eth public dependency of protocol_examples_comon
See merge request espressif/esp-idf!28618
2024-01-23 23:55:30 +08:00
Tomas Rezucha
525bdf26f8
Merge branch 'feature/p4_usb_hal' into 'master'
...
feature(usb/host): Add HS PHY configuration
See merge request espressif/esp-idf!28549
2024-01-23 17:55:23 +08:00
Tomas Rezucha
21df64f4a9
fix(examples): Make esp_eth public dependency of protocol_examples_comon
2024-01-22 21:51:37 +08:00
Tomas Rezucha
ed1f20a972
feat(hal/usb): Add HS PHY configuration
2024-01-22 12:14:11 +01:00
Tomas Rezucha
8c1f5e6015
Merge branch 'fix/check_precommit_on_win' into 'master'
...
fix(pre-commit): Fixed README.md encoding on Windows
See merge request espressif/esp-idf!28587
2024-01-22 17:04:28 +08:00
Tomas Rezucha
c6204343a8
fix(pre-commit): Fixed README.md encoding on Windows
...
Windows will open the file using 'cp1252' encoding,
which may result in 'UnicodeDecodeError' for unsupported symbols.
2024-01-19 16:08:34 +01:00
Tomas Rezucha
2ab552a241
Merge branch 'refactor/usb_dependencies' into 'master'
...
refactor(usb/examples): Depend on new esp_driver_gpio
See merge request espressif/esp-idf!28552
2024-01-19 17:24:13 +08:00
Tomas Rezucha
a5e647cf7f
refactor(usb/examples): Depend on new esp_driver_gpio
...
This will exclude unneeded drivers from the build.
2024-01-18 07:28:06 +01:00
Tomas Rezucha
763d07fd0e
Merge branch 'fix/usb_fifo_sizes' into 'master'
...
feat(usb/host): Calculate FIFO sizes based on USB configuration
Closes IDF-7384
See merge request espressif/esp-idf!28316
2024-01-16 01:36:32 +08:00
Tomas Rezucha
488477e0aa
feat(usb/host): Calculate FIFO sizes based on USB configuration
2024-01-15 17:25:59 +01:00