X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=quantum%2Fmatrix.c;h=e222a30976e513e1b1d71d56b53301797e77fed6;hb=c1c0cf73ce0ed4301d7f3d7af0b352d9385da896;hp=5b7a0e03b11ad042aa89390271f98bdf9b70f33d;hpb=123608fb318a42500d64d29aa46c7d08140033fd;p=qmk_firmware.git
diff --git a/quantum/matrix.c b/quantum/matrix.c
index 5b7a0e03b..e222a3097 100644
--- a/quantum/matrix.c
+++ b/quantum/matrix.c
@@ -45,7 +45,9 @@ along with this program. If not, see .
extern const matrix_row_t matrix_mask[];
#endif
-#if (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW)
+#ifdef DIRECT_PINS
+static pin_t direct_pins[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS;
+#elif (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW)
static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
#endif
@@ -54,20 +56,6 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values
-#if (DIODE_DIRECTION == COL2ROW)
- static void init_cols(void);
- static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row);
- static void unselect_rows(void);
- static void select_row(uint8_t row);
- static void unselect_row(uint8_t row);
-#elif (DIODE_DIRECTION == ROW2COL)
- static void init_rows(void);
- static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col);
- static void unselect_cols(void);
- static void unselect_col(uint8_t col);
- static void select_col(uint8_t col);
-#endif
-
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
@@ -106,49 +94,6 @@ uint8_t matrix_cols(void) {
return MATRIX_COLS;
}
-void matrix_init(void) {
-
- // initialize row and col
-#if (DIODE_DIRECTION == COL2ROW)
- unselect_rows();
- init_cols();
-#elif (DIODE_DIRECTION == ROW2COL)
- unselect_cols();
- init_rows();
-#endif
-
- // initialize matrix state: all keys off
- for (uint8_t i=0; i < MATRIX_ROWS; i++) {
- raw_matrix[i] = 0;
- matrix[i] = 0;
- }
- debounce_init(MATRIX_ROWS);
-
- matrix_init_quantum();
-}
-
-uint8_t matrix_scan(void)
-{
- bool changed = false;
-
-#if (DIODE_DIRECTION == COL2ROW)
- // Set row, read cols
- for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
- changed |= read_cols_on_row(raw_matrix, current_row);
- }
-#elif (DIODE_DIRECTION == ROW2COL)
- // Set col, read rows
- for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) {
- changed |= read_rows_on_col(raw_matrix, current_col);
- }
-#endif
-
- debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
-
- matrix_scan_quantum();
- return 1;
-}
-
//Deprecated.
bool matrix_is_modified(void)
{
@@ -159,7 +104,7 @@ bool matrix_is_modified(void)
inline
bool matrix_is_on(uint8_t row, uint8_t col)
{
- return (matrix[row] & ((matrix_row_t)1