# Copyright (c) 2021-2022 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0


menuconfig UDC_DRIVER
	bool "USB device controller driver [EXPERIMENTAL]"
	select EXPERIMENTAL
	select NET_BUF
	help
	  USB device controller driver.

if UDC_DRIVER

config UDC_BUF_COUNT
	int "Number of buffers in the pool"
	range 16 256
	default 16
	help
	  Number of UDC request buffers in the pool.

config UDC_BUF_POOL_SIZE
	int "Memory available for requests"
	range 64 32768
	default 1024
	help
	  Total amount of memory available for UDC requests.

config UDC_WORKQUEUE
	bool "Use a dedicate work queue for UDC drivers"
	help
	  This option provides a dedicated work queue for UDC drivers.

config UDC_WORKQUEUE_STACK_SIZE
	int "UDC workqueue stack size"
	depends on UDC_WORKQUEUE
	default 512

config UDC_WORKQUEUE_PRIORITY
	int "UDC workqueue priority"
	depends on UDC_WORKQUEUE
	default SYSTEM_WORKQUEUE_PRIORITY
	help
	  By default, UDC work queue priority is the same as
	  System workqueue priority.

module = UDC_DRIVER
module-str = usb drv
source "subsys/logging/Kconfig.template.log_config"

source "drivers/usb/udc/Kconfig.nrf"
source "drivers/usb/udc/Kconfig.kinetis"

endif # UDC_DRIVER
