diff --git a/keyboards/40percentclub/luddite/config.h b/keyboards/40percentclub/luddite/config.h
index 36bda0614..005cb7a70 100644
--- a/keyboards/40percentclub/luddite/config.h
+++ b/keyboards/40percentclub/luddite/config.h
@@ -19,6 +19,8 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B6 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* number of backlight levels */
#define BACKLIGHT_PIN B5
#ifdef BACKLIGHT_PIN
diff --git a/keyboards/7skb/rev1/config.h b/keyboards/7skb/rev1/config.h
index 01b1ef4a1..b1096c4d6 100644
--- a/keyboards/7skb/rev1/config.h
+++ b/keyboards/7skb/rev1/config.h
@@ -34,6 +34,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B5 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/adkb96/rev1/config.h b/keyboards/adkb96/rev1/config.h
index cff135c26..42685123b 100644
--- a/keyboards/adkb96/rev1/config.h
+++ b/keyboards/adkb96/rev1/config.h
@@ -33,6 +33,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 }
+#define DIODE_DIRECTION COL2ROW
+
#define SOFT_SERIAL_PIN D0
/* define tapping term */
diff --git a/keyboards/alps64/config.h b/keyboards/alps64/config.h
index cc7eada11..237dfbbe7 100644
--- a/keyboards/alps64/config.h
+++ b/keyboards/alps64/config.h
@@ -35,6 +35,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D4, D5, D6, C2 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/blackplum/config.h b/keyboards/blackplum/config.h
index 0fd7e21cb..256603744 100644
--- a/keyboards/blackplum/config.h
+++ b/keyboards/blackplum/config.h
@@ -19,6 +19,8 @@
#define MATRIX_COL_PINS { D0, D1, D2, F7, F6, F5, F4, F1 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/db/db63/config.h b/keyboards/db/db63/config.h
index 468e0f8a9..488409e3a 100644
--- a/keyboards/db/db63/config.h
+++ b/keyboards/db/db63/config.h
@@ -32,6 +32,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { A0, A1, A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C3, C2 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
#define RGBLED_NUM 18
#define RGBLIGHT_ANIMATIONS
diff --git a/keyboards/ergodash/mini/config.h b/keyboards/ergodash/mini/config.h
index 2fa51dcc1..1a0ecc0a7 100644
--- a/keyboards/ergodash/mini/config.h
+++ b/keyboards/ergodash/mini/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/ergodash/rev1/config.h b/keyboards/ergodash/rev1/config.h
index 7e84a3cab..0e89ca340 100644
--- a/keyboards/ergodash/rev1/config.h
+++ b/keyboards/ergodash/rev1/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 }
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/handwired/aek64/config.h b/keyboards/handwired/aek64/config.h
index 7d235358c..a072d562a 100644
--- a/keyboards/handwired/aek64/config.h
+++ b/keyboards/handwired/aek64/config.h
@@ -39,6 +39,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { E0, E1, C0, C1, C2 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/handwired/dactyl_manuform/4x5/config.h b/keyboards/handwired/dactyl_manuform/4x5/config.h
index 1f24c9aca..698418fb7 100644
--- a/keyboards/handwired/dactyl_manuform/4x5/config.h
+++ b/keyboards/handwired/dactyl_manuform/4x5/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see .
// #define MATRIX_COL_PINS { B5, B4, E6, D7, C6 }
#define MATRIX_COL_PINS { C6, D7, E6, B4, B5 }
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/handwired/dactyl_manuform/5x6/config.h b/keyboards/handwired/dactyl_manuform/5x6/config.h
index 413039449..fd0c23961 100644
--- a/keyboards/handwired/dactyl_manuform/5x6/config.h
+++ b/keyboards/handwired/dactyl_manuform/5x6/config.h
@@ -32,6 +32,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
// WS2812 RGB LED strip input and number of LEDs
#define RGB_DI_PIN D3
#define RGBLED_NUM 12
diff --git a/keyboards/handwired/dactyl_manuform/5x7/config.h b/keyboards/handwired/dactyl_manuform/5x7/config.h
index 435837498..bf56d0825 100644
--- a/keyboards/handwired/dactyl_manuform/5x7/config.h
+++ b/keyboards/handwired/dactyl_manuform/5x7/config.h
@@ -32,6 +32,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
// WS2812 RGB LED strip input and number of LEDs
#define RGB_DI_PIN D3
#define RGBLED_NUM 12
diff --git a/keyboards/handwired/dactyl_manuform/6x6/config.h b/keyboards/handwired/dactyl_manuform/6x6/config.h
index 9bc501c5e..522e98b68 100644
--- a/keyboards/handwired/dactyl_manuform/6x6/config.h
+++ b/keyboards/handwired/dactyl_manuform/6x6/config.h
@@ -32,6 +32,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_ROW_PINS { F5, F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
// WS2812 RGB LED strip input and number of LEDs
#define RGB_DI_PIN D3
#define RGBLED_NUM 12
diff --git a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h b/keyboards/handwired/dactyl_manuform/dmote/62key/config.h
index 7db3ceb75..d315cb180 100644
--- a/keyboards/handwired/dactyl_manuform/dmote/62key/config.h
+++ b/keyboards/handwired/dactyl_manuform/dmote/62key/config.h
@@ -37,6 +37,8 @@
#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 }
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
+#define DIODE_DIRECTION COL2ROW
+
// WS2812 RGB LED, normally used to indicate keyboard state:
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
diff --git a/keyboards/handwired/dactyl_promicro/config.h b/keyboards/handwired/dactyl_promicro/config.h
index 3c0b541d1..c57e76624 100644
--- a/keyboards/handwired/dactyl_promicro/config.h
+++ b/keyboards/handwired/dactyl_promicro/config.h
@@ -30,6 +30,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x3060
diff --git a/keyboards/handwired/hacked_motospeed/config.h b/keyboards/handwired/hacked_motospeed/config.h
index d4bf11f23..0035a5e28 100644
--- a/keyboards/handwired/hacked_motospeed/config.h
+++ b/keyboards/handwired/hacked_motospeed/config.h
@@ -50,7 +50,7 @@ along with this program. If not, see .
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
-//#define DIODE_DIRECTION COL2ROW
+#define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
@@ -245,4 +245,4 @@ along with this program. If not, see .
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
-// #define BOOTMAGIC_LITE_COLUMN 0
\ No newline at end of file
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/handwired/lovelive9/config.h b/keyboards/handwired/lovelive9/config.h
index c11a25df6..f1f6f69c5 100644
--- a/keyboards/handwired/lovelive9/config.h
+++ b/keyboards/handwired/lovelive9/config.h
@@ -19,6 +19,8 @@
#define MATRIX_ROW_PINS { NO_PIN }
#define MATRIX_COL_PINS { B4, B6, B2, D7, B1, F7, F6, F5, F4 }
+#define DIODE_DIRECTION COL2ROW
+
#define UNUSED_PINS
/* ws2812 RGB LED */
diff --git a/keyboards/handwired/nicekey/config.h b/keyboards/handwired/nicekey/config.h
index 4af56cc52..9c1b18117 100644
--- a/keyboards/handwired/nicekey/config.h
+++ b/keyboards/handwired/nicekey/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { B6 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h
index 64a447481..652a99cab 100644
--- a/keyboards/handwired/onekey/config.h
+++ b/keyboards/handwired/onekey/config.h
@@ -29,6 +29,8 @@ along with this program. If not, see .
#define MATRIX_ROWS 1
#define MATRIX_COLS 1
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/handwired/splittest/config.h b/keyboards/handwired/splittest/config.h
index 56574f752..3ff8547fc 100644
--- a/keyboards/handwired/splittest/config.h
+++ b/keyboards/handwired/splittest/config.h
@@ -33,6 +33,8 @@ along with this program. If not, see .
#define MATRIX_ROWS 2
#define MATRIX_COLS 1
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/handwired/wulkan/config.h b/keyboards/handwired/wulkan/config.h
index 4a9cbada7..628206535 100644
--- a/keyboards/handwired/wulkan/config.h
+++ b/keyboards/handwired/wulkan/config.h
@@ -17,6 +17,8 @@
#define MATRIX_ROW_PINS { B8, A0, A1, A2 }
#define MATRIX_COL_PINS { B13, B14, B15, B9, B7, B6, B5, B4, B3, B2, B1, B0 }
+#define DIODE_DIRECTION COL2ROW
+
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/bfo9000/config.h b/keyboards/keebio/bfo9000/config.h
index b45ec9c2f..0b279bc34 100644
--- a/keyboards/keebio/bfo9000/config.h
+++ b/keyboards/keebio/bfo9000/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D3, D2, D4, C6, D7, E6 }
#define MATRIX_COL_PINS { B5, B6, B2, B3, B1, F7, F6, F5, F4 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/fourier/config.h b/keyboards/keebio/fourier/config.h
index 9ddc53a0c..a0e85a3b1 100644
--- a/keyboards/keebio/fourier/config.h
+++ b/keyboards/keebio/fourier/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { F4, D7, E6, B4 }
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
#define QMK_ESC_OUTPUT F5
#define QMK_ESC_INPUT F4
#define QMK_LED B0
diff --git a/keyboards/keebio/levinson/rev1/config.h b/keyboards/keebio/levinson/rev1/config.h
index a34c8bdcc..5b23f18c1 100644
--- a/keyboards/keebio/levinson/rev1/config.h
+++ b/keyboards/keebio/levinson/rev1/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D7, E6, B4, B5 }
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/levinson/rev2/config.h b/keyboards/keebio/levinson/rev2/config.h
index 9d6947125..e8e7294dd 100644
--- a/keyboards/keebio/levinson/rev2/config.h
+++ b/keyboards/keebio/levinson/rev2/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D4, D7, E6, B4 }
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/levinson/rev3/config.h b/keyboards/keebio/levinson/rev3/config.h
index 3e45b9d42..da5f4e741 100644
--- a/keyboards/keebio/levinson/rev3/config.h
+++ b/keyboards/keebio/levinson/rev3/config.h
@@ -40,6 +40,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS_RIGHT { F4, F7, D3, B5, B4, E6 }
#define SPLIT_HAND_PIN D2
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/quefrency/rev1/config.h b/keyboards/keebio/quefrency/rev1/config.h
index 1d726a0fc..1e3be6347 100644
--- a/keyboards/keebio/quefrency/rev1/config.h
+++ b/keyboards/keebio/quefrency/rev1/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS_RIGHT { F5, F6, F7, B1, B3, B2, B6, C6 }
#define SPLIT_HAND_PIN D2
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/keebio/wavelet/config.h b/keyboards/keebio/wavelet/config.h
index 6f67fdbaf..71366ec24 100644
--- a/keyboards/keebio/wavelet/config.h
+++ b/keyboards/keebio/wavelet/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { F4, F5, F7, B3, D2, D1, D4, D7 }
#define MATRIX_COL_PINS { F6, B1, B2, B6, B4, E6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/lets_split/rev1/config.h b/keyboards/lets_split/rev1/config.h
index c6e7f6479..d75343735 100644
--- a/keyboards/lets_split/rev1/config.h
+++ b/keyboards/lets_split/rev1/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
// #define MATRIX_COL_PINS { B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/lets_split/rev2/config.h b/keyboards/lets_split/rev2/config.h
index 2481ce041..0977d7c67 100644
--- a/keyboards/lets_split/rev2/config.h
+++ b/keyboards/lets_split/rev2/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/lets_split/sockets/config.h b/keyboards/lets_split/sockets/config.h
index eb8092a8f..f6ecb7094 100644
--- a/keyboards/lets_split/sockets/config.h
+++ b/keyboards/lets_split/sockets/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { F4, F7, D7, B3, B2, B6}
// #define MATRIX_COL_PINS { B6, B2, B3, D7, F7, F4} //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/nafuda/config.h b/keyboards/nafuda/config.h
index 3db4401d4..be3348668 100644
--- a/keyboards/nafuda/config.h
+++ b/keyboards/nafuda/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D1, D0, D4 }
#define MATRIX_COL_PINS { F4, F5, F6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/naked48/rev1/config.h b/keyboards/naked48/rev1/config.h
index d770fefb4..21f7aa55e 100644
--- a/keyboards/naked48/rev1/config.h
+++ b/keyboards/naked48/rev1/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS_RIGHT { D4, C6, D7, E6 }
#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, B6, B4, B5, B2, B2 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/naked60/rev1/config.h b/keyboards/naked60/rev1/config.h
index ac0c0ab2f..b082e1227 100644
--- a/keyboards/naked60/rev1/config.h
+++ b/keyboards/naked60/rev1/config.h
@@ -41,6 +41,8 @@ along with this program. If not, see .
//#define MATRIX_ROW_PINS_RIGHT { D1, D0, D4, C6, B6 }
//#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, D7, E6, B4, B5, D3 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/naked64/rev1/config.h b/keyboards/naked64/rev1/config.h
index 2e48edbc0..d9aff6be1 100644
--- a/keyboards/naked64/rev1/config.h
+++ b/keyboards/naked64/rev1/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS_RIGHT { D4, C6, D7, E6, B4, B5, B2, B2 }
#define MATRIX_COL_PINS_RIGHT { F4, F5, F6, F7, B1, B3, B2, B6 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/rgbkb/sol/config.h b/keyboards/rgbkb/sol/config.h
index 9b136db05..f42783f71 100644
--- a/keyboards/rgbkb/sol/config.h
+++ b/keyboards/rgbkb/sol/config.h
@@ -35,6 +35,8 @@ along with this program. If not, see .
#define MATRIX_COLS 7
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/rgbkb/zygomorph/rev1/config.h b/keyboards/rgbkb/zygomorph/rev1/config.h
index 6e55a6a5f..246e391ac 100644
--- a/keyboards/rgbkb/zygomorph/rev1/config.h
+++ b/keyboards/rgbkb/zygomorph/rev1/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see .
#define MATRIX_COLS 6
#define MATRIX_COL_PINS { F4, F6, C7, C6, B6, D4 }
+#define DIODE_DIRECTION COL2ROW
+
#define SOFT_SERIAL_PIN D3
#define ENCODERS_PAD_A { D2 }
diff --git a/keyboards/runner3680/3x6/config.h b/keyboards/runner3680/3x6/config.h
index d3f3605f5..fd462afb2 100644
--- a/keyboards/runner3680/3x6/config.h
+++ b/keyboards/runner3680/3x6/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6} //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/3x7/config.h b/keyboards/runner3680/3x7/config.h
index e0e6ae8e0..e6acb3735 100644
--- a/keyboards/runner3680/3x7/config.h
+++ b/keyboards/runner3680/3x7/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/3x8/config.h b/keyboards/runner3680/3x8/config.h
index 0d4e3296a..257f63a8f 100644
--- a/keyboards/runner3680/3x8/config.h
+++ b/keyboards/runner3680/3x8/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/4x6/config.h b/keyboards/runner3680/4x6/config.h
index 08838d1b6..06b9bc4df 100644
--- a/keyboards/runner3680/4x6/config.h
+++ b/keyboards/runner3680/4x6/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6} //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/4x7/config.h b/keyboards/runner3680/4x7/config.h
index f33f8f9f2..8bc2da4cd 100644
--- a/keyboards/runner3680/4x7/config.h
+++ b/keyboards/runner3680/4x7/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/4x8/config.h b/keyboards/runner3680/4x8/config.h
index d85ebb29c..9f9adfa9d 100644
--- a/keyboards/runner3680/4x8/config.h
+++ b/keyboards/runner3680/4x8/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/5x6/config.h b/keyboards/runner3680/5x6/config.h
index ae3853a8e..3ae72dcfd 100644
--- a/keyboards/runner3680/5x6/config.h
+++ b/keyboards/runner3680/5x6/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6} //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/5x7/config.h b/keyboards/runner3680/5x7/config.h
index 1d56608e6..004f84edd 100644
--- a/keyboards/runner3680/5x7/config.h
+++ b/keyboards/runner3680/5x7/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/runner3680/5x8/config.h b/keyboards/runner3680/5x8/config.h
index 5349fa06a..11b7d647e 100644
--- a/keyboards/runner3680/5x8/config.h
+++ b/keyboards/runner3680/5x8/config.h
@@ -34,6 +34,8 @@
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2 ,B6 }
// #define MATRIX_COL_PINS { B6, B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define tapping term */
#define TAPPING_TERM 120
diff --git a/keyboards/setta21/rev1/config.h b/keyboards/setta21/rev1/config.h
index 57451a7e3..c6c1357d0 100644
--- a/keyboards/setta21/rev1/config.h
+++ b/keyboards/setta21/rev1/config.h
@@ -34,6 +34,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { D4, C6, D7, E6 }
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/signum/3_0/elitec/config.h b/keyboards/signum/3_0/elitec/config.h
index 1e045e2e1..eeafb7236 100644
--- a/keyboards/signum/3_0/elitec/config.h
+++ b/keyboards/signum/3_0/elitec/config.h
@@ -22,6 +22,8 @@
#define MATRIX_COL_PINS { B4, D7, D0, E6, D4, F6, F4, F7, B1, B3, C6, B2 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* Set 0 if debouncing isn't needed */
#define DEBOUNCE 5
diff --git a/keyboards/tanuki/config.h b/keyboards/tanuki/config.h
index 1439ed43e..2dcd7b27d 100644
--- a/keyboards/tanuki/config.h
+++ b/keyboards/tanuki/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { F7 , B1 , D4 , D0 }
#define UNUSED_PINS
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/uzu42/rev1/config.h b/keyboards/uzu42/rev1/config.h
index 8f86d22bf..13b278970 100644
--- a/keyboards/uzu42/rev1/config.h
+++ b/keyboards/uzu42/rev1/config.h
@@ -36,6 +36,8 @@ along with this program. If not, see .
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3 }
// #define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5, F4 } //uncomment this line and comment line above if you need to reverse left-to-right key order
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/vitamins_included/rev1/config.h b/keyboards/vitamins_included/rev1/config.h
index c4881db01..88b43ffc3 100644
--- a/keyboards/vitamins_included/rev1/config.h
+++ b/keyboards/vitamins_included/rev1/config.h
@@ -38,6 +38,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { F5, F6, C7, F7 }
#define MATRIX_COL_PINS { F1, F4, E2, B6, D7, D6}
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/keyboards/vitamins_included/rev2/config.h b/keyboards/vitamins_included/rev2/config.h
index 0aa0e7063..d0f9e6400 100644
--- a/keyboards/vitamins_included/rev2/config.h
+++ b/keyboards/vitamins_included/rev2/config.h
@@ -37,6 +37,8 @@ along with this program. If not, see .
#define MATRIX_ROW_PINS { F5, F6, C7, F7 }
#define MATRIX_COL_PINS { F1, F4, E2, B6, D7, D6}
+#define DIODE_DIRECTION COL2ROW
+
/* define if matrix has ghost */
//#define MATRIX_HAS_GHOST
diff --git a/quantum/matrix.c b/quantum/matrix.c
index 1675f2477..6bd604bb7 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -62,7 +62,8 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
return (last_row_value != current_matrix[current_row]);
}
-#elif (DIODE_DIRECTION == COL2ROW)
+#elif defined(DIODE_DIRECTION)
+# if (DIODE_DIRECTION == COL2ROW)
static void select_row(uint8_t row) {
setPinOutput(row_pins[row]);
@@ -110,7 +111,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
return (last_row_value != current_matrix[current_row]);
}
-#elif (DIODE_DIRECTION == ROW2COL)
+# elif (DIODE_DIRECTION == ROW2COL)
static void select_col(uint8_t col) {
setPinOutput(col_pins[col]);
@@ -165,6 +166,11 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
return matrix_changed;
}
+# else
+# error DIODE_DIRECTION must be one of COL2ROW or ROW2COL!
+# endif
+#else
+# error DIODE_DIRECTION is not defined!
#endif
void matrix_init(void) {
diff --git a/quantum/split_common/matrix.c b/quantum/split_common/matrix.c
index ed1ff5acf..454ea59c3 100644
--- a/quantum/split_common/matrix.c
+++ b/quantum/split_common/matrix.c
@@ -79,7 +79,8 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
return (last_row_value != current_matrix[current_row]);
}
-#elif (DIODE_DIRECTION == COL2ROW)
+#elif defined(DIODE_DIRECTION)
+# if (DIODE_DIRECTION == COL2ROW)
static void select_row(uint8_t row) {
setPinOutput(row_pins[row]);
@@ -124,7 +125,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
return (last_row_value != current_matrix[current_row]);
}
-#elif (DIODE_DIRECTION == ROW2COL)
+# elif (DIODE_DIRECTION == ROW2COL)
static void select_col(uint8_t col) {
setPinOutput(col_pins[col]);
@@ -179,6 +180,11 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col)
return matrix_changed;
}
+# else
+# error DIODE_DIRECTION must be one of COL2ROW or ROW2COL!
+# endif
+#else
+# error DIODE_DIRECTION is not defined!
#endif
void matrix_init(void) {