Skip to content

Commit

Permalink
Add UART support for Kinetis boards (qmk#18370)
Browse files Browse the repository at this point in the history
* Add UART support for Kinetis boards

* Default PAL mode for GPIOV1
  • Loading branch information
fauxpark authored and ramonimbao committed Nov 28, 2022
1 parent 7a47952 commit 47f967e
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 17 deletions.
12 changes: 9 additions & 3 deletions platforms/chibios/drivers/uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@

#include "quantum.h"

#if defined(WB32F3G71xx) || defined(WB32FQ95xx)
#if defined(MCU_KINETIS)
static SerialConfig serialConfig = {SERIAL_DEFAULT_BITRATE};
#elif defined(WB32F3G71xx) || defined(WB32FQ95xx)
static SerialConfig serialConfig = {SERIAL_DEFAULT_BITRATE, SD1_WRDLEN, SD1_STPBIT, SD1_PARITY, SD1_ATFLCT};
#else
static SerialConfig serialConfig = {SERIAL_DEFAULT_BITRATE, SD1_CR1, SD1_CR2, SD1_CR3};
Expand All @@ -30,11 +32,15 @@ void uart_init(uint32_t baud) {
if (!is_initialised) {
is_initialised = true;

#if defined(MCU_KINETIS)
serialConfig.sc_speed = baud;
#else
serialConfig.speed = baud;
#endif

#if defined(USE_GPIOV1)
palSetLineMode(SD1_TX_PIN, PAL_MODE_ALTERNATE_OPENDRAIN);
palSetLineMode(SD1_RX_PIN, PAL_MODE_ALTERNATE_OPENDRAIN);
palSetLineMode(SD1_TX_PIN, SD1_TX_PAL_MODE);
palSetLineMode(SD1_RX_PIN, SD1_RX_PAL_MODE);
#else
palSetLineMode(SD1_TX_PIN, PAL_MODE_ALTERNATE(SD1_TX_PAL_MODE) | PAL_OUTPUT_TYPE_OPENDRAIN);
palSetLineMode(SD1_RX_PIN, PAL_MODE_ALTERNATE(SD1_RX_PAL_MODE) | PAL_OUTPUT_TYPE_OPENDRAIN);
Expand Down
46 changes: 32 additions & 14 deletions platforms/chibios/drivers/uart.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,32 +28,50 @@
# define SD1_TX_PIN A9
#endif

#ifndef SD1_TX_PAL_MODE
# define SD1_TX_PAL_MODE 7
#endif

#ifndef SD1_RX_PIN
# define SD1_RX_PIN A10
#endif

#ifndef SD1_RX_PAL_MODE
# define SD1_RX_PAL_MODE 7
#endif

#ifndef SD1_CTS_PIN
# define SD1_CTS_PIN A11
#endif

#ifndef SD1_CTS_PAL_MODE
# define SD1_CTS_PAL_MODE 7
#endif

#ifndef SD1_RTS_PIN
# define SD1_RTS_PIN A12
#endif

#ifndef SD1_RTS_PAL_MODE
# define SD1_RTS_PAL_MODE 7
#ifdef USE_GPIOV1
# ifndef SD1_TX_PAL_MODE
# define SD1_TX_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN
# endif

# ifndef SD1_RX_PAL_MODE
# define SD1_RX_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN
# endif

# ifndef SD1_CTS_PAL_MODE
# define SD1_CTS_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN
# endif

# ifndef SD1_RTS_PAL_MODE
# define SD1_RTS_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN
# endif
#else
# ifndef SD1_TX_PAL_MODE
# define SD1_TX_PAL_MODE 7
# endif

# ifndef SD1_RX_PAL_MODE
# define SD1_RX_PAL_MODE 7
# endif

# ifndef SD1_CTS_PAL_MODE
# define SD1_CTS_PAL_MODE 7
# endif

# ifndef SD1_RTS_PAL_MODE
# define SD1_RTS_PAL_MODE 7
# endif
#endif

#ifndef SD1_CR1
Expand Down

0 comments on commit 47f967e

Please sign in to comment.