From 5b13abcacb8c90faec437c609ad35ff904af21e1 Mon Sep 17 00:00:00 2001
From: 3DSmitty <51137582+3DSmitty@users.noreply.github.com>
Date: Tue, 18 Jun 2019 03:38:18 -0400
Subject: [PATCH] Fix SPI_SD Outside of HAL_STM32F1 (#14306)

---
 .../src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp   |  8 ----
 Marlin/src/HAL/HAL_STM32F1/spi_pins.h         | 38 +++++++++++--------
 Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h  | 13 ++++++-
 3 files changed, 34 insertions(+), 25 deletions(-)

diff --git a/Marlin/src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp b/Marlin/src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp
index b5c49bd08d..90a09ca83d 100644
--- a/Marlin/src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp
+++ b/Marlin/src/HAL/HAL_STM32F1/HAL_spi_STM32F1.cpp
@@ -113,9 +113,7 @@ void spiInit(uint8_t spiRate) {
  * @details
  */
 uint8_t spiRec(void) {
-  WRITE(SS_PIN, LOW);
   uint8_t returnByte = SPI.transfer(0xFF);
-  WRITE(SS_PIN, HIGH);
   return returnByte;
 }
 
@@ -129,9 +127,7 @@ uint8_t spiRec(void) {
  * @details Uses DMA
  */
 void spiRead(uint8_t* buf, uint16_t nbyte) {
-  WRITE(SS_PIN, LOW);
   SPI.dmaTransfer(0, const_cast<uint8_t*>(buf), nbyte);
-  WRITE(SS_PIN, HIGH);
 }
 
 /**
@@ -142,9 +138,7 @@ void spiRead(uint8_t* buf, uint16_t nbyte) {
  * @details
  */
 void spiSend(uint8_t b) {
-  WRITE(SS_PIN, LOW);
   SPI.send(b);
-  WRITE(SS_PIN, HIGH);
 }
 
 /**
@@ -156,10 +150,8 @@ void spiSend(uint8_t b) {
  * @details Use DMA
  */
 void spiSendBlock(uint8_t token, const uint8_t* buf) {
-  WRITE(SS_PIN, LOW);
   SPI.send(token);
   SPI.dmaSend(const_cast<uint8_t*>(buf), 512);
-  WRITE(SS_PIN, HIGH);
 }
 
 #if ENABLED(SPI_EEPROM)
diff --git a/Marlin/src/HAL/HAL_STM32F1/spi_pins.h b/Marlin/src/HAL/HAL_STM32F1/spi_pins.h
index c2222110a4..b830f0e255 100644
--- a/Marlin/src/HAL/HAL_STM32F1/spi_pins.h
+++ b/Marlin/src/HAL/HAL_STM32F1/spi_pins.h
@@ -23,28 +23,36 @@
  */
 
 /**
- * Define SPI Pins: SCK, MISO, MOSI, SS
- *
- * Any PIN can be used for Chip Select (SS)
+ * STM32F1 Default SPI Pins
  *
+ *         SS     SCK     MISO    MOSI
+ *       +-----------------------------+
+ *  SPI1 | PA4    PA5     PA6     PA7  |
+ *  SPI2 | PB12   PB13    PB14    PB15 |
+ *  SPI3 | PA15   PB3     PB4     PB5  |
+ *       +-----------------------------+
+ * Any pin can be used for Chip Select (SS_PIN)
  * SPI1 is enabled by default
  */
+#ifndef SCK_PIN
+  #define SCK_PIN  PA5
+#endif
+#ifndef MISO_PIN
+  #define MISO_PIN PA6
+#endif
+#ifndef MOSI_PIN
+  #define MOSI_PIN PA7
+#endif
+#ifndef SS_PIN
+  #define SS_PIN   PA4
+#endif
+#undef SDSS
+#define SDSS       SS_PIN
+
 #if ENABLED(ENABLE_SPI3)
   #define SPI_DEVICE 3
-  #define SCK_PIN   BOARD_SPI3_SCK_PIN
-  #define MISO_PIN  BOARD_SPI3_MISO_PIN
-  #define MOSI_PIN  BOARD_SPI3_MOSI_PIN
-  #define SS_PIN    BOARD_SPI3_NSS_PIN
 #elif ENABLED(ENABLE_SPI2)
   #define SPI_DEVICE 2
-  #define SCK_PIN   BOARD_SPI2_SCK_PIN
-  #define MISO_PIN  BOARD_SPI2_MISO_PIN
-  #define MOSI_PIN  BOARD_SPI2_MOSI_PIN
-  #define SS_PIN    BOARD_SPI2_NSS_PIN
 #else
   #define SPI_DEVICE 1
-  #define SCK_PIN   BOARD_SPI1_SCK_PIN
-  #define MISO_PIN  BOARD_SPI1_MISO_PIN
-  #define MOSI_PIN  BOARD_SPI1_MOSI_PIN
-  #define SS_PIN    BOARD_SPI1_NSS_PIN
 #endif
diff --git a/Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h b/Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h
index 221345a0d4..8b0ab0cd04 100644
--- a/Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h
+++ b/Marlin/src/pins/pins_BIGTREE_SKR_MINI_V1_1.h
@@ -133,8 +133,17 @@
 //#define STM32_SD_LCD
 
 #if ENABLED(STM32_SD_LCD)
-  #define SD_DETECT_PIN    PB9
   #define ENABLE_SPI3
+  #define SD_DETECT_PIN PB9
+  #define SCK_PIN       PB3
+  #define MISO_PIN      PB4
+  #define MOSI_PIN      PB5
+  #define SS_PIN        PA15
 #else
-  #define SD_DETECT_PIN    PA3
+  #define ENABLE_SPI1
+  #define SD_DETECT_PIN PA3
+  #define SCK_PIN       PA5
+  #define MISO_PIN      PA6
+  #define MOSI_PIN      PA7
+  #define SS_PIN        PA4
 #endif
-- 
GitLab