diff options
author | Zach White <skullydazed@gmail.com> | 2021-07-14 10:30:28 -0700 |
---|---|---|
committer | Zach White <skullydazed@gmail.com> | 2021-07-14 10:30:28 -0700 |
commit | 44d322623eb875f6eb2e0a317c76af2d47f7a9dc (patch) | |
tree | ab722bcc4cea4e4ed16f0a5dce0602fe1f2c63e5 /keyboards/handwired/symmetric70_proto/matrix_fast/gpio_extr.h | |
parent | 52cfc9259b58a3a11a244fbe35c49c7dd1a9cae0 (diff) | |
parent | ffdfe3798bc7bd374991abe8f10494f2e73aedd5 (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.h | 28 |
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 |