diff options
author | Joel Challis <git@zvecr.com> | 2022-02-09 19:55:39 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-09 19:55:39 +0000 |
commit | 1f67de2001965a11925b530eedbe60f0191fdced (patch) | |
tree | 72f1e728196aca2440fcea0fe7e6de20d0dccded /keyboards/switchplate | |
parent | 96afc7a03aa2f9790fb3b14b8b4fccd502818da0 (diff) |
Align existing pca9555 driver to better match mcp23018 API (#16277)
Diffstat (limited to 'keyboards/switchplate')
-rw-r--r-- | keyboards/switchplate/southpaw_65/matrix.c | 13 |
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; } |