summaryrefslogtreecommitdiffstats
path: root/keyboards/xiudi
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2022-02-09 19:55:39 +0000
committerGitHub <noreply@github.com>2022-02-09 19:55:39 +0000
commit1f67de2001965a11925b530eedbe60f0191fdced (patch)
tree72f1e728196aca2440fcea0fe7e6de20d0dccded /keyboards/xiudi
parent96afc7a03aa2f9790fb3b14b8b4fccd502818da0 (diff)
Align existing pca9555 driver to better match mcp23018 API (#16277)
Diffstat (limited to 'keyboards/xiudi')
-rw-r--r--keyboards/xiudi/xd84/matrix.c3
-rw-r--r--keyboards/xiudi/xd96/matrix.c11
2 files changed, 9 insertions, 5 deletions
diff --git a/keyboards/xiudi/xd84/matrix.c b/keyboards/xiudi/xd84/matrix.c
index 92b8ff8546..04128561ee 100644
--- a/keyboards/xiudi/xd84/matrix.c
+++ b/keyboards/xiudi/xd84/matrix.c
@@ -53,7 +53,8 @@ static void select_row(uint8_t row) {
static uint16_t read_cols(void) {
// uint16_t state_1 = pca9555_readPins(IC2, PCA9555_PORT0);
// uint16_t state_2 = pca9555_readPins(IC2, PCA9555_PORT1);
- uint16_t state = pca9555_readAllPins(IC2);
+ uint16_t state = 0;
+ pca9555_readPins_all(IC2, &state);
// For the XD84 all cols are on the same IC and mapped sequentially
// while this technically gives 16 column reads,
diff --git a/keyboards/xiudi/xd96/matrix.c b/keyboards/xiudi/xd96/matrix.c
index 8cecc79c26..beef7fae12 100644
--- a/keyboards/xiudi/xd96/matrix.c
+++ b/keyboards/xiudi/xd96/matrix.c
@@ -50,13 +50,16 @@ static void select_row(uint8_t row) {
}
static uint32_t read_cols(void) {
- uint32_t state_1 = pca9555_readPins(IC2, PCA9555_PORT0);
- uint32_t state_2 = pca9555_readPins(IC2, PCA9555_PORT1);
- uint32_t state_3 = pca9555_readPins(IC1, PCA9555_PORT1);
+ 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);
// For the XD96 the pins are mapped to port expanders as follows:
// all 8 pins port 0 IC2, first 6 pins port 1 IC2, first 4 pins port 1 IC1
- uint32_t state = (((state_3 & 0b00001111) << 14) | ((state_2 & 0b00111111) << 8) | state_1);
+ uint32_t state = ((((uint32_t)state_3 & 0b00001111) << 14) | (((uint32_t)state_2 & 0b00111111) << 8) | (uint32_t)state_1);
return (~state) & 0b111111111111111111;
}