summaryrefslogtreecommitdiff
path: root/keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h
diff options
context:
space:
mode:
authorZach White <skullydazed@gmail.com>2021-07-14 10:30:28 -0700
committerZach White <skullydazed@gmail.com>2021-07-14 10:30:28 -0700
commit44d322623eb875f6eb2e0a317c76af2d47f7a9dc (patch)
treeab722bcc4cea4e4ed16f0a5dce0602fe1f2c63e5 /keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h
parent52cfc9259b58a3a11a244fbe35c49c7dd1a9cae0 (diff)
parentffdfe3798bc7bd374991abe8f10494f2e73aedd5 (diff)
Merge remote-tracking branch 'origin/master' into develop
Resolved Conflicts: keyboards/checkerboards/nop60/info.json
Diffstat (limited to 'keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h')
-rw-r--r--keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h b/keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h
new file mode 100644
index 0000000000..e31cb5f3a5
--- /dev/null
+++ b/keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h
@@ -0,0 +1,28 @@
+#pragma once
+// clang-format off
+
+#if defined(__AVR__)
+typedef uint8_t port_data_t;
+
+#define readPort(port) PINx_ADDRESS(port)
+
+#define setPortBitInput(port, bit) (DDRx_ADDRESS(port) &= ~_BV((bit)&0xF), PORTx_ADDRESS(port) &= ~_BV((bit)&0xF))
+#define setPortBitInputHigh(port, bit) (DDRx_ADDRESS(port) &= ~_BV((bit)&0xF), PORTx_ADDRESS(port) |= _BV((bit)&0xF))
+#define setPortBitOutput(port, bit) (DDRx_ADDRESS(port) |= _BV((bit)&0xF))
+
+#define writePortBitLow(port, bit) (PORTx_ADDRESS(port) &= ~_BV((bit)&0xF))
+#define writePortBitHigh(port, bit) (PORTx_ADDRESS(port) |= _BV((bit)&0xF))
+
+#else
+typedef uint16_t port_data_t;
+
+#define readPort(qmk_pin) palReadPort(PAL_PORT(qmk_pin))
+
+#define setPortBitInput(qmk_pin, bit) palSetPadMode(PAL_PORT(qmk_pin), bit, PAL_MODE_INPUT)
+#define setPortBitInputHigh(qmk_pin, bit) palSetPadMode(PAL_PORT(qmk_pin), bit, PAL_MODE_INPUT_PULLUP)
+#define setPortBitInputLow(qmk_pin, bit) palSetPadMode(PAL_PORT(qmk_pin), bit, PAL_MODE_INPUT_PULLDOWN)
+#define setPortBitOutput(qmk_pin, bit) palSetPadMode(PAL_PORT(qmk_pin), bit, PAL_MODE_OUTPUT_PUSHPULL)
+
+#define writePortBitLow(qmk_pin, bit) palClearLine(PAL_LINE(PAL_PORT(qmk_pin), bit))
+#define writePortBitHigh(qmk_pin, bit) palSetLine(PAL_LINE(PAL_PORT(qmk_pin), bit))
+#endif