From aea1194ea33fe85a8bdc380bd2cb27d3c3d6078a Mon Sep 17 00:00:00 2001
From: David Hoelscher <infinityis@users.noreply.github.com>
Date: Mon, 23 Jan 2023 14:05:47 -0600
Subject: [PATCH] Corrections to uart driver for Chibios platform (#19075)

---
 platforms/chibios/drivers/uart.c |  4 ++--
 platforms/chibios/drivers/uart.h | 11 ++++-------
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/platforms/chibios/drivers/uart.c b/platforms/chibios/drivers/uart.c
index b16130d80b0..34f77232b6c 100644
--- a/platforms/chibios/drivers/uart.c
+++ b/platforms/chibios/drivers/uart.c
@@ -42,8 +42,8 @@ void uart_init(uint32_t baud) {
         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);
+        palSetLineMode(SD1_TX_PIN, PAL_MODE_ALTERNATE(SD1_TX_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST);
+        palSetLineMode(SD1_RX_PIN, PAL_MODE_ALTERNATE(SD1_RX_PAL_MODE) | PAL_OUTPUT_TYPE_PUSHPULL | PAL_OUTPUT_SPEED_HIGHEST);
 #endif
         sdStart(&SERIAL_DRIVER, &serialConfig);
     }
diff --git a/platforms/chibios/drivers/uart.h b/platforms/chibios/drivers/uart.h
index db978402707..e9e3b0855b3 100644
--- a/platforms/chibios/drivers/uart.h
+++ b/platforms/chibios/drivers/uart.h
@@ -42,19 +42,16 @@
 
 #ifdef USE_GPIOV1
 #    ifndef SD1_TX_PAL_MODE
-#        define SD1_TX_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN
+#        define SD1_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL
 #    endif
-
 #    ifndef SD1_RX_PAL_MODE
-#        define SD1_RX_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN
+#        define SD1_RX_PAL_MODE PAL_MODE_INPUT
 #    endif
-
 #    ifndef SD1_CTS_PAL_MODE
-#        define SD1_CTS_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN
+#        define SD1_CTS_PAL_MODE PAL_MODE_INPUT
 #    endif
-
 #    ifndef SD1_RTS_PAL_MODE
-#        define SD1_RTS_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN
+#        define SD1_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL
 #    endif
 #else
 #    ifndef SD1_TX_PAL_MODE