From 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 Mon Sep 17 00:00:00 2001
From: Jack Humbert <jack.humb@gmail.com>
Date: Fri, 17 Jun 2016 22:09:59 -0400
Subject: [PATCH] adds power_up to quantum's matrix file

---
 quantum/matrix.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/quantum/matrix.c b/quantum/matrix.c
index 412662a79..4f1564ac8 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -66,6 +66,30 @@ uint8_t matrix_cols(void) {
     return MATRIX_COLS;
 }
 
+void matrix_power_up(void) {
+#if DIODE_DIRECTION == COL2ROW
+    for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {
+        /* DDRxn */
+        _SFR_IO8(row_pins[r].input_addr + 1) |= _BV(row_pins[r].bit);
+        toggle_row(r);
+    }
+    for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) {
+        /* PORTxn */
+        _SFR_IO8(col_pins[c].input_addr + 2) |= _BV(col_pins[c].bit);
+    }
+#else
+    for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) {
+        /* DDRxn */
+        _SFR_IO8(col_pins[c].input_addr + 1) |= _BV(col_pins[c].bit);
+        toggle_col(c);
+    }
+    for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) {
+        /* PORTxn */
+        _SFR_IO8(row_pins[r].input_addr + 2) |= _BV(row_pins[r].bit);
+    }
+#endif
+}
+
 void matrix_init(void) {
     /* frees PORTF by setting the JTD bit twice within four cycles */
     #ifdef __AVR_ATmega32U4__