From f298cde47e0f81ab37c799ee33a130ad5ed8f5b0 Mon Sep 17 00:00:00 2001
From: Allen Bauer <kylix.rd@gmail.com>
Date: Tue, 16 Feb 2021 15:35:31 -0800
Subject: [PATCH] BTT002 pins for FYSETC mini12864 (#21096)

---
 .../src/pins/stm32f4/pins_BTT_BTT002_V1_0.h   | 126 ++++++++++++------
 1 file changed, 87 insertions(+), 39 deletions(-)

diff --git a/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h b/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h
index 939bc1eccd..bc69e1fd21 100644
--- a/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h
+++ b/Marlin/src/pins/stm32f4/pins_BTT_BTT002_V1_0.h
@@ -172,73 +172,121 @@
 #define FAN_PIN                             PB8   // Fan1
 #define FAN1_PIN                            PB9   // Fan0
 
+/**
+ * -----------------------------------BTT002 V1.0----------------------------------------
+ *               ------                                          ------                  |
+ *          PA3 | 1  2 | GND                                 5V | 1  2 | GND             |
+ *       NRESET | 3  4 | PC4 (SD_DET)             (LCD_D7) PE13 | 3  4 | PE12  (LCD_D6)  |
+ *   (MOSI) PA7 | 5  6 | PB0 (BTN_EN2)            (LCD_D5) PE11 | 5  6 | PE10  (LCD_D4)  |
+ *  (SD_SS) PA4 | 7  8 | PC5 (BTN_EN1)            (LCD_RS) PE8  | 7  8 | PE9   (LCD_EN)  |
+ *    (SCK) PA5 | 9 10 | PA6 (MISO)              (BTN_ENC) PB1  | 9 10 | PE7   (BEEPER)  |
+ *               ------                                          ------                  |
+ *                EXP2                                            EXP1                   |
+ * --------------------------------------------------------------------------------------
+ */
+
+#define EXP1_03_PIN                         PE13
+#define EXP1_04_PIN                         PE12
+#define EXP1_05_PIN                         PE11
+#define EXP1_06_PIN                         PE10
+#define EXP1_07_PIN                         PE8
+#define EXP1_08_PIN                         PE9
+#define EXP1_09_PIN                         PB1
+#define EXP1_10_PIN                         PE7
+
+#define EXP2_03_PIN                         -1
+#define EXP2_04_PIN                         PC4
+#define EXP2_05_PIN                         PA7
+#define EXP2_06_PIN                         PB0
+#define EXP2_07_PIN                         PA4
+#define EXP2_08_PIN                         PC5
+#define EXP2_09_PIN                         PA5
+#define EXP2_10_PIN                         PA6
+
 // HAL SPI1 pins
 #define CUSTOM_SPI_PINS
 #if ENABLED(CUSTOM_SPI_PINS)
-  #define SD_SCK_PIN                        PA5   // SPI1 SCLK
-  #define SD_SS_PIN                         PA4   // SPI1 SSEL
-  #define SD_MISO_PIN                       PA6   // SPI1 MISO
-  #define SD_MOSI_PIN                       PA7   // SPI1 MOSI
+  #define SD_SCK_PIN                 EXP2_09_PIN  // SPI1 SCLK
+  #define SD_SS_PIN                  EXP2_07_PIN  // SPI1 SSEL
+  #define SD_MISO_PIN                EXP2_10_PIN  // SPI1 MISO
+  #define SD_MOSI_PIN                EXP2_05_PIN  // SPI1 MOSI
 #endif
 
-//
-// Misc. Functions
-//
-#define SDSS                                PA4
-
-/**
- * -------------------------------------BTT002 V1.0--------------------------------------------
- *               -----                                             -----                      |
- *          PA3 | · · | GND                                    5V | · · | GND                 |
- *       NRESET | · · | PC4(SD_DET)                 (LCD_D7) PE13 | · · | PE12  (LCD_D6)      |
- *   (MOSI)PA7  | · · | PB0(BTN_EN2)                (LCD_D5) PE11 | · · | PE10  (LCD_D4)      |
- *  (SD_SS)PA4  | · · | PC5(BTN_EN1)                (LCD_RS) PE8  | · · | PE9   (LCD_EN)      |
- *    (SCK)PA5  | · · | PA6(MISO)                  (BTN_ENC) PB1  | · · | PE7   (BEEPER)      |
- *               -----                                             -----                      |
- *               EXP2                                              EXP1                       |
- * --------------------------------------------------------------------------------------------
- */
+#define SDSS                         EXP2_07_PIN
 
 //
 // LCDs and Controllers
 //
 #if HAS_WIRED_LCD
-  #define BEEPER_PIN                        PE7
-  #define BTN_ENC                           PB1
+  #define BEEPER_PIN                 EXP1_10_PIN
+  #define BTN_ENC                    EXP1_09_PIN
+
+  #define SD_DETECT_PIN              EXP2_04_PIN
 
   #if ENABLED(CR10_STOCKDISPLAY)
-    #define LCD_PINS_RS                     PE12
+    #define LCD_PINS_RS              EXP1_04_PIN
 
-    #define BTN_EN1                         PE9
-    #define BTN_EN2                         PE10
+    #define BTN_EN1                  EXP1_08_PIN
+    #define BTN_EN2                  EXP1_06_PIN
 
-    #define LCD_PINS_ENABLE                 PE13
-    #define LCD_PINS_D4                     PE11
+    #define LCD_PINS_ENABLE          EXP1_03_PIN
+    #define LCD_PINS_D4              EXP1_05_PIN
+
+  #elif ENABLED(MKS_MINI_12864)
+
+    #define DOGLCD_A0                EXP1_04_PIN
+    #define DOGLCD_CS                EXP1_05_PIN
+    #define BTN_EN1                  EXP2_08_PIN
+    #define BTN_EN2                  EXP2_06_PIN
 
   #else
 
-    #define LCD_PINS_RS                     PE8
+    #define LCD_PINS_RS              EXP1_07_PIN
 
-    #define BTN_EN1                         PC5
-    #define BTN_EN2                         PB0
-    #define SD_DETECT_PIN                   PC4
+    #define BTN_EN1                  EXP2_08_PIN
+    #define BTN_EN2                  EXP2_06_PIN
 
-    #define LCD_SDSS                        PA4
+    #define LCD_PINS_ENABLE          EXP1_08_PIN
+    #define LCD_PINS_D4              EXP1_06_PIN
 
-    #define LCD_PINS_ENABLE                 PE9
-    #define LCD_PINS_D4                     PE10
+    #if ENABLED(FYSETC_MINI_12864)
+      #define DOGLCD_CS              EXP1_08_PIN
+      #define DOGLCD_A0              EXP1_07_PIN
+      #define DOGLCD_MOSI            EXP2_05_PIN
+      #define DOGLCD_MISO            EXP2_10_PIN
+      #define DOGLCD_SCK             EXP2_09_PIN
+
+      #define LCD_BACKLIGHT_PIN             -1
+
+      #define FORCE_SOFT_SPI
+
+      #define LCD_RESET_PIN          EXP1_06_PIN  // Must be high or open for LCD to operate normally.
+
+      #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
+        #ifndef RGB_LED_R_PIN
+          #define RGB_LED_R_PIN      EXP1_05_PIN
+        #endif
+        #ifndef RGB_LED_G_PIN
+          #define RGB_LED_G_PIN      EXP1_04_PIN
+        #endif
+        #ifndef RGB_LED_B_PIN
+          #define RGB_LED_B_PIN      EXP1_03_PIN
+        #endif
+      #elif ENABLED(FYSETC_MINI_12864_2_1)
+        #define NEOPIXEL_PIN         EXP1_05_PIN
+      #endif
+    #endif // !FYSETC_MINI_12864
 
     #if IS_ULTIPANEL
-      #define LCD_PINS_D5                   PE11
-      #define LCD_PINS_D6                   PE12
-      #define LCD_PINS_D7                   PE13
+      #define LCD_PINS_D5            EXP1_05_PIN
+      #define LCD_PINS_D6            EXP1_04_PIN
+      #define LCD_PINS_D7            EXP1_03_PIN
 
       #if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
         #define BTN_ENC_EN           LCD_PINS_D7  // Detect the presence of the encoder
       #endif
 
     #endif
-
   #endif
 
   // Alter timing for graphical display