Commit Graph
94 Commits
Author SHA1 Message Date
Tomas Rezucha d2a8b5e577 fix(usb/host): Correctly handle unpowered port in HUB 2024-10-09 11:16:17 +02:00
Tomas Rezucha 9f0ef05192 fix(enum): Returned usb_round_up_to_mps for control request of string descriptors 2024-09-06 10:02:37 +02:00
Tomas Rezucha 440f3308ab fix(usb/host): Fix occasional ISOC scheduler skipping transfers 2024-07-12 08:18:42 +02:00
Tomas Rezucha 61577616da fix(usb/test): Update MSC device test for new console 2024-07-11 11:09:12 +02:00
Tomas Rezucha 49d9fc0250 fix(usb/host): Decode error flags in ISOC transfers 2024-07-03 09:15:53 +02:00
Tomas Rezucha 6913f2721f feat(usb/host): Add missing sync types from USB specification 2024-06-04 20:34:52 +08:00
Tomas Rezucha 5be1323c0a fix(usb/uvc): Add PSRAM private requires 2024-04-12 14:12:29 +02:00
Tomas Rezucha 6f46cd332e fix(usb/host): Fixed crash on MSC disk disconnection 2024-03-08 12:09:48 +01:00
Tomas Rezucha bbb549c830 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-07 12:47:39 +01:00
Tomas Rezucha e3f811b5b8 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-04 10:00:35 +01:00
Tomas Rezucha f57ef07e14 feat(usb/host): Calculate FIFO sizes based on USB configuration 2024-02-19 15:45:02 +08:00
Tomas Rezucha 1e2c271bd0 fix(usb/host): Correctly parse bInterval field in HighSpeed EP descriptors
For LS and FS interrupt endpoint: interval = bInterval
For isochronous and HS interrupt endpoint: interval = 2^(bInterval-1)
2024-02-19 15:44:59 +08:00
Tomas Rezucha 0ce4aa114e fix(usb/host): Correctly parse MPS fields in HighSpeed EP descriptors
Bits [11,12] in HighSpeed periodic endpoints specify
the number of additional transaction opportunities per microframe
2024-02-19 15:44:59 +08:00
Tomas Rezucha 9b40d39120 refactor(usb/host): Move FIFO size configuration to HAL layer
The logic of calculating FIFO sizes is DWC OTG specific.
We move it to the HAL layer to provide better abstraction in the HDC layer.
2023-12-21 10:34:56 +01:00
Tomas Rezucha 71cd4df75a refactor(usb/host): Make private hal types USB_DWC specific 2023-12-21 10:34:46 +01:00
Tomas Rezucha 42277ac868 feat(usb/host): Add High Speed enumeration types 2023-12-21 10:33:49 +01:00
Tomas Rezucha 4cf3acb594 fix(usb/host): Do not abort on string descriptor overflow
Some devices return full LANGID table, even if short LANGID table was requested.
No memory overflow occurs, because we have allocated enough memory for transfers to the
default pipe. So we can ignore the error and continue with string desc fetching.
2023-12-05 16:44:53 +01:00
Tomas Rezucha 717aa73886 Merge branch 'feature/usb_msc_updates' into 'master'
refactor(usb_host/msc_example): Increase transfer speeds

See merge request espressif/esp-idf!26319
2023-10-24 22:51:00 +08:00
Tomas Rezucha e6fde2e13e refactor(usb/host_msc_example): Increase transfer speeds
- Upgrade to MSC driver 1.1.1 for zero copy transfers
- Use setvbuf() to increase size of VFS file buffer
- Add example test
2023-10-24 15:19:58 +02:00
Tomas Rezucha 6e92fc0416 feature(examples/usb): Define maximum opend files in MSC device example 2023-10-24 15:19:58 +02:00
Tomas Rezucha 31f11848d2 Merge branch 'feature/usb_examples_trim_build' into 'master'
change(usb/examples): Trim the builds of USB examples

See merge request espressif/esp-idf!26320
2023-10-10 23:33:11 +08:00
Tomas Rezucha b4c387f9f3 change(usb/examples): Trim the USB example builds
Include minimal set of components: main and everything it depends on
2023-10-10 10:28:47 +02:00
Tomas Rezucha f4dfc8ffb8 Merge branch 'feature/usbd_msc_mount_callback' into 'master'
USBD: update example of usb device msc by adding usage of new API.

Closes IDF-7369

See merge request espressif/esp-idf!23761
2023-05-23 22:59:41 +08:00
Tomas Rezucha 197c888611 Merge branch 'fix/usb/host/pytests' into 'master'
usb_host: Use up-to-date syntax in pytest

