Merge pull request #13375 from leandrolanzieri/pr/kconfig_migrate/sys/usbus_cdc
usbus/cdc/acm: Expose configurations to Kconfig
This commit is contained in:
commit
c81c8ed104
@ -46,15 +46,28 @@ extern "C" {
|
|||||||
* @brief Buffer size for STDIN and STDOUT data to and from USB when using
|
* @brief Buffer size for STDIN and STDOUT data to and from USB when using
|
||||||
* the USBUS_CDC_ACM_STDIO module
|
* the USBUS_CDC_ACM_STDIO module
|
||||||
*/
|
*/
|
||||||
#ifndef USBUS_CDC_ACM_STDIO_BUF_SIZE
|
#ifdef CONFIG_USBUS_CDC_ACM_STDIO_BUF_SIZE_EXP
|
||||||
#define USBUS_CDC_ACM_STDIO_BUF_SIZE (128)
|
#define CONFIG_USBUS_CDC_ACM_STDIO_BUF_SIZE (1<<CONFIG_USBUS_CDC_ACM_STDIO_BUF_SIZE_EXP)
|
||||||
|
#endif
|
||||||
|
#ifndef CONFIG_USBUS_CDC_ACM_STDIO_BUF_SIZE
|
||||||
|
#define CONFIG_USBUS_CDC_ACM_STDIO_BUF_SIZE (128)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief USB CDC ACM bulk endpoint size
|
* @brief USB CDC ACM bulk endpoint size
|
||||||
*/
|
*/
|
||||||
#ifndef USBUS_CDC_ACM_BULK_EP_SIZE
|
#if IS_ACTIVE(CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE_8)
|
||||||
#define USBUS_CDC_ACM_BULK_EP_SIZE (64)
|
#define CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE (8)
|
||||||
|
#elif IS_ACTIVE(CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE_16)
|
||||||
|
#define CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE (16)
|
||||||
|
#elif IS_ACTIVE(CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE_32)
|
||||||
|
#define CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE (32)
|
||||||
|
#elif IS_ACTIVE(CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE_64)
|
||||||
|
#define CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE (64)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE
|
||||||
|
#define CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE (64)
|
||||||
#endif
|
#endif
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|||||||
@ -42,4 +42,6 @@ config USBUS_EP0_SIZE_64
|
|||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
|
rsource "cdc/Kconfig"
|
||||||
|
|
||||||
endif # KCONFIG_MODULE_USBUS
|
endif # KCONFIG_MODULE_USBUS
|
||||||
|
|||||||
1
sys/usb/usbus/cdc/Kconfig
Normal file
1
sys/usb/usbus/cdc/Kconfig
Normal file
@ -0,0 +1 @@
|
|||||||
|
rsource "acm/Kconfig"
|
||||||
46
sys/usb/usbus/cdc/acm/Kconfig
Normal file
46
sys/usb/usbus/cdc/acm/Kconfig
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# Copyright (c) 2020 HAW Hamburg
|
||||||
|
#
|
||||||
|
# This file is subject to the terms and conditions of the GNU Lesser
|
||||||
|
# General Public License v2.1. See the file LICENSE in the top level
|
||||||
|
# directory for more details.
|
||||||
|
#
|
||||||
|
menuconfig KCONFIG_MODULE_USBUS_CDC_ACM
|
||||||
|
bool "Configure USBUS CDC ACM"
|
||||||
|
depends on MODULE_USBUS_CDC_ACM
|
||||||
|
help
|
||||||
|
Configure the USBUS CDC ACM module via Kconfig.
|
||||||
|
|
||||||
|
if KCONFIG_MODULE_USBUS_CDC_ACM
|
||||||
|
|
||||||
|
config USBUS_CDC_ACM_STDIO_BUF_SIZE_EXP
|
||||||
|
int "Buffer size for STDIN and STDOUT data (as exponent of 2^n)"
|
||||||
|
default 7
|
||||||
|
range 0 31
|
||||||
|
depends on MODULE_STDIO_CDC_ACM
|
||||||
|
help
|
||||||
|
As buffer size ALWAYS needs to be power of two, this changes this option
|
||||||
|
represents the exponent of 2^n, which will be used as the size of the
|
||||||
|
buffer.
|
||||||
|
|
||||||
|
choice
|
||||||
|
bool "USB CDC ACM bulk endpoint size"
|
||||||
|
default USBUS_CDC_ACM_BULK_EP_SIZE_64
|
||||||
|
help
|
||||||
|
This configures the maximum amount of bytes (chars) sent per transfer
|
||||||
|
over the USB connection.
|
||||||
|
|
||||||
|
config USBUS_CDC_ACM_BULK_EP_SIZE_8
|
||||||
|
bool "8"
|
||||||
|
|
||||||
|
config USBUS_CDC_ACM_BULK_EP_SIZE_16
|
||||||
|
bool "16"
|
||||||
|
|
||||||
|
config USBUS_CDC_ACM_BULK_EP_SIZE_32
|
||||||
|
bool "32"
|
||||||
|
|
||||||
|
config USBUS_CDC_ACM_BULK_EP_SIZE_64
|
||||||
|
bool "64"
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
|
endif # KCONFIG_MODULE_USBUS_CDC_ACM
|
||||||
@ -232,14 +232,14 @@ static void _init(usbus_t *usbus, usbus_handler_t *handler)
|
|||||||
usbus_enable_endpoint(ep);
|
usbus_enable_endpoint(ep);
|
||||||
ep = usbus_add_endpoint(usbus, &cdcacm->iface_data,
|
ep = usbus_add_endpoint(usbus, &cdcacm->iface_data,
|
||||||
USB_EP_TYPE_BULK, USB_EP_DIR_IN,
|
USB_EP_TYPE_BULK, USB_EP_DIR_IN,
|
||||||
USBUS_CDC_ACM_BULK_EP_SIZE);
|
CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE);
|
||||||
ep->interval = 0; /* Interval is not used with bulk endpoints */
|
ep->interval = 0; /* Interval is not used with bulk endpoints */
|
||||||
usbus_enable_endpoint(ep);
|
usbus_enable_endpoint(ep);
|
||||||
/* Store the endpoint reference to activate it
|
/* Store the endpoint reference to activate it
|
||||||
* when DTE present is signalled by the host */
|
* when DTE present is signalled by the host */
|
||||||
ep = usbus_add_endpoint(usbus, &cdcacm->iface_data,
|
ep = usbus_add_endpoint(usbus, &cdcacm->iface_data,
|
||||||
USB_EP_TYPE_BULK, USB_EP_DIR_OUT,
|
USB_EP_TYPE_BULK, USB_EP_DIR_OUT,
|
||||||
USBUS_CDC_ACM_BULK_EP_SIZE);
|
CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE);
|
||||||
ep->interval = 0; /* Interval is not used with bulk endpoints */
|
ep->interval = 0; /* Interval is not used with bulk endpoints */
|
||||||
usbus_enable_endpoint(ep);
|
usbus_enable_endpoint(ep);
|
||||||
|
|
||||||
@ -319,12 +319,12 @@ static void _handle_in(usbus_cdcacm_device_t *cdcacm,
|
|||||||
(cdcacm->state != USBUS_CDC_ACM_LINE_STATE_DTE)) {
|
(cdcacm->state != USBUS_CDC_ACM_LINE_STATE_DTE)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* copy at most USBUS_CDC_ACM_BULK_EP_SIZE chars from input into ep->buf */
|
/* copy at most CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE chars from input into ep->buf */
|
||||||
unsigned old = irq_disable();
|
unsigned old = irq_disable();
|
||||||
while (!tsrb_empty(&cdcacm->tsrb)) {
|
while (!tsrb_empty(&cdcacm->tsrb)) {
|
||||||
int c = tsrb_get_one(&cdcacm->tsrb);
|
int c = tsrb_get_one(&cdcacm->tsrb);
|
||||||
ep->buf[cdcacm->occupied++] = (uint8_t)c;
|
ep->buf[cdcacm->occupied++] = (uint8_t)c;
|
||||||
if (cdcacm->occupied >= USBUS_CDC_ACM_BULK_EP_SIZE) {
|
if (cdcacm->occupied >= CONFIG_USBUS_CDC_ACM_BULK_EP_SIZE) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -38,8 +38,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
static usbus_cdcacm_device_t cdcacm;
|
static usbus_cdcacm_device_t cdcacm;
|
||||||
static uint8_t _cdc_tx_buf_mem[USBUS_CDC_ACM_STDIO_BUF_SIZE];
|
static uint8_t _cdc_tx_buf_mem[CONFIG_USBUS_CDC_ACM_STDIO_BUF_SIZE];
|
||||||
static uint8_t _cdc_rx_buf_mem[USBUS_CDC_ACM_STDIO_BUF_SIZE];
|
static uint8_t _cdc_rx_buf_mem[CONFIG_USBUS_CDC_ACM_STDIO_BUF_SIZE];
|
||||||
static isrpipe_t _cdc_stdio_isrpipe = ISRPIPE_INIT(_cdc_rx_buf_mem);
|
static isrpipe_t _cdc_stdio_isrpipe = ISRPIPE_INIT(_cdc_rx_buf_mem);
|
||||||
|
|
||||||
void stdio_init(void)
|
void stdio_init(void)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user