aboutsummaryrefslogtreecommitdiff
path: root/keyboards/keychron/v3/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/keychron/v3/matrix.c')
-rw-r--r--keyboards/keychron/v3/matrix.c47
1 files changed, 24 insertions, 23 deletions
diff --git a/keyboards/keychron/v3/matrix.c b/keyboards/keychron/v3/matrix.c
index 44a1676afa..5ee860afd2 100644
--- a/keyboards/keychron/v3/matrix.c
+++ b/keyboards/keychron/v3/matrix.c
@@ -15,7 +15,8 @@
*/
#include "matrix.h"
-#include "quantum.h"
+#include "atomic_util.h"
+#include <string.h>
// Pin connected to DS of 74HC595
#define DATA_PIN A7
@@ -35,27 +36,27 @@ static pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static inline void setPinOutput_writeLow(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
- setPinOutput(pin);
- writePinLow(pin);
+ gpio_set_pin_output(pin);
+ gpio_write_pin_low(pin);
}
}
static inline void setPinOutput_writeHigh(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
- setPinOutput(pin);
- writePinHigh(pin);
+ gpio_set_pin_output(pin);
+ gpio_write_pin_high(pin);
}
}
static inline void setPinInputHigh_atomic(pin_t pin) {
ATOMIC_BLOCK_FORCEON {
- setPinInputHigh(pin);
+ gpio_set_pin_input_high(pin);
}
}
static inline uint8_t readMatrixPin(pin_t pin) {
if (pin != NO_PIN) {
- return readPin(pin);
+ return gpio_read_pin(pin);
} else {
return 1;
}
@@ -70,20 +71,20 @@ static void shiftOut(uint8_t dataOut) {
for (uint8_t i = 0; i < 8; i++) {
compiler_barrier();
if (dataOut & 0x1) {
- writePinHigh(DATA_PIN);
+ gpio_write_pin_high(DATA_PIN);
} else {
- writePinLow(DATA_PIN);
+ gpio_write_pin_low(DATA_PIN);
}
dataOut = dataOut >> 1;
compiler_barrier();
- writePinHigh(CLOCK_PIN);
+ gpio_write_pin_high(CLOCK_PIN);
small_delay();
- writePinLow(CLOCK_PIN);
+ gpio_write_pin_low(CLOCK_PIN);
}
compiler_barrier();
- writePinHigh(LATCH_PIN);
+ gpio_write_pin_high(LATCH_PIN);
small_delay();
- writePinLow(LATCH_PIN);
+ gpio_write_pin_low(LATCH_PIN);
compiler_barrier();
}
}
@@ -92,18 +93,18 @@ static void shiftOut_single(uint8_t data) {
ATOMIC_BLOCK_FORCEON {
compiler_barrier();
if (data & 0x1) {
- writePinHigh(DATA_PIN);
+ gpio_write_pin_high(DATA_PIN);
} else {
- writePinLow(DATA_PIN);
+ gpio_write_pin_low(DATA_PIN);
}
compiler_barrier();
- writePinHigh(CLOCK_PIN);
+ gpio_write_pin_high(CLOCK_PIN);
small_delay();
- writePinLow(CLOCK_PIN);
+ gpio_write_pin_low(CLOCK_PIN);
compiler_barrier();
- writePinHigh(LATCH_PIN);
+ gpio_write_pin_high(LATCH_PIN);
small_delay();
- writePinLow(LATCH_PIN);
+ gpio_write_pin_low(LATCH_PIN);
compiler_barrier();
}
}
@@ -155,13 +156,13 @@ static void unselect_cols(void) {
}
static void matrix_init_pins(void) {
- setPinOutput(DATA_PIN);
- setPinOutput(CLOCK_PIN);
- setPinOutput(LATCH_PIN);
+ gpio_set_pin_output(DATA_PIN);
+ gpio_set_pin_output(CLOCK_PIN);
+ gpio_set_pin_output(LATCH_PIN);
#ifdef MATRIX_UNSELECT_DRIVE_HIGH
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
if (col_pins[x] != NO_PIN) {
- setPinOutput(col_pins[x]);
+ gpio_set_pin_output(col_pins[x]);
}
}
#endif