2021-07-08 23:15:26 -04:00
|
|
|
menu "USB-OTG"
|
2023-12-23 13:55:49 -05:00
|
|
|
depends on SOC_USB_OTG_SUPPORTED
|
2021-07-08 23:15:26 -04:00
|
|
|
|
2021-08-24 11:20:50 -04:00
|
|
|
config USB_HOST_CONTROL_TRANSFER_MAX_SIZE
|
|
|
|
int "Largest size (in bytes) of transfers to/from default endpoints"
|
|
|
|
default 256
|
|
|
|
help
|
|
|
|
Each USB device attached is allocated a dedicated buffer for its OUT/IN transfers to/from the device's
|
|
|
|
control endpoint. The maximum size of that buffer is determined by this option. The limited size of the
|
|
|
|
transfer buffer have the following implications:
|
|
|
|
- The maximum length of control transfers is limited
|
|
|
|
- Device's with configuration descriptors larger than this limit cannot be supported
|
|
|
|
|
|
|
|
choice USB_HOST_HW_BUFFER_BIAS
|
|
|
|
prompt "Hardware FIFO size biasing"
|
|
|
|
default USB_HOST_HW_BUFFER_BIAS_BALANCED
|
|
|
|
help
|
|
|
|
The underlying hardware has size adjustable FIFOs to cache USB packets on reception (IN) or for
|
|
|
|
transmission (OUT). The size of these FIFOs will affect the largest MPS (maximum packet size) and the
|
|
|
|
maximum number of packets that can be cached at any one time. The hardware contains the following
|
|
|
|
FIFOS: RX (for all IN packets), Non-periodic TX (for Bulk and Control OUT packets), and Periodic TX
|
|
|
|
(for Interrupt and Isochronous OUT packets). This configuration option allows biasing the FIFO sizes
|
|
|
|
towards a particular use case, which may be necessary for devices that have endpoints with large MPS.
|
|
|
|
The MPS limits for each biasing are listed below:
|
|
|
|
|
|
|
|
Balanced:
|
|
|
|
- IN (all transfer types), 408 bytes
|
|
|
|
- OUT non-periodic (Bulk/Control), 192 bytes (i.e., 3 x 64 byte packets)
|
|
|
|
- OUT periodic (Interrupt/Isochronous), 192 bytes
|
|
|
|
|
|
|
|
Bias IN:
|
|
|
|
- IN (all transfer types), 600 bytes
|
|
|
|
- OUT non-periodic (Bulk/Control), 64 bytes (i.e., 1 x 64 byte packets)
|
|
|
|
- OUT periodic (Interrupt/Isochronous), 128 bytes
|
|
|
|
|
|
|
|
Bias Periodic OUT:
|
|
|
|
- IN (all transfer types), 128 bytes
|
|
|
|
- OUT non-periodic (Bulk/Control), 64 bytes (i.e., 1 x 64 byte packets)
|
|
|
|
- OUT periodic (Interrupt/Isochronous), 600 bytes
|
|
|
|
|
|
|
|
config USB_HOST_HW_BUFFER_BIAS_BALANCED
|
|
|
|
bool "Balanced"
|
|
|
|
config USB_HOST_HW_BUFFER_BIAS_IN
|
|
|
|
bool "Bias IN"
|
|
|
|
config USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT
|
|
|
|
bool "Periodic OUT"
|
|
|
|
endchoice
|
|
|
|
|
2024-04-02 08:25:11 -04:00
|
|
|
menu "Hub Driver Configuration"
|
|
|
|
|
|
|
|
menu "Root Port configuration"
|
|
|
|
|
|
|
|
config USB_HOST_DEBOUNCE_DELAY_MS
|
|
|
|
int "Debounce delay in ms"
|
|
|
|
default 250
|
|
|
|
help
|
|
|
|
On connection of a USB device, the USB 2.0 specification requires
|
|
|
|
a "debounce interval with a minimum duration of 100ms" to allow the connection to stabilize
|
|
|
|
(see USB 2.0 chapter 7.1.7.3 for more details).
|
|
|
|
During the debounce interval, no new connection/disconnection events are registered.
|
|
|
|
|
|
|
|
The default value is set to 250 ms to be safe.
|
|
|
|
|
|
|
|
config USB_HOST_RESET_HOLD_MS
|
|
|
|
int "Reset hold in ms"
|
|
|
|
default 30
|
|
|
|
help
|
|
|
|
The reset signaling can be generated on any Hub or Host Controller port by request from
|
|
|
|
the USB System Software. The USB 2.0 specification requires that "the reset signaling must
|
|
|
|
be driven for a minimum of 10ms" (see USB 2.0 chapter 7.1.7.5 for more details).
|
|
|
|
After the reset, the hub port will transition to the Enabled state (refer to Section 11.5).
|
|
|
|
|
|
|
|
The default value is set to 30 ms to be safe.
|
|
|
|
|
|
|
|
config USB_HOST_RESET_RECOVERY_MS
|
|
|
|
int "Reset recovery delay in ms"
|
|
|
|
default 30
|
|
|
|
help
|
|
|
|
After a port stops driving the reset signal, the USB 2.0 specification requires that
|
|
|
|
the "USB System Software guarantees a minimum of 10 ms for reset recovery" before the
|
|
|
|
attached device is expected to respond to data transfers (see USB 2.0 chapter 7.1.7.3 for
|
|
|
|
more details).
|
|
|
|
The device may ignore any data transfers during the recovery interval.
|
|
|
|
|
|
|
|
The default value is set to 30 ms to be safe.
|
|
|
|
|
|
|
|
|
|
|
|
config USB_HOST_SET_ADDR_RECOVERY_MS
|
|
|
|
int "SetAddress() recovery time in ms"
|
|
|
|
default 10
|
|
|
|
help
|
|
|
|
"After successful completion of the Status stage, the device is allowed a SetAddress()
|
|
|
|
recovery interval of 2 ms. At the end of this interval, the device must be able to accept
|
|
|
|
Setup packets addressed to the new address. Also, at the end of the recovery interval, the
|
|
|
|
device must not respond to tokens sent to the old address (unless, of course, the old and new
|
|
|
|
address is the same)." See USB 2.0 chapter 9.2.6.3 for more details.
|
|
|
|
|
|
|
|
The default value is set to 10 ms to be safe.
|
|
|
|
|
|
|
|
endmenu #Root Hub configuration
|
|
|
|
|
|
|
|
config USB_HOST_HUBS_SUPPORTED
|
|
|
|
bool "Support Hubs"
|
|
|
|
default n
|
2023-03-06 01:08:06 -05:00
|
|
|
help
|
2024-04-02 08:25:11 -04:00
|
|
|
Enables support of external Hubs.
|
2023-03-06 01:08:06 -05:00
|
|
|
|
2024-04-02 08:25:11 -04:00
|
|
|
config USB_HOST_HUB_MULTI_LEVEL
|
|
|
|
depends on USB_HOST_HUBS_SUPPORTED
|
|
|
|
bool "Support multiple Hubs"
|
|
|
|
default y
|
2023-03-06 01:08:06 -05:00
|
|
|
help
|
2024-04-02 08:25:11 -04:00
|
|
|
Enables support for connecting multiple Hubs simultaneously.
|
2023-03-06 01:08:06 -05:00
|
|
|
|
2024-04-02 08:25:11 -04:00
|
|
|
endmenu #Hub Driver Configuration
|
2023-03-06 01:08:06 -05:00
|
|
|
|
2023-11-23 10:00:13 -05:00
|
|
|
config USB_HOST_ENABLE_ENUM_FILTER_CALLBACK
|
|
|
|
bool "Enable enumeration filter callback"
|
|
|
|
default n
|
|
|
|
help
|
2024-04-02 08:25:11 -04:00
|
|
|
The enumeration filter callback is called before enumeration of each newly attached device.
|
|
|
|
This callback allows users to control whether a device should be enumerated, and what configuration
|
|
|
|
number to use when enumerating a device.
|
2023-11-23 10:00:13 -05:00
|
|
|
|
|
|
|
If enabled, the enumeration filter callback can be set via 'usb_host_config_t' when calling
|
|
|
|
'usb_host_install()'.
|
|
|
|
|
2024-02-29 06:40:58 -05:00
|
|
|
# Hidden or compatibility options
|
2023-12-23 13:55:49 -05:00
|
|
|
config USB_OTG_SUPPORTED
|
|
|
|
# Invisible config kept for compatibility
|
|
|
|
# Todo: Remove in v6.0 (IDF-8936)
|
|
|
|
bool
|
|
|
|
default y
|
|
|
|
|
2021-08-24 11:20:50 -04:00
|
|
|
endmenu #USB-OTG
|