See merge request espressif/esp-idf!23280
2023-04-20 16:45:09 +08:00
Tomas Rezucha f2f6278ba6 usb_host: Use up-to-date syntax in pytest 2023-04-19 11:06:25 +02:00
Tomas Rezucha 9f2012156c Merge branch 'feature/usb/update_cdc_examples' into 'master'
usb: Update host CDC examples

See merge request espressif/esp-idf!22825
2023-04-04 21:24:44 +08:00
Tomas Rezucha 2c6d0bae90 usb: Update host CDC examples 2023-04-04 07:47:55 +00:00
Tomas Rezucha f3de7e574d Merge branch 'bugfix/usb_reg_header_definition_upd' into 'master'
USB: usb_reg.h update missing register bitfield description

See merge request espressif/esp-idf!22766
2023-03-22 17:43:43 +08:00
Tomas Rezucha 2b5caf34b7 tinyusb: Do not access string descriptor array out of boundaries
The previous version of esp_tinyusb (v1.0.0) always assumed 8 string descriptors.
In case the user passed a smaller array of descriptors,
esp_tinyusb accessed memory outside of the array.
This is fixed esp_tinyusb v1.1.0 by https://github.com/espressif/idf-extra-components/commit/046cc4b02f524d5c7e3e56480a473cfe844dc3d6
2023-02-23 11:16:37 +01:00
Tomas Rezucha bc314e1f8b Merge branch 'bugfix/usb_host/interface_parsing' into 'master'
usb_host: Fix interface descriptor parsing

See merge request espressif/esp-idf!22323
2023-02-13 15:17:54 +08:00
Tomas Rezucha 31ff3bc0c2 usb_host: Fix interface descriptor parsing
Previously the USB host driver did not accept interface number greater or equal bNumInterfaces, even though these are valid interface numbers
2023-02-10 15:49:11 +01:00
Tomas Rezucha 23fd449450 Merge branch 'feature/usb/update_tusb' into 'master'
usb: Update TinyUSB version

See merge request espressif/esp-idf!21591
2023-01-08 19:42:48 +08:00
Tomas Rezucha f3a63014f8 usb: Update TinyUSB version 2022-12-19 18:55:00 +01:00
Tomas Rezucha fb4b18db2f Merge branch 'feature/usb_host/cdc_ch340' into 'master'
USB Host: Expand VCP example

Closes IDFGH-7370 and IDFGH-8156

See merge request espressif/esp-idf!18940
2022-12-08 15:14:51 +08:00
Tomas Rezucha abdf7430e0 usb_host: Extend VCP example with more devices
Closes https://github.com/espressif/esp-idf/issues/9652
Closes https://github.com/espressif/esp-idf/issues/8951
2022-12-07 11:33:48 +00:00
Tomas Rezucha c64c6f3711 Merge branch 'feature/bsp_in_example' into 'master'
i2s: Add BSP support for es8311 example

Closes BSP-165

See merge request espressif/esp-idf!21279
2022-12-05 18:49:14 +08:00
Tomas Rezucha 9d79efc3b7 i2s: Add BSP support for es8311 example
Users can now pick a BSP for development boards that have ES8311 codec populated.
2022-12-05 08:42:16 +01:00
Tomas Rezucha 7ae5705977 Merge branch 'feature/usb_v5_update' into 'master'
usb: Run usb_host tests in CI

See merge request espressif/esp-idf!19468
2022-12-01 15:29:01 +08:00
Tomas Rezucha a0ab65675a Merge branch 'fix/usb/error_handling' into 'master'
USB Host: Invalid pointer hotfix

See merge request espressif/esp-idf!21325
2022-12-01 03:40:49 +08:00
Tomas Rezucha 0a7686d7d6 codeowners: Add USB codeowners to docs/usb 2022-11-30 18:48:31 +00:00
Tomas Rezucha a0dacf826f usb: Don't access uninit pointer if usbh_install fails 2022-11-30 18:48:31 +00:00
Tomas Rezucha 645592e157 usb: Refactor USB Host tests
* USB tests migrated to pytest
* Error messages improved
* Configurable for different mock devices
2022-11-30 18:12:54 +01:00
Tomas Rezucha d861fdc947 Merge branch 'feature/move_tinyusb_to_pacman' into 'master'
tinyusb: Use TinyUSB from component registry

See merge request espressif/esp-idf!20677
2022-11-02 17:42:53 +08:00
Tomas Rezucha 94a00bda0f tinyusb: Use TinyUSB from component registry 2022-11-02 08:24:43 +01:00
Tomas Rezucha 27078ac34c usb_host: Fixed incorrect opening devices from multiple clients
1. During USBH device open both queues (idle and pending) must be checked.
2. Don't overwrite already allocated endpoints
2022-10-31 13:56:44 +08:00
Tomas Rezucha 446daa9865 Merge branch 'feature/usb/voltage_monitoring' into 'master'
tinyusb: Add voltage monitoring feature

