summary refs log tree commit diff
path: root/platforms
diff options
context:
space:
mode:
authorRyan <fauxpark@gmail.com>2022-09-17 11:24:03 +1000
committerGitHub <noreply@github.com>2022-09-17 02:24:03 +0100
commit33c47fe0106b5b1ec307d81bc6ee92cce3be50d5 (patch)
treee26ba41279d66bc82b86aaaabced1013a243ce7c /platforms
parent786fabc144b9ae101c9040c83907d9728d28af07 (diff)
Add UART support for Kinetis boards (#18370)
* Add UART support for Kinetis boards

* Default PAL mode for GPIOV1
Diffstat (limited to 'platforms')
-rw-r--r--platforms/chibios/drivers/uart.c12
-rw-r--r--platforms/chibios/drivers/uart.h46
2 files changed, 41 insertions, 17 deletions
diff --git a/platforms/chibios/drivers/uart.c b/platforms/chibios/drivers/uart.c
index 396803f33b..b16130d80b 100644
--- a/platforms/chibios/drivers/uart.c
+++ b/platforms/chibios/drivers/uart.c
@@ -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};
@@ -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);
diff --git a/platforms/chibios/drivers/uart.h b/platforms/chibios/drivers/uart.h
index 603d51037b..db97840270 100644
--- a/platforms/chibios/drivers/uart.h
+++ b/platforms/chibios/drivers/uart.h
@@ -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