# 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"
	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
	select USB_DEVICE_REMOTE_WAKEUP
	help
	  nRF52840 USB Device Controller Driver

config USB_NRFX_EVT_QUEUE_SIZE
	int "USBD event queue size"
	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_KINETIS
	bool "Kinetis USB Device Controller Driver"
	select USB_DEVICE_DRIVER
	help
	  Kinetis 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