Closes IDFGH-6065 and IDF-5229

See merge request espressif/esp-idf!20296
2022-10-18 22:41:24 +08:00
Tomas Rezucha 1410f5a798 tinyusb: Add VBUS voltage monitoring feature
VBUS voltage monitoring is mandated by USB specification for self-powered devices.
This implementation maps selected GPIO to bvalid signal of USB-OTG peripheral.

Closes https://github.com/espressif/esp-idf/issues/7747
2022-10-18 09:18:29 +02:00
Tomas Rezucha dc705312a3 usb: Allow settings of all signals in usb_phy
Until now, only usb_phy signals for external PHY were defined.
This is now extended with all OTG signals.
2022-10-18 09:18:29 +02:00
Tomas Rezucha cf59a8a2bd Merge branch 'feature/usb_v5_qol' into 'master'
usb: USB IDF v5 update

Closes IDF-4690 and IDF-5767

See merge request espressif/esp-idf!19875
2022-09-08 19:50:22 +08:00
Tomas Rezucha fac9579d95 usb_host: Use MSC driver from component registry 2022-09-05 20:14:57 +02:00
Tomas Rezucha d95ba21328 usb_host: Use CDC driver from component registry 2022-09-05 20:14:56 +02:00
Tomas Rezucha c6fbefcd84 usb_host: Remove custom test_app 2022-09-05 20:14:56 +02:00
Tomas Rezucha dfdb814644 usb: Remove -Wno-format compile option 2022-09-05 20:14:56 +02:00
Tomas Rezucha ba8ab09d55 usb: Bring USB Host API out of beta 2022-09-05 20:14:56 +02:00
Tomas Rezucha 71566c4d7e Merge branch 'feature/usb_device/pytests' into 'master'
tinyusb: Add TinyUSB example tests

See merge request espressif/esp-idf!19194
2022-08-11 17:17:34 +08:00
Tomas Rezucha d777b790d0 tinyusb: Add TinyUSB example tests 2022-08-10 14:51:18 +02:00
Tomas Rezucha 5bd6696557 Merge branch 'feature/usb_device/hid' into 'master'
usb: Add HID device example

Closes IDFGH-7637, IDFGH-5054, IDF-581, and IDFGH-6013

See merge request espressif/esp-idf!19177
2022-07-27 21:18:50 +08:00
Tomas Rezucha 45e8115dc6 usb: Add HID device example
Closes https://github.com/espressif/esp-idf/issues/6839
Closes https://github.com/espressif/esp-idf/issues/7700
2022-07-27 05:31:09 +00:00
Tomas Rezucha e8d172eb87 Merge branch 'docs/esp_bsp' into 'master'
docs: Add information about BSPs

See merge request espressif/esp-idf!18096
2022-06-14 21:57:07 +08:00
Tomas Rezucha 11fd801ed9 docs: Add information about BSPs 2022-06-14 12:09:21 +02:00
Tomas Rezucha 6ba7b10302 Merge branch 'fix/usb/buffer_sizes' into 'master'
usb: TinyUSB buffer sizes

Closes IDFGH-7469

See merge request espressif/esp-idf!18359
2022-06-14 17:23:52 +08:00
Tomas Rezucha 5d202aa401 usb: Clean-up TinyUSB unnecessary code 2022-06-09 10:56:39 +02:00
Tomas Rezucha d1d9b8f8f6 usb: Fixed RX buffer min size
Closes https://github.com/espressif/esp-idf/issues/9040
2022-06-09 10:56:39 +02:00
Tomas Rezucha 3b7018923e Merge branch 'docs/i2c_thread_safety' into 'master'
docs: Fix I2C thread-safety

Closes IDF-5034

See merge request espressif/esp-idf!18172
2022-05-27 08:24:13 +08:00
Tomas Rezucha b6771b7f83 docs: Fix I2C thread-safety 2022-05-25 07:22:02 +00:00
Tomas Rezucha 0a511e576e Merge branch 'feature/remove_extra_components' into 'master'
examples: Use components from idf-extra-components repository

See merge request espressif/esp-idf!17992
2022-05-16 19:56:11 +08:00
Tomas Rezucha 4dde197cca examples: Use components from idf-extra-components repository 2022-05-12 08:37:44 +00:00
Tomas Rezucha 9663a282b3 Merge branch 'feature/usb_host/cdc_custom_commands' into 'master'
usb_host: Add Virtual COM Port example

Closes IDF-4816, IDFGH-7027, and IDFGH-7159

