diff options
author | Jack Humbert <jack.humb@gmail.com> | 2016-06-17 22:09:59 -0400 |
---|---|---|
committer | Jack Humbert <jack.humb@gmail.com> | 2016-06-17 22:09:59 -0400 |
commit | 008c8d54a0a1a1e908d372d0fe9edb45a2d491e5 (patch) | |
tree | 7b98493f07430d860c26c2ad4918727e6816be7e /quantum | |
parent | de326d078d9de21acccfa96525597308a7ec036d (diff) | |
download | qmk_firmware-008c8d54a0a1a1e908d372d0fe9edb45a2d491e5.tar.gz qmk_firmware-008c8d54a0a1a1e908d372d0fe9edb45a2d491e5.zip |
adds power_up to quantum's matrix file
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/matrix.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/quantum/matrix.c b/quantum/matrix.c index 412662a794..4f1564ac87 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__ |