# Kconfig - USB device configuration options

#
# Copyright (c) 2016 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#

if USB

config USB_DEVICE_DRIVER
	bool

config USB_DW
	bool "Designware USB Device Controller Driver"
	select USB_DEVICE_DRIVER
	help
	  Designware USB Device Controller Driver.

config USB_DW_IRQ_PRI
	int "DesignWare USB Driver Interrupt priority"
	depends on USB_DW
	help
	  USB interrupt priority.

config USB_DW_USB_2_0
	bool "DesignWare Controller and PHY support for USB specification 2.0"
	depends on USB_DW
	help
	  Indicates whether or not USB specification version 2.0 is supported

config USB_DC_STM32
	bool "USB device controller driver for STM32 devices"
	depends on SOC_FAMILY_STM32
	select USB_DEVICE_DRIVER
	select USE_STM32_LL_USB if !SOC_SERIES_STM32F0X && !SOC_SERIES_STM32F3X && !SOC_SERIES_STM32L0X
	select USE_STM32_HAL_PCD
	select USE_STM32_HAL_PCD_EX
	select HAS_DTS_USB
	help
	  Enable USB support on the STM32 F0, F1, F2, F3, F4, F7, L0 and L4 family of
	  processors.

config USB_DC_SAM0
	bool "SAM0 series USB Device Controller driver"
	default y
	depends on SOC_FAMILY_SAM0
	select USB_DEVICE_DRIVER
	help
	  SAM0 family USB device controller Driver.

config USB_DC_SAM
	bool "SAM series USB HS Device Controller driver"
	depends on SOC_SERIES_SAME70
	select USB_DEVICE_DRIVER
	select HAS_DTS_USB
	help
	  SAM family USB HS device controller Driver.

menuconfig USB_NRF52840
	bool "Nordic Semiconductor nRF52840 USB Device Controller Driver"
	default y
	depends on SOC_NRF52840
	select USB_DEVICE_DRIVER
	select HAS_DTS_USB
	select NRFX_USBD
	help
	  nRF52840 USB Device Controller Driver

config USB_NRFX_EVT_QUEUE_SIZE
	int "USBD event queue size"
	range 4 64
	default 32
	depends on USB_NRF52840
	help
	  Size of the driver's internal event queue.
	  Required size will depend on number of endpoints (class instances) in use.

config USB_NRFX_WORK_QUEUE_STACK_SIZE
	int "USBD work queue stack size"
	default 1024
	depends on USB_NRF52840
	help
	  Size of the stack for the work queue thread that is used in the driver
	  for handling the events from the USBD ISR, i.e. executing endpoint
	  callbacks and providing proper notifications to the USB device stack.

config USB_KINETIS
	bool "Kinetis USB Device Controller Driver"
	select USB_DEVICE_DRIVER
	help
	  Kinetis USB Device Controller Driver.

config USB_DC_NXP_EHCI
	bool "Kinetis and RT EHCI USB Device Controller Driver"
	depends on HAS_MCUX_USB_EHCI
	select USB_DEVICE_DRIVER
	select NOCACHE_MEMORY if HAS_MCUX_CACHE
	help
	  Kinetis and RT EHCI USB Device Controller Driver.

module = USB_DRIVER
module-str = usb driver
source "subsys/logging/Kconfig.template.log_config"

config USB_DC_STM32_DISCONN_ENABLE
	bool
	depends on USB_DC_STM32
	help
	  Say Y if your board uses USB DISCONNECT pin to enable the
	  pull-up resistor on USB DP.

config USB_NATIVE_POSIX
	bool "Native Posix USB Device Controller Driver"
	select USB_DEVICE_DRIVER
	help
	  Native Posix USB Device Controller Driver.

endif # USB
