1# Copyright (c) 2022 Nordic Semiconductor ASA
2#
3# SPDX-License-Identifier: Apache-2.0
4
5menuconfig USB_DEVICE_STACK_NEXT
6	bool "New USB device stack"
7	select UDC_DRIVER
8	imply HWINFO
9	help
10	  New USB device stack.
11
12if USB_DEVICE_STACK_NEXT
13
14module = USBD
15module-str = usbd
16source "subsys/logging/Kconfig.template.log_config"
17
18choice USBD_MAX_SPEED_CHOICE
19	prompt "Max supported connection speed"
20	default USBD_MAX_SPEED_HIGH if UDC_DRIVER_HAS_HIGH_SPEED_SUPPORT
21	default USBD_MAX_SPEED_FULL
22
23config USBD_MAX_SPEED_HIGH
24	bool "High-Speed"
25	depends on UDC_DRIVER_HAS_HIGH_SPEED_SUPPORT
26
27config USBD_MAX_SPEED_FULL
28	bool "Full-Speed"
29	depends on !UDC_DRIVER_HIGH_SPEED_SUPPORT_ENABLED
30
31endchoice
32
33config USBD_MAX_SPEED
34	int
35	default 0 if USBD_MAX_SPEED_FULL
36	default 1 if USBD_MAX_SPEED_HIGH
37
38config USBD_BOS_SUPPORT
39	bool "USB device BOS support"
40	default y
41	help
42	  BOS support can be disabled if the application does not use a BOS
43	  descriptor.
44
45config USBD_VREQ_SUPPORT
46	bool "USB device vendor request support"
47	default y
48	help
49	  Allow the application to register a handler for the vendor request
50	  with the recipient device.
51
52config USBD_SHELL
53	bool "USB device shell"
54	depends on SHELL
55	help
56	  Enable USB device shell.
57
58config USBD_THREAD_INIT_PRIO
59	int
60	default 90
61	help
62	  USB device thread initialization priority level.
63
64config USBD_THREAD_STACK_SIZE
65	int "USB device stack thread stack size"
66	default 1024
67	help
68	  USB device stack thread stack size in bytes.
69
70config USBD_MAX_UDC_MSG
71	int "Maximum number of UDC events"
72	default 10
73	help
74	  Maximum number of USB device controller events that can be queued.
75
76config USBD_MSG_DEFERRED_MODE
77	bool "Execute message callback from system workqueue"
78	default y
79	help
80	  Execute message callback from system workqueue. If disabled, message
81	  callback will be executed in the device stack context.
82
83config USBD_MSG_SLAB_COUNT
84	int "Maximum number of USB device notification messages" if USBD_MSG_DEFERRED_MODE
85	range 4 64
86	default 8
87	help
88	  Maximum number of USB device notification messages that can be queued.
89
90config USBD_MSG_WORK_DELAY
91	int "USB device notification messages work delay" if USBD_MSG_DEFERRED_MODE
92	range 1 100
93	default 1
94	help
95	  Message work may need to be delayed because the device stack is not
96	  yet ready to publish the message. The delay unit is milliseconds.
97
98config USBD_HWINFO_DEVID_LENGTH
99	int "The length of the device ID requested from HWINFO in bytes"
100	depends on HWINFO
101	range 8 128
102	default 16
103	help
104	  Each byte represents two digits in the serial number string
105	  descriptor. This option can be used to limit the length requested
106	  from HWINFO to a meaningful number of digits.
107
108rsource "class/Kconfig"
109rsource "app/Kconfig.cdc_acm_serial"
110
111endif # USB_DEVICE_STACK_NEXT
112