# USB device stack configuration options # Copyright (c) 2016 Wind River Systems, Inc. # SPDX-License-Identifier: Apache-2.0 menuconfig USB_DEVICE_STACK bool "USB Device Support" select USB_DEVICE_DRIVER select HWINFO help Enable USB device stack. if USB_DEVICE_STACK module = USB_DEVICE module-str = usb device source "subsys/logging/Kconfig.template.log_config" source "samples/subsys/usb/usb_pid.Kconfig" config USB_DEVICE_VID hex "USB Vendor ID" default 0x2FE3 help USB device vendor ID. MUST be configured by vendor. config USB_DEVICE_PID hex "USB Product ID" default 0x0100 help USB device product ID. MUST be configured by vendor. config USB_DEVICE_MANUFACTURER string "USB manufacturer name" default "ZEPHYR" help USB device Manufacturer string. MUST be configured by vendor. config USB_DEVICE_PRODUCT string "USB product name" default "USB-DEV" help USB device Product string. MUST be configured by vendor. config USB_DEVICE_SN string "USB device Serial Number String" default "0123456789ABCDEF" help Placeholder for USB device Serial Number String. Serial Number String will be derived from Hardware Information Driver (HWINFO). config USB_COMPOSITE_DEVICE bool "Enable composite device driver" help Enable composite USB device driver. config USB_MAX_NUM_TRANSFERS int "Set number of USB transfer data buffers" range 1 32 default 4 help Allocates buffers used for parallel transfers. Increase this number according to USB devices count. config USB_DEVICE_BLUETOOTH_BIG_BUF bool # Hidden option to simplify bluetooth buffer requirement # TODO: Add BUF reserve in H4 mode and ISO? default y if BT_BUF_ACL_RX_SIZE > 123 # 4 byte header default y if BT_BUF_ACL_TX_SIZE > 123 # 4 byte header default y if BT_BUF_EVT_RX_SIZE > 125 # 2 byte header default y if BT_BUF_CMD_TX_SIZE > 124 # 3 byte header config USB_REQUEST_BUFFER_SIZE int "Set buffer size for Standard, Class and Vendor request handlers" range 256 65536 if USB_DEVICE_NETWORK_RNDIS range 8 65536 default 256 if USB_DEVICE_NETWORK_RNDIS default 266 if (USB_DEVICE_BLUETOOTH && USB_DEVICE_BLUETOOTH_BIG_BUF) default 1024 if USB_DEVICE_LOOPBACK default 128 config USB_MAX_ALT_SETTING int "Size of the array where alternate settings are stored" range 0 16 default 8 help Size of the array where alternate settings are stored. Should not be smaller than the number of interfaces. config USB_NUMOF_EP_WRITE_RETRIES int "Number of endpoint write retries" default 3 help Number of endpoint write retries. config USB_DEVICE_SOF bool "Enable Start of Frame processing in events" default y if (USB_DEVICE_AUDIO && NRFX_USBD) config USB_DEVICE_REMOTE_WAKEUP bool "Enable support for remote wakeup" help This option requires USBD peripheral driver to also support remote wakeup. config USB_DEVICE_BOS bool "Enable USB Binary Device Object Store (BOS)" config USB_DEVICE_OS_DESC bool "Enable MS OS Descriptors support" config USB_SELF_POWERED bool "Set Self-powered characteristic" default y help Set Self-powered characteristic in bmAttributes to indicate self powered USB device. config USB_MAX_POWER int "Set bMaxPower value" default 50 range 0 250 help Set bMaxPower value in the Standard Configuration Descriptor, the result is 2mA times the value provided. config USB_WORKQUEUE bool "Use a dedicate work queue in the USB subsystem" default y if USB_CDC_ACM help This option provides a dedicated work queue that is used for all offloaded operations initiated by the USB subsystem. This prevents deadlock situations where tasks on the system workqueue inadvertently initiate operations that block, such as UART transmission on CDC-ACM, preventing the system work queue from making progress on the USB tasks that would release the task. Without this the system work queue is used for all USB offloaded transfers. config USB_WORKQUEUE_STACK_SIZE int "USB workqueue stack size" depends on USB_WORKQUEUE default 4096 if COVERAGE default 1024 config USB_WORKQUEUE_PRIORITY int "USB workqueue priority" depends on USB_WORKQUEUE default -2 if COOP_ENABLED && !PREEMPT_ENABLED default 0 if !COOP_ENABLED default -1 help By default, USB work queue priority is the lowest cooperative priority. This means that any work handler, once started, won't be preempted by any other thread until finished. source "subsys/usb/class/Kconfig" endif # USB_DEVICE_STACK