1# Copyright (c) 2016 Wind River Systems, Inc.
2# SPDX-License-Identifier: Apache-2.0
3
4menu "USB CDC ACM Class support"
5
6config USB_CDC_ACM
7	bool "USB CDC ACM Class support"
8	default y
9	select USB_COMPOSITE_DEVICE
10	depends on SERIAL
11	depends on DT_HAS_ZEPHYR_CDC_ACM_UART_ENABLED
12	select SERIAL_HAS_DRIVER
13	select SERIAL_SUPPORT_INTERRUPT
14	select RING_BUFFER
15	select UART_INTERRUPT_DRIVEN
16	help
17	  USB CDC ACM class support.
18
19if USB_CDC_ACM
20
21config USB_CDC_ACM_RINGBUF_SIZE
22	int "USB CDC ACM ring buffer size"
23	default 1024
24	help
25	  USB CDC ACM ring buffer size
26
27config CDC_ACM_INTERRUPT_EP_MPS
28	int
29	default 16
30	help
31	  CDC ACM class interrupt IN endpoint size
32
33config CDC_ACM_BULK_EP_MPS
34	int
35	default 512 if USB_DC_HAS_HS_SUPPORT
36	default 64
37	help
38	  CDC ACM class bulk endpoints size
39
40config CDC_ACM_TX_DELAY_MS
41	int
42	default 100
43	help
44	  Time in milliseconds to wait before sending actual payload to host.
45	  This is needed to prevent tty ECHO on Linux.
46
47config CDC_ACM_IAD
48	bool "Force using Interface Association Descriptor"
49	default y
50	help
51	  IAD should not be required for non-composite CDC ACM device,
52	  but Windows 7 fails to properly enumerate without it.
53	  Enable if you want CDC ACM to work with Windows 7.
54
55config CDC_ACM_DTE_RATE_CALLBACK_SUPPORT
56	bool "Support callbacks when the USB host changes the virtual baud rate"
57	default BOOTLOADER_BOSSA
58	help
59	  If set, enables support for a callback that is invoked when the
60	  remote host changes the virtual baud rate. This is used
61	  by Arduino style programmers to reset the device into the
62	  bootloader.
63
64module = USB_CDC_ACM
65module-str = usb cdc acm
66source "subsys/logging/Kconfig.template.log_config"
67
68endif # USB_CDC_ACM
69
70endmenu
71