See merge request espressif/esp-idf!17560
2022-04-24 20:41:51 +08:00
Tomas Rezucha 7fc0c14f4d usb_host: Add Virtual COM Port CDC example
This example implements usual UART/USB convertor driver.
Closes https://github.com/espressif/esp-idf/issues/8645
2022-04-22 09:50:46 +02:00
Tomas Rezucha 880b5a4bef usb_host: Unify CDC event callbacks
And return error code from C++ close method.
2022-04-22 09:50:46 +02:00
Tomas Rezucha 0428efa4ad usb_host: Propagate new device connection to user
Closes https://github.com/espressif/esp-idf/issues/8762
2022-04-22 09:50:39 +02:00
Tomas Rezucha 0ab17ec695 usb_host: Enable custom CDC commands
This new API allows further extension for vendor specific commands
2022-04-22 09:50:38 +02:00
Tomas Rezucha 7db3d28187 Merge branch 'feature/usb_host/ci-tests' into 'master'
Run USB Host tests in pipeline

Closes IDF-4425

See merge request espressif/esp-idf!16376
2022-03-22 14:12:12 +08:00
Tomas Rezucha 7c2cf30109 usb_host: Update MSC test for fatfs 0.14b 2022-03-21 18:34:25 +01:00
Tomas Rezucha 3abeee00d0 usb_host: Pin test task to core 0
When we try to uninstall usb_host library on multi-core SoC (ESP32S3)
the USB interrupt can be triggered even after it was disabled on one CPU
2022-03-21 18:34:25 +01:00
Tomas Rezucha 9049230e4a usb_host: Rename symbols that conflict with TinyUSB 2022-03-21 18:34:25 +01:00
Tomas Rezucha e3ba980d11 usb_host: Use USB_Host library calls for desc printing 2022-03-21 18:34:25 +01:00
Tomas Rezucha 3074981dcb usb_host: Update MSC tests for running in CI 2022-03-21 18:34:25 +01:00
Tomas Rezucha 0377fc8d92 tinyusb: Allow dynamic configuration descriptor
and remove ringbuf.h include from public headers
and unused HID descriptor code
2022-03-21 18:34:25 +01:00
Tomas Rezucha 6206302787 ci: Add USB Host CDC and MSC pytests to pipeline 2022-03-21 18:34:24 +01:00
Tomas Rezucha 7d950a63cc usb_host: Add Mock device to CDC tests 2022-03-21 18:34:24 +01:00
Tomas Rezucha 913d53384f usb_host: Update CDC tests for latest USB Host 2022-03-21 18:34:24 +01:00
Tomas Rezucha f5f865df07 Merge branch 'fix/usb_host/cdc_build' into 'master'
usb_host: Don't build CDC host driver for unsupported targets

See merge request espressif/esp-idf!17517
2022-03-18 16:37:38 +08:00
Tomas Rezucha 68395c3617 usb: Codeowners for /examples/peripherals/usb/ 2022-03-17 15:26:57 +01:00
Tomas Rezucha c8fc4d226a usb_host: Don't build CDC host driver for unsupported targets 2022-03-17 13:10:29 +01:00
Tomas Rezucha af28416116 Merge branch 'feature/usb_device/multi_cdc' into 'master'
USB: Extend USB CDC device with second channel

See merge request espressif/esp-idf!16458
2022-01-05 09:53:04 +00:00
Tomas Rezucha 6330d5d312 usb: Extend CDC device with second CDC channel
Closes https://github.com/espressif/esp-idf/issues/7020
Closes https://github.com/espressif/esp-idf/pull/8011
2022-01-05 08:18:03 +01:00
Tomas Rezucha 6e9229945a Merge branch 'feature/usb_host/cdc_driver' into 'master'
USB: Add CDC-ACM subclass host driver

See merge request espressif/esp-idf!14515
2021-12-09 15:21:24 +00:00
Tomas Rezucha dd1b698075 usb: Add USB host CDC-ACM class driver 2021-12-09 10:28:46 +01:00
Tomas Rezucha ebaca79557 other: Move cbor, jsmn and libsodium to idf-component-manager
Marginal components are being carved out from esp-idf and moved to
https://github.com/espressif/idf-extra-components.
They are distributed via idf-component-manager, see
https://components.espressif.com.
2021-11-30 21:44:48 +01:00
Tomas Rezucha 75f3d76e26 Always use half-duplex for SPI 2021-09-22 15:03:35 +02:00
Tomas Rezucha 5fa9f30c8b Set MADCTL register during initialization 2021-09-22 08:55:01 +02:00
Tomas Rezucha 57b243a699 Update Ubuntu to v20.04 2021-08-11 20:34:02 +08:00
Tomas Rezucha 1814a1d9f6 Add note about unit testing on Windows 2021-02-15 13:36:59 +01:00