summaryrefslogtreecommitdiff
path: root/keyboards/switchplate/southpaw_65/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/switchplate/southpaw_65/matrix.c')
-rw-r--r--keyboards/switchplate/southpaw_65/matrix.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/keyboards/switchplate/southpaw_65/matrix.c b/keyboards/switchplate/southpaw_65/matrix.c
index e701d274f0..5895750f89 100644
--- a/keyboards/switchplate/southpaw_65/matrix.c
+++ b/keyboards/switchplate/southpaw_65/matrix.c
@@ -51,11 +51,14 @@ static void select_row(uint8_t row) {
static uint32_t read_cols(void) {
//Read column inputs. Pins 13-31 are used. Split across both ICs but they are sequential
- uint32_t state_1 = pca9555_readPins(IC1, PCA9555_PORT1);
- uint32_t state_2 = pca9555_readPins(IC2, PCA9555_PORT0);
- uint32_t state_3 = pca9555_readPins(IC2, PCA9555_PORT1);
-
- uint32_t state = (((state_3 & 0b01111111) << 12) | (state_2 << 4) | ((state_1 & 0b11110000) >> 4));
+ uint8_t state_1 = 0;
+ uint8_t state_2 = 0;
+ uint8_t state_3 = 0;
+ pca9555_readPins(IC2, PCA9555_PORT0, &state_1);
+ pca9555_readPins(IC2, PCA9555_PORT1, &state_2);
+ pca9555_readPins(IC1, PCA9555_PORT1, &state_3);
+
+ uint32_t state = ((((uint32_t)state_3 & 0b01111111) << 12) | ((uint32_t)state_2 << 4) | (((uint32_t)state_1 & 0b11110000) >> 4));
return ~state;
}