From 95275eb9b3509c7ccb91ac6e5ef4cf64ed5364d2 Mon Sep 17 00:00:00 2001
From: Scott Lahteine <sourcetree@thinkyhead.com>
Date: Sat, 22 Oct 2016 18:25:59 -0500
Subject: [PATCH] Predefine auto fan pins in some pins files

---
 Marlin/pins.h                | 16 ++++++++++++++++
 Marlin/pins_AZTEEG_X3_PRO.h  |  8 ++++----
 Marlin/pins_BQ_ZUM_MEGA_3D.h |  8 ++++++++
 Marlin/pins_CNCONTROLS_11.h  |  5 +++++
 Marlin/pins_CNCONTROLS_12.h  |  5 +++++
 5 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/Marlin/pins.h b/Marlin/pins.h
index 6ef9dbaf23..b2701ae282 100644
--- a/Marlin/pins.h
+++ b/Marlin/pins.h
@@ -282,6 +282,22 @@
 // Marlin needs to account for pins that equal -1
 #define marlinAnalogInputToDigitalPin(p) ((p) == -1 ? -1 : analogInputToDigitalPin(p))
 
+//
+// Assign auto fan pins if needed
+//
+#if !defined(E0_AUTO_FAN_PIN) && defined(ORIG_E0_AUTO_FAN_PIN)
+  #define E0_AUTO_FAN_PIN ORIG_E0_AUTO_FAN_PIN
+#endif
+#if !defined(E1_AUTO_FAN_PIN) && defined(ORIG_E1_AUTO_FAN_PIN)
+  #define E1_AUTO_FAN_PIN ORIG_E1_AUTO_FAN_PIN
+#endif
+#if !defined(E2_AUTO_FAN_PIN) && defined(ORIG_E2_AUTO_FAN_PIN)
+  #define E2_AUTO_FAN_PIN ORIG_E2_AUTO_FAN_PIN
+#endif
+#if !defined(E3_AUTO_FAN_PIN) && defined(ORIG_E3_AUTO_FAN_PIN)
+  #define E3_AUTO_FAN_PIN ORIG_E3_AUTO_FAN_PIN
+#endif
+
 // List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those!
 #define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, E0_MS1_PIN, E0_MS2_PIN,
 #define _E1_PINS
diff --git a/Marlin/pins_AZTEEG_X3_PRO.h b/Marlin/pins_AZTEEG_X3_PRO.h
index 32cd233260..06c2934104 100644
--- a/Marlin/pins_AZTEEG_X3_PRO.h
+++ b/Marlin/pins_AZTEEG_X3_PRO.h
@@ -106,10 +106,10 @@
 #define CONTROLLERFAN_PIN   4 // Pin used for the fan to cool motherboard (-1 to disable)
 
 // Fans/Water Pump to cool the hotend cool side.
-#define E0_AUTO_FAN_PIN     5
-#define E1_AUTO_FAN_PIN     5
-#define E2_AUTO_FAN_PIN     5
-#define E3_AUTO_FAN_PIN     5
+#define ORIG_E0_AUTO_FAN_PIN 5
+#define ORIG_E1_AUTO_FAN_PIN 5
+#define ORIG_E2_AUTO_FAN_PIN 5
+#define ORIG_E3_AUTO_FAN_PIN 5
 
 //
 // LCD / Controller
diff --git a/Marlin/pins_BQ_ZUM_MEGA_3D.h b/Marlin/pins_BQ_ZUM_MEGA_3D.h
index 8075265f09..dff48a4521 100644
--- a/Marlin/pins_BQ_ZUM_MEGA_3D.h
+++ b/Marlin/pins_BQ_ZUM_MEGA_3D.h
@@ -38,6 +38,14 @@
 #define RAMPS_D10_PIN  9
 #define MOSFET_D_PIN   7
 
+//
+// Auto fans
+//
+#define ORIG_E0_AUTO_FAN_PIN 11
+#define ORIG_E1_AUTO_FAN_PIN  6
+#define ORIG_E2_AUTO_FAN_PIN  6 
+#define ORIG_E3_AUTO_FAN_PIN  6
+
 #include "pins_RAMPS_13.h"
 
 //
diff --git a/Marlin/pins_CNCONTROLS_11.h b/Marlin/pins_CNCONTROLS_11.h
index dfd4c19bd4..fdf6c317e5 100644
--- a/Marlin/pins_CNCONTROLS_11.h
+++ b/Marlin/pins_CNCONTROLS_11.h
@@ -69,6 +69,11 @@
 
 //#define FAN_PIN           7  // common PWM pin for all tools
 
+#define ORIG_E0_AUTO_FAN_PIN 7
+#define ORIG_E1_AUTO_FAN_PIN 7
+#define ORIG_E2_AUTO_FAN_PIN 7
+#define ORIG_E3_AUTO_FAN_PIN 7
+
 //
 // Misc. Functions
 //
diff --git a/Marlin/pins_CNCONTROLS_12.h b/Marlin/pins_CNCONTROLS_12.h
index aac4d8afc7..809d1a6db2 100644
--- a/Marlin/pins_CNCONTROLS_12.h
+++ b/Marlin/pins_CNCONTROLS_12.h
@@ -69,6 +69,11 @@
 
 #define FAN_PIN             5  // 5 is PWMtool3 -> 7 is common PWM pin for all tools
 
+#define ORIG_E0_AUTO_FAN_PIN 7
+#define ORIG_E1_AUTO_FAN_PIN 7
+#define ORIG_E2_AUTO_FAN_PIN 7
+#define ORIG_E3_AUTO_FAN_PIN 7
+
 //
 // Misc. Functions
 //