diff --git a/drivers/include/soft_uart.h b/drivers/include/soft_uart.h index f2f30fc17d..032ae4099b 100644 --- a/drivers/include/soft_uart.h +++ b/drivers/include/soft_uart.h @@ -37,6 +37,16 @@ extern "C" { #endif +/** + * @brief invert the level of the TX signal + */ +#define SOFT_UART_FLAG_INVERT_TX 0x1 + +/** + * @brief invert the level of the RX signal + */ +#define SOFT_UART_FLAG_INVERT_RX 0x2 + /** * @brief Software UART port descriptor */ @@ -47,6 +57,7 @@ typedef struct { tim_t tx_timer; /**< Hardware timer used for TX */ uint32_t timer_freq; /**< Operating frequency of the timer. Should be a multiple of baudrate */ + uint8_t flags; /**< Soft UART flags */ } soft_uart_conf_t; /** diff --git a/drivers/soft_uart/include/soft_uart_params.h b/drivers/soft_uart/include/soft_uart_params.h index 3de62ccda3..2134a445ec 100644 --- a/drivers/soft_uart/include/soft_uart_params.h +++ b/drivers/soft_uart/include/soft_uart_params.h @@ -41,13 +41,18 @@ extern "C" { #ifndef SOFT_UART_PARAM_FREQ #define SOFT_UART_PARAM_FREQ MHZ(1) #endif +#ifndef SOFT_UART_PARAM_FLAGS +#define SOFT_UART_PARAM_FLAGS (0) +#endif #ifndef SOFT_UART_PARAMS #define SOFT_UART_PARAMS { .rx_pin = SOFT_UART_PARAM_RX, \ .tx_pin = SOFT_UART_PARAM_TX, \ .rx_timer = SOFT_UART_PARAM_TIMER_RX, \ .tx_timer = SOFT_UART_PARAM_TIMER_TX, \ - .timer_freq = SOFT_UART_PARAM_FREQ } + .timer_freq = SOFT_UART_PARAM_FREQ, \ + .flags = SOFT_UART_PARAM_FLAGS, \ + } #endif /**