1# USB device configuration options
2
3# Copyright (c) 2016 Wind River Systems, Inc.
4# SPDX-License-Identifier: Apache-2.0
5
6menuconfig USB_DEVICE_DRIVER
7	bool "Enable USB device controller drivers"
8	help
9	  Enable USB device controller drivers.
10
11if USB_DEVICE_DRIVER
12
13config USB_DW
14	bool "Designware USB Device Controller Driver"
15	help
16	  Designware USB Device Controller Driver.
17
18config USB_DW_USB_2_0
19	bool "DesignWare Controller and PHY support for USB specification 2.0"
20	depends on USB_DW
21	help
22	  Indicates whether or not USB specification version 2.0 is supported
23
24config USB_DC_STM32
25	bool "USB device controller driver for STM32 devices"
26	depends on SOC_FAMILY_STM32
27	select USE_STM32_LL_USB
28	select USE_STM32_HAL_PCD
29	select USE_STM32_HAL_PCD_EX
30	help
31	  Enable USB support on the STM32 F0, F1, F2, F3, F4, F7, L0, L4 and G4 family of
32	  processors.
33
34config USB_DC_STM32_DISCONN_ENABLE
35	bool
36	depends on USB_DC_STM32
37	help
38	  Say Y if your board uses USB DISCONNECT pin to enable the
39	  pull-up resistor on USB DP.
40
41config USB_DC_SAM0
42	bool "SAM0 series USB Device Controller driver"
43	default y
44	depends on SOC_FAMILY_SAM0
45	help
46	  SAM0 family USB device controller Driver.
47
48DT_COMPAT_SAM_USBC := atmel,sam-usbc
49
50config USB_DC_SAM_USBC
51	bool "SAM4L USBC Device Controller driver"
52	depends on SOC_SERIES_SAM4L
53	default $(dt_compat_enabled,$(DT_COMPAT_SAM_USBC))
54	help
55	  SAM4L family USBC device controller Driver.
56
57config USB_DC_SAM_USBHS
58	bool "SAM series USB HS Device Controller driver"
59	depends on SOC_SERIES_SAME70 || \
60		   SOC_SERIES_SAMV71
61	help
62	  SAM family USB HS device controller Driver.
63
64config USB_NRFX
65	bool "Nordic Semiconductor USB Device Controller Driver"
66	default y
67	depends on HAS_HW_NRF_USBD
68	select NRFX_USBD
69	select NRFX_POWER
70	help
71	  nRF USB Device Controller Driver
72
73config USB_NRFX_EVT_QUEUE_SIZE
74	int "USBD event queue size"
75	range 4 64
76	default 32
77	depends on USB_NRFX
78	help
79	  Size of the driver's internal event queue.
80	  Required size will depend on number of endpoints (class instances) in use.
81
82config USB_NRFX_WORK_QUEUE_STACK_SIZE
83	int "USBD work queue stack size"
84	default 1024
85	depends on USB_NRFX
86	help
87	  Size of the stack for the work queue thread that is used in the driver
88	  for handling the events from the USBD ISR, i.e. executing endpoint
89	  callbacks and providing proper notifications to the USB device stack.
90
91config USB_NRFX_ATTACHED_EVENT_DELAY
92	int "USBD attached event delay"
93	range 0 1000
94	default 0
95	depends on USB_NRFX
96	help
97	  Configurable attached event delay in milliseconds. Delay can be used
98	  to give USB Charging Controller time for initialization.
99
100config USB_KINETIS
101	bool "Kinetis USB Device Controller Driver"
102	help
103	  Kinetis USB Device Controller Driver.
104
105config USB_MCUX
106	bool "NXP MCUX USB Device Controller Driver"
107	help
108	  NXP MCUX USB Device Controller Driver for MXRT and LPC SoC's.
109
110if USB_MCUX
111
112choice USB_MCUX_CONTROLLER_TYPE
113	prompt "USB Controller type"
114	help
115	  Select the type of controller available in the SoC.
116
117config USB_DC_NXP_EHCI
118	bool "MXRT EHCI USB Device Controller"
119	select NOCACHE_MEMORY if HAS_MCUX_CACHE
120	help
121	  Kinetis and RT EHCI USB Device Controller Driver.
122
123config USB_DC_NXP_LPCIP3511
124	bool "LPC USB Device Controller"
125	help
126	  LPC USB Device Controller Driver.
127
128endchoice
129
130endif # USB_MCUX
131
132config USB_NATIVE_POSIX
133	bool "Native Posix USB Device Controller Driver"
134	help
135	  Native Posix USB Device Controller Driver.
136
137module = USB_DRIVER
138module-str = usb driver
139source "subsys/logging/Kconfig.template.log_config"
140
141endif # USB_DEVICE_DRIVER
142