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


menuconfig UHC_DRIVER
	bool "USB host controller drivers [EXPERIMENTAL]"
	select EXPERIMENTAL
	select NET_BUF
	help
	  USB host controller driver.

if UHC_DRIVER

config UHC_XFER_COUNT
	int "Number of transfers in the pool"
	range 2 256
	default 16
	help
	  Number of UHC transfers available.

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

config UHC_BUF_POOL_SIZE
	int "Memory available for buffers"
	range 64 32768
	default 1024
	help
	  Total amount of memory available for UHC buffers.

module = UHC_DRIVER
module-str = uhc drv
source "subsys/logging/Kconfig.template.log_config"

source "drivers/usb/uhc/Kconfig.max3421e"
source "drivers/usb/uhc/Kconfig.virtual"

endif # UHC_DRIVER
