From b3984cfca0c9d48f85f669719563036aa0ce57b3 Mon Sep 17 00:00:00 2001 From: sys64738 Date: Mon, 28 Jun 2021 22:29:03 +0200 Subject: [PATCH] move stuff around wrt. USB-CDC baudrate changes --- bsp/default/cdc_uart.c | 9 ++------- bsp/rp2040/cdc_uart.c | 8 ++------ src/protos.h | 1 + src/usb_descriptors.c | 6 ++++++ 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/bsp/default/cdc_uart.c b/bsp/default/cdc_uart.c index df626c5..e61b793 100644 --- a/bsp/default/cdc_uart.c +++ b/bsp/default/cdc_uart.c @@ -7,11 +7,6 @@ void cdc_uart_init(void) { void cdc_uart_task(void) { } -void cdc_uart_set_hwflow(bool enable) { - (void)enable; -} - -/* TODO: properly dispatch to others? */ -/*void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* line_coding) { -}*/ +void cdc_uart_set_hwflow(bool enable) { (void)enable; } +void cdc_uart_set_baud_rate(uint32_t brate) { (void)brate; } diff --git a/bsp/rp2040/cdc_uart.c b/bsp/rp2040/cdc_uart.c index 98a4976..3d6230b 100644 --- a/bsp/rp2040/cdc_uart.c +++ b/bsp/rp2040/cdc_uart.c @@ -70,11 +70,7 @@ void cdc_uart_set_hwflow(bool enable) { uart_set_hw_flow(PINOUT_UART_INTERFACE, enable, enable); } -/* TODO: properly dispatch to others? */ -void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* line_coding) { - if (itf == CDC_N_UART) { - //picoprobe_info("New baud rate %d\n", line_coding->bit_rate); - uart_init(PINOUT_UART_INTERFACE, line_coding->bit_rate); - } +void cdc_uart_set_baud_rate(uint32_t brate) { + uart_init(PINOUT_UART_INTERFACE, line_coding->bit_rate); } diff --git a/src/protos.h b/src/protos.h index 5d796dc..f793466 100644 --- a/src/protos.h +++ b/src/protos.h @@ -15,6 +15,7 @@ void cdc_uart_init(void); void cdc_uart_task(void); void cdc_uart_set_hwflow(bool enable); +void cdc_uart_set_baudrate(uint32_t brate); #endif #ifdef DBOARD_HAS_SERPROG diff --git a/src/usb_descriptors.c b/src/usb_descriptors.c index a7a899a..49dc293 100644 --- a/src/usb_descriptors.c +++ b/src/usb_descriptors.c @@ -258,3 +258,9 @@ uint16_t const* tud_descriptor_string_cb(uint8_t index, uint16_t langid) { return _desc_str; } +void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* line_coding) { + if (itf == CDC_N_UART) { + cdc_uart_set_baudrate(line_coding->bit_rate); + } +} +