]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
adds power_up to quantum's matrix file
authorJack Humbert <jack.humb@gmail.com>
Sat, 18 Jun 2016 02:09:59 +0000 (22:09 -0400)
committerJack Humbert <jack.humb@gmail.com>
Sat, 18 Jun 2016 02:09:59 +0000 (22:09 -0400)
quantum/matrix.c

index 412662a794fc187648f01bdada225e3811e8d693..4f1564ac87255b1895ed23fdc6c22f195d1d6259 100644 (file)
@@ -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__