From 96ab16a9dd7167840d9c9a871c43c60bdc7c6b15 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <github@thinkyhead.com>
Date: Tue, 31 Mar 2020 12:36:59 -0500
Subject: [PATCH] Pulldown for all FastIO headers

Co-Authored-By: borsegbr <borsegbr@users.noreply.github.com>
---
 Marlin/src/HAL/AVR/fastio.h                   |  4 ++--
 Marlin/src/HAL/DUE/fastio.h                   |  2 +-
 Marlin/src/HAL/ESP32/fastio.h                 |  2 +-
 Marlin/src/HAL/LPC1768/fastio.h               |  2 +-
 Marlin/src/HAL/SAMD51/fastio.h                |  4 ++--
 Marlin/src/HAL/TEENSY31_32/fastio.h           |  3 ++-
 Marlin/src/HAL/TEENSY35_36/fastio.h           |  3 ++-
 .../ftdi_eve_touch_ui/ftdi_eve_lib/compat.h   | 21 ++++++++++---------
 8 files changed, 22 insertions(+), 19 deletions(-)

diff --git a/Marlin/src/HAL/AVR/fastio.h b/Marlin/src/HAL/AVR/fastio.h
index 2246a0f9d0..a45e0f2beb 100644
--- a/Marlin/src/HAL/AVR/fastio.h
+++ b/Marlin/src/HAL/AVR/fastio.h
@@ -98,9 +98,9 @@
 
 #define SET_INPUT(IO)         _SET_INPUT(IO)
 #define SET_INPUT_PULLUP(IO)  do{ _SET_INPUT(IO); _WRITE(IO, HIGH); }while(0)
+#define SET_INPUT_PULLDOWN    SET_INPUT
 #define SET_OUTPUT(IO)        _SET_OUTPUT(IO)
-
-#define SET_PWM(IO)           SET_OUTPUT(IO)
+#define SET_PWM               SET_OUTPUT
 
 #define IS_INPUT(IO)          _IS_INPUT(IO)
 #define IS_OUTPUT(IO)         _IS_OUTPUT(IO)
diff --git a/Marlin/src/HAL/DUE/fastio.h b/Marlin/src/HAL/DUE/fastio.h
index 6f1f8d8bf2..01abd82049 100644
--- a/Marlin/src/HAL/DUE/fastio.h
+++ b/Marlin/src/HAL/DUE/fastio.h
@@ -166,7 +166,7 @@
 // Set pin as output (wrapper) -  reads the pin and sets the output to that value
 #define SET_OUTPUT(IO)       _SET_OUTPUT(IO)
 // Set pin as PWM
-#define SET_PWM(IO)           SET_OUTPUT(IO)
+#define SET_PWM               SET_OUTPUT
 
 // Check if pin is an input
 #define IS_INPUT(IO)         ((digitalPinToPort(IO)->PIO_OSR & digitalPinToBitMask(IO)) == 0)
diff --git a/Marlin/src/HAL/ESP32/fastio.h b/Marlin/src/HAL/ESP32/fastio.h
index 9c4efaee9d..09930194d6 100644
--- a/Marlin/src/HAL/ESP32/fastio.h
+++ b/Marlin/src/HAL/ESP32/fastio.h
@@ -56,7 +56,7 @@
 #define SET_OUTPUT(IO)          do{ _SET_OUTPUT(IO); }while(0)
 
 // Set pin as PWM
-#define SET_PWM(IO)             SET_OUTPUT(IO)
+#define SET_PWM                 SET_OUTPUT
 
 // Set pin as output and init
 #define OUT_WRITE(IO,V)         do{ _SET_OUTPUT(IO); WRITE(IO,V); }while(0)
diff --git a/Marlin/src/HAL/LPC1768/fastio.h b/Marlin/src/HAL/LPC1768/fastio.h
index 48de5b8fa0..8e8e66db72 100644
--- a/Marlin/src/HAL/LPC1768/fastio.h
+++ b/Marlin/src/HAL/LPC1768/fastio.h
@@ -104,7 +104,7 @@
 /// set pin as output wrapper  -  reads the pin and sets the output to that value
 #define SET_OUTPUT(IO)        do{ _WRITE(IO, _READ(IO)); _SET_OUTPUT(IO); }while(0)
 // set pin as PWM
-#define SET_PWM(IO)           SET_OUTPUT(IO)
+#define SET_PWM               SET_OUTPUT
 
 /// check if pin is an input wrapper
 #define IS_INPUT(IO)          _IS_INPUT(IO)
diff --git a/Marlin/src/HAL/SAMD51/fastio.h b/Marlin/src/HAL/SAMD51/fastio.h
index f6a2675de0..d3b3dc1f63 100644
--- a/Marlin/src/HAL/SAMD51/fastio.h
+++ b/Marlin/src/HAL/SAMD51/fastio.h
@@ -100,9 +100,9 @@
                                   PORT->Group[port].DIRCLR.reg = MASK(pin);                           \
                                 }while(0)
 // Set pin as PWM (push pull)
