# Kconfig - USB class drivers configuration options

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

if USB_DEVICE_STACK

config USB_CDC_ACM
	bool
	prompt "USB CDC ACM Device Class Driver"
	default n
	help
	  USB CDC ACM device class driver

config CDC_ACM_PORT_NAME
	string "CDC ACM class device driver port name"
	depends on USB_CDC_ACM
	default "CDC_ACM"
	help
	  Port name through which CDC ACM class device driver is accessed

config CDC_ACM_INT_EP_ADDR
	hex "CDC ACM Interrupt Endpoint address"
	depends on USB_CDC_ACM
	default 0x85
	range 0x81 0x8f
	help
	  CDC ACM class interrupt endpoint address

config CDC_ACM_IN_EP_ADDR
	hex "CDC ACM BULK IN Endpoint address"
	depends on USB_CDC_ACM
	default 0x84
	range 0x81 0x8f
	help
	  CDC ACM class IN endpoint address

config CDC_ACM_OUT_EP_ADDR
	hex "CDC ACM BULK OUT Endpoint address"
	depends on USB_CDC_ACM
	default 0x03
	range 0x01 0x0f
	help
	  CDC ACM class OUT endpoint address

config CDC_ACM_INTERRUPT_EP_MPS
	int
	depends on USB_CDC_ACM
	default 16
	help
	  CDC ACM class interrupt IN endpoint size

config CDC_ACM_BULK_EP_MPS
	int
	depends on USB_CDC_ACM
	default 64
	help
	  CDC ACM class bulk endpoints size

config SYS_LOG_USB_CDC_ACM_LEVEL
	int
	prompt "USB CDC ACM device class driver log level"
	depends on USB_CDC_ACM && SYS_LOG
	default 0
	help
	  Sets log level for USB CDC ACM device class driver

	  Levels are:

	  - 0 OFF, do not write

	  - 1 ERROR, only write SYS_LOG_ERR

	  - 2 WARNING, write SYS_LOG_WRN in addition to previous level

	  - 3 INFO, write SYS_LOG_INF in addition to previous levels

	  - 4 DEBUG, write SYS_LOG_DBG in addition to previous levels

config USB_MASS_STORAGE
	bool
	prompt "USB Mass Storage Device Class Driver"
	select DISK_ACCESS
	default n
	help
	  USB Mass Storage device class driver

config MASS_STORAGE_IN_EP_ADDR
	hex
	depends on USB_MASS_STORAGE
	default 0x82
	range 0x81 0x8f
	help
	  Mass storage device class IN endpoint address

config MASS_STORAGE_OUT_EP_ADDR
	hex
	depends on USB_MASS_STORAGE
	default 0x01
	range 0x01 0x0f
	help
	  Mass storage device class OUT endpoint address

config MASS_STORAGE_BULK_EP_MPS
	int
	depends on USB_MASS_STORAGE
	default 64
	range 8 64
	help
	  Mass storage device class bulk endpoints size

config SYS_LOG_USB_MASS_STORAGE_LEVEL
	int
	prompt "USB Mass Storage device class driver log level"
	depends on USB_MASS_STORAGE && SYS_LOG
	default 0
	help
	  Sets log level for USB Mass Storage device class driver

	  Levels are:

	  - 0 OFF, do not write

	  - 1 ERROR, only write SYS_LOG_ERR

	  - 2 WARNING, write SYS_LOG_WRN in addition to previous level

	  - 3 INFO, write SYS_LOG_INF in addition to previous levels

	  - 4 DEBUG, write SYS_LOG_DBG in addition to previous levels

source "subsys/usb/class/netusb/Kconfig"

endif # CONFIG_USB_DEVICE_STACK
