diff options
| author | Stefan Kerkmann <karlk90@pm.me> | 2021-07-02 00:24:08 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-02 08:24:08 +1000 |
| commit | 117bff17ba89a70dd85163b499c262b879f52afd (patch) | |
| tree | 055d7704c28711bd3c30ba8f55a2b3524395578b /drivers/chibios/serial_usart.h | |
| parent | 47b12470e762732638a79e6752069564d6fb9649 (diff) | |
| download | qmk_firmware-117bff17ba89a70dd85163b499c262b879f52afd.tar.gz qmk_firmware-117bff17ba89a70dd85163b499c262b879f52afd.zip | |
[Core] Unite half-duplex and full-duplex serial drivers (#13081)
* Unite half-duplex and full-duplex serial driver.
* Add full duplex operation mode to the interrupt based driver
* Delete DMA UART based full duplex driver
* The new driver targets #11930
* Fix freezes with failing transactions in half-duplex
* Increase default serial TX/RX buffer size to 128 bytes
* Correctly use bool instead of size_t
Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'drivers/chibios/serial_usart.h')
| -rw-r--r-- | drivers/chibios/serial_usart.h | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/drivers/chibios/serial_usart.h b/drivers/chibios/serial_usart.h index fee7b4d15..c64e15566 100644 --- a/drivers/chibios/serial_usart.h +++ b/drivers/chibios/serial_usart.h | |||
| @@ -23,19 +23,45 @@ | |||
| 23 | #include <ch.h> | 23 | #include <ch.h> |
| 24 | #include <hal.h> | 24 | #include <hal.h> |
| 25 | 25 | ||
| 26 | #ifndef USART_CR1_M0 | 26 | #if !defined(SERIAL_USART_DRIVER) |
| 27 | # define SERIAL_USART_DRIVER SD1 | ||
| 28 | #endif | ||
| 29 | |||
| 30 | #if !defined(USE_GPIOV1) | ||
| 31 | /* The default PAL alternate modes are used to signal that the pins are used for USART. */ | ||
| 32 | # if !defined(SERIAL_USART_TX_PAL_MODE) | ||
| 33 | # define SERIAL_USART_TX_PAL_MODE 7 | ||
| 34 | # endif | ||
| 35 | # if !defined(SERIAL_USART_RX_PAL_MODE) | ||
| 36 | # define SERIAL_USART_RX_PAL_MODE 7 | ||
| 37 | # endif | ||
| 38 | #endif | ||
| 39 | |||
| 40 | #if defined(SOFT_SERIAL_PIN) | ||
| 41 | # define SERIAL_USART_TX_PIN SOFT_SERIAL_PIN | ||
| 42 | #endif | ||
| 43 | |||
| 44 | #if !defined(SERIAL_USART_TX_PIN) | ||
| 45 | # define SERIAL_USART_TX_PIN A9 | ||
| 46 | #endif | ||
| 47 | |||
| 48 | #if !defined(SERIAL_USART_RX_PIN) | ||
| 49 | # define SERIAL_USART_RX_PIN A10 | ||
| 50 | #endif | ||
| 51 | |||
| 52 | #if !defined(USART_CR1_M0) | ||
| 27 | # define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so | 53 | # define USART_CR1_M0 USART_CR1_M // some platforms (f1xx) dont have this so |
| 28 | #endif | 54 | #endif |
| 29 | 55 | ||
| 30 | #ifndef SERIAL_USART_CR1 | 56 | #if !defined(SERIAL_USART_CR1) |
| 31 | # define SERIAL_USART_CR1 (USART_CR1_PCE | USART_CR1_PS | USART_CR1_M0) // parity enable, odd parity, 9 bit length | 57 | # define SERIAL_USART_CR1 (USART_CR1_PCE | USART_CR1_PS | USART_CR1_M0) // parity enable, odd parity, 9 bit length |
| 32 | #endif | 58 | #endif |
| 33 | 59 | ||
| 34 | #ifndef SERIAL_USART_CR2 | 60 | #if !defined(SERIAL_USART_CR2) |
| 35 | # define SERIAL_USART_CR2 (USART_CR2_STOP_1) // 2 stop bits | 61 | # define SERIAL_USART_CR2 (USART_CR2_STOP_1) // 2 stop bits |
| 36 | #endif | 62 | #endif |
| 37 | 63 | ||
| 38 | #ifndef SERIAL_USART_CR3 | 64 | #if !defined(SERIAL_USART_CR3) |
| 39 | # define SERIAL_USART_CR3 0 | 65 | # define SERIAL_USART_CR3 0 |
| 40 | #endif | 66 | #endif |
| 41 | 67 | ||
| @@ -61,11 +87,11 @@ | |||
| 61 | } while (0) | 87 | } while (0) |
| 62 | #endif | 88 | #endif |
| 63 | 89 | ||
| 64 | #ifndef SELECT_SOFT_SERIAL_SPEED | 90 | #if !defined(SELECT_SOFT_SERIAL_SPEED) |
| 65 | # define SELECT_SOFT_SERIAL_SPEED 1 | 91 | # define SELECT_SOFT_SERIAL_SPEED 1 |
| 66 | #endif | 92 | #endif |
| 67 | 93 | ||
| 68 | #ifdef SERIAL_USART_SPEED | 94 | #if defined(SERIAL_USART_SPEED) |
| 69 | // Allow advanced users to directly set SERIAL_USART_SPEED | 95 | // Allow advanced users to directly set SERIAL_USART_SPEED |
| 70 | #elif SELECT_SOFT_SERIAL_SPEED == 0 | 96 | #elif SELECT_SOFT_SERIAL_SPEED == 0 |
| 71 | # define SERIAL_USART_SPEED 460800 | 97 | # define SERIAL_USART_SPEED 460800 |
| @@ -83,7 +109,7 @@ | |||
| 83 | # error invalid SELECT_SOFT_SERIAL_SPEED value | 109 | # error invalid SELECT_SOFT_SERIAL_SPEED value |
| 84 | #endif | 110 | #endif |
| 85 | 111 | ||
| 86 | #ifndef SERIAL_USART_TIMEOUT | 112 | #if !defined(SERIAL_USART_TIMEOUT) |
| 87 | # define SERIAL_USART_TIMEOUT 100 | 113 | # define SERIAL_USART_TIMEOUT 100 |
| 88 | #endif | 114 | #endif |
| 89 | 115 | ||
