Commit Graph

53 Commits

Author SHA1 Message Date
Tomas Rezucha
6f46cd332e fix(usb/host): Fixed crash on MSC disk disconnection 2024-03-08 12:09:48 +01:00
Peter Marcisovsky
d786f187e9 feat(us/host): set device cfg during enumeration
- user callback funciton to set device configuration
      as a part of usb_host_install
    - callback provides device descriptor of a device being enumerated
    - user can set which cfg descriptor the USB device will be set with
    - user can filter device enumeration
    - Kconfig menu to enable callback function
    - usb_host_lib example demonstration
2024-02-21 12:34:04 +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
Roman Leonov
375907299e fix(usb/host): added hid_driver_uninstall call during APP_QUIT for HID Host example 2023-10-25 09:04:20 +02: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
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
Roman Leonov
1bd0c0f6f6 feat(usb/host): add Kconfig for negotiation protocol configuration in UVC example 2023-10-06 12:43:17 +02:00
morris
b12e250b2c refactor(examples): reformat peripheral examples with astyle_py 2023-09-28 10:08:04 +08:00
Ivan Grokhotkov
6d87100a70
feat(examples): add local components via idf_component.yml
Specifying all the dependencies (managed and local) in the manifest
makes it easier for users to see every component the example
depends on.
2023-09-19 10:38:24 +02:00
Roman Leonov
5ceac3cd19 feat(usb): update HID Host example 2023-06-29 11:58:46 +02:00
KonstantinKondrashov
e72061695e all: Removes unnecessary newline character in logs
Closes https://github.com/espressif/esp-idf/issues/11465
2023-06-09 03:31:21 +08:00
Saurabh Kumar Bansal
7cc59918bc usbd: add usb composite device example 2023-04-19 14:02:33 +05:30
Tomas Rezucha
2c6d0bae90 usb: Update host CDC examples 2023-04-04 07:47:55 +00:00
Kapil Gupta
30a2558450 esp_wifi: Merge wpa_supplicant and esp_wifi Kconfig 2023-02-11 07:38:45 +08:00
Roman Leonov
bb1e1737d3 usbh: hid change key event handler 2023-01-27 11:13:33 +01:00
Roman Leonov
4c162af6c9 usb_host: license and typos fixes 2023-01-11 14:23:22 +01:00
Roman Leonov
4a7a6bf35b usb_host: hid example 2022-12-09 17:02:44 +01: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
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
Martin Valik
3bcd9ceefe USB: Add usb uvc example
Closes https://github.com/espressif/esp-idf/issues/6493
2022-08-29 10:44:39 +02:00
Ivan Grokhotkov
e596c84d49 build system: re-add -Wno-format as private flag for some example components 2022-08-03 16:42:47 +04:00
David Cermak
5c383d7b73 esp_netif/lwip: Fix deps cycles to "lwip -> esp_netif -> phy-drivers"
Fix dependency tree so that lwip doesn't depend on any specific network
interface component.
Network interface drivers shall depend on esp_netif.
esp_netif shall depend on lwip (but not on any specific interface
driver) -- it optionally depends on vfs and esp_eth (need ethernet
header for L2/bridge mode)
2022-07-20 14:59:07 +02:00
jiangguangming
e0d9220a6e example: peripherals/usb: fix typo naming of local variables 2022-07-20 09:36:24 +08:00
Djordje Nedic
facab8c5a7 tools: Increase the minimal supported CMake version to 3.16
This updates the minimal supported version of CMake to 3.16, which in turn enables us to use more CMake features and have a cleaner build system.
This is the version that provides most new features and also the one we use in our latest docker image for CI.
2022-06-01 06:35:02 +00:00
Martin Valik
be452efd4a msc example made hot plugable
Closes https://github.com/espressif/esp-idf/issues/8386
2022-05-10 18:48:37 +02: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
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
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
c8fc4d226a usb_host: Don't build CDC host driver for unsupported targets 2022-03-17 13:10:29 +01:00
Anton Maklakov
4c865baae4 managed components: fix version references to allow implicit updates according to semver
Syntax details: https://devhints.io/semver
2022-03-11 13:49:26 +07:00
Adam Múdry
bb8587a139 fatfs: Update to version 0.14b
Updated FATFS to 0.14b from 0.13c and patched for ESP32
2022-02-21 14:54:55 +01:00
Martin Valik
68ff1b8c07 Bugfix: omit MSC reset during initialization 2022-01-27 10:03:40 +01:00
Darian
d95b15c557 Merge branch 'feature/usb_host_cleanup' into 'master'
USB: Host stack cleanup and QOL update

Closes IDFGH-6120, IDF-2747, IDFGH-4592, and IDFGH-6402

See merge request espressif/esp-idf!16349
2022-01-06 12:18:47 +00:00
Darian Leung
630a6b54c2 usb: Add USB Host Library Example
The commit adds a basic example for the USB Host Library
2022-01-06 15:15:15 +08:00
Darian Leung
b6dfadb168 usb: Update USB Host Library
This commit updates the USB Host Library as follows:

- usb_helpers.h
    - Removed dependency on USB Host Library API
    - Added function to print string descriptors
- usbh
    - Fixed bug where an interface/endpoint could be claimed/allocated multiple times
    - Removed redundant device ref_count change
- Added unit test for USB Host Library API usage
2022-01-06 15:14:10 +08:00
Darian Leung
1aad12468a usb: Hub Driver Update and Refactor
Hub Driver is refactored as follows:

This commit update and refactors the Hub Driver as follows:

- Refactored enumeration state machine and stage functions
    - Enumeration stage is now incremented
    - Combined transfer stages of enumeration into common functions
- Comments updated
- Fixed usbh_hal_disable_debounce_lock() that would cause root_port_handle_events()
    to fail the HCD_PORT_CMD_RESET call because the previous port connection interrupt
    was not cleared.

The following features were added to the Hub Driver

- Enumeration config descriptor is now fetched in two separate stages
    - Header is fetched first to determine the wTotalLength of the descriptor
    - Fetching the full descriptor will request exactly wTotalLength bytes
    - This works around some non-compliant devices that will babble/return zero
        when requesting a length > wTotalLength
    - Closes https://github.com/espressif/esp-idf/issues/7799
- Enumeration now stores string descriptors
    - The Manufacturer, Product, and Serial Number string descriptors are
        now read and stored during enumeration
    - String descriptors are now part of usb_device_info_t
- Added unit test to test enumeration
2022-01-06 15:11:13 +08:00
Darian Leung
854127a57c usb: USB Host stack uses USB PHY driver
This commit updates the USB Host stack to use the USB PHY driver. The
USB PHY and the OTG Controller should now both be setup/deleted using
usb_new_phy() and usb_del_phy() respectively.

- The hcd_install() now expects the USB PHY and OTG Contorller to be
    already setup before it is called
- usb_host_install() now has an option to skip calling usb_del_phy() if
    the user wants to setup their own USB PHY (e.g., in the case of using
    and external PHY).
- CDC-ACM and MSC examples/test updated to use internal PHY

Closes https://github.com/espressif/esp-idf/issues/8061
2022-01-06 15:09:39 +08:00