-#define SET_PWM(IO)             SET_OUTPUT(IO)
+#define SET_PWM                 SET_OUTPUT
 // Set pin as PWM (open drain)
-#define SET_PWM_OD(IO)          SET_OUTPUT_OD(IO)
+#define SET_PWM_OD              SET_OUTPUT_OD
 
 // check if pin is an output
 #define IS_OUTPUT(IO)            ((PORT->Group[(EPortType)GET_SAMD_PORT(IO)].DIR.reg & MASK(GET_SAMD_PIN(IO))) \
diff --git a/Marlin/src/HAL/TEENSY31_32/fastio.h b/Marlin/src/HAL/TEENSY31_32/fastio.h
index 8547fe2b7a..e74920d493 100644
--- a/Marlin/src/HAL/TEENSY31_32/fastio.h
+++ b/Marlin/src/HAL/TEENSY31_32/fastio.h
@@ -76,8 +76,9 @@
 
 #define SET_INPUT(IO)         _SET_INPUT(IO)
 #define SET_INPUT_PULLUP(IO)  _SET_INPUT_PULLUP(IO)
+#define SET_INPUT_PULLDOWN    SET_INPUT
 #define SET_OUTPUT(IO)        _SET_OUTPUT(IO)
-#define SET_PWM(IO)            SET_OUTPUT(IO)
+#define SET_PWM               SET_OUTPUT
 
 #define IS_INPUT(IO)          _IS_INPUT(IO)
 #define IS_OUTPUT(IO)         _IS_OUTPUT(IO)
diff --git a/Marlin/src/HAL/TEENSY35_36/fastio.h b/Marlin/src/HAL/TEENSY35_36/fastio.h
index 8547fe2b7a..e74920d493 100644
--- a/Marlin/src/HAL/TEENSY35_36/fastio.h
+++ b/Marlin/src/HAL/TEENSY35_36/fastio.h
@@ -76,8 +76,9 @@
 
 #define SET_INPUT(IO)         _SET_INPUT(IO)
 #define SET_INPUT_PULLUP(IO)  _SET_INPUT_PULLUP(IO)
+#define SET_INPUT_PULLDOWN    SET_INPUT
 #define SET_OUTPUT(IO)        _SET_OUTPUT(IO)
-#define SET_PWM(IO)            SET_OUTPUT(IO)
+#define SET_PWM               SET_OUTPUT
 
 #define IS_INPUT(IO)          _IS_INPUT(IO)
 #define IS_OUTPUT(IO)         _IS_OUTPUT(IO)
diff --git a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/ftdi_eve_lib/compat.h b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/ftdi_eve_lib/compat.h
index ef2b23a3a2..3023a1c6bc 100644
--- a/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/ftdi_eve_lib/compat.h
+++ b/Marlin/src/lcd/extui/lib/ftdi_eve_touch_ui/ftdi_eve_lib/compat.h
@@ -176,11 +176,12 @@
     #undef MAKE_ARDUINO_PINS
   } // namespace fast_io
 
-  #define SET_INPUT(pin)               fast_io::pin::set_input()
-  #define SET_INPUT_PULLUP(pin)        fast_io::pin::set_input(); fast_io::pin::set_high()
-  #define SET_OUTPUT(pin)              fast_io::pin::set_output()
-  #define READ(pin)                    fast_io::pin::read()
-  #define WRITE(pin, value)            fast_io::pin::write(value)
+  #define SET_INPUT(pin)              fast_io::pin::set_input()
+  #define SET_INPUT_PULLUP(pin)       do{ fast_io::pin::set_input(); fast_io::pin::set_high(); }while(0)
+  #define SET_INPUT_PULLDOWN          SET_INPUT
+  #define SET_OUTPUT(pin)             fast_io::pin::set_output()
+  #define READ(pin)                   fast_io::pin::read()
+  #define WRITE(pin, value)           fast_io::pin::write(value)
 
   #ifndef pgm_read_word_far
   #define pgm_read_word_far pgm_read_word
@@ -195,11 +196,11 @@
   #endif
 
   #define SERIAL_ECHO_START()
-  #define SERIAL_ECHOLNPGM(str)        Serial.println(F(str))
-  #define SERIAL_ECHOPGM(str)          Serial.print(F(str))
-  #define SERIAL_ECHO_MSG(str)         Serial.println(str)
-  #define SERIAL_ECHOLNPAIR(str, val) {Serial.print(F(str)); Serial.println(val);}
-  #define SERIAL_ECHOPAIR(str, val)   {Serial.print(F(str)); Serial.print(val);}
+  #define SERIAL_ECHOLNPGM(str)       Serial.println(F(str))
+  #define SERIAL_ECHOPGM(str)         Serial.print(F(str))
+  #define SERIAL_ECHO_MSG(str)        Serial.println(str)
+  #define SERIAL_ECHOLNPAIR(str, val) do{ Serial.print(F(str)); Serial.println(val); }while(0)
+  #define SERIAL_ECHOPAIR(str, val)   do{ Serial.print(F(str)); Serial.print(val); }while(0)
 
   #define safe_delay delay