From 16a15c1cfcbfd0feb2c2cf1383676747e2f97d73 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 30 Apr 2020 16:24:47 +1000 Subject: [PATCH] QMK-ify some GPIO macros (#8315) --- drivers/avr/apa102.c | 8 +-- drivers/avr/ssd1306.h | 1 - .../nano/keymaps/drashna/keymap.c | 1 - keyboards/claw44/ssd1306.h | 3 +- keyboards/comet46/ssd1306.h | 3 +- keyboards/converter/palm_usb/matrix.c | 41 ++++++++------- keyboards/crkbd/ssd1306.h | 3 +- keyboards/helix/local_drivers/ssd1306.h | 1 - keyboards/lily58/ssd1306.h | 3 +- keyboards/yosino58/ssd1306.h | 3 +- quantum/pincontrol.h | 50 ------------------- users/mtdjr/solenoid.h | 11 ++-- 12 files changed, 34 insertions(+), 94 deletions(-) delete mode 100644 quantum/pincontrol.h diff --git a/drivers/avr/apa102.c b/drivers/avr/apa102.c index f4d97a158..b174b39b8 100644 --- a/drivers/avr/apa102.c +++ b/drivers/avr/apa102.c @@ -30,8 +30,8 @@ void inline apa102_setleds(LED_TYPE *ledarray, uint16_t leds) { apa102_setleds_pin(ledarray, leds, _BV(RGB_DI_PIN & 0xF), _BV(RGB_CLK_PIN & 0xF)); } void static inline apa102_setleds_pin(LED_TYPE *ledarray, uint16_t leds, uint8_t pinmask_DI, uint8_t pinmask_CLK) { - pinMode(RGB_DI_PIN, PinDirectionOutput); - pinMode(RGB_CLK_PIN, PinDirectionOutput); + setPinOutput(RGB_DI_PIN); + setPinOutput(RGB_CLK_PIN); apa102_send_array((uint8_t *)ledarray, leds) } @@ -90,7 +90,7 @@ void apa102_end_frame(uint16_t leds) { void apa102_send_byte(uint8_t byte) { uint8_t i; for (i = 0; i < 8; i++) { - digitalWrite(RGB_DI_PIN, !!(byte & (1 << (7-i))); - digitalWrite(RGB_CLK_PIN, PinLevelHigh); + writePin(RGB_DI_PIN, !!(byte & (1 << (7 - i)))); + writePinHigh(RGB_CLK_PIN); } } diff --git a/drivers/avr/ssd1306.h b/drivers/avr/ssd1306.h index 825b0d7d5..9669d1b7e 100644 --- a/drivers/avr/ssd1306.h +++ b/drivers/avr/ssd1306.h @@ -3,7 +3,6 @@ #include #include -#include "pincontrol.h" #include "config.h" enum ssd1306_cmds { diff --git a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c index 998e55d5b..f5d0787ee 100644 --- a/keyboards/40percentclub/nano/keymaps/drashna/keymap.c +++ b/keyboards/40percentclub/nano/keymaps/drashna/keymap.c @@ -1,7 +1,6 @@ #include "drashna.h" #include "analog.h" #include "pointing_device.h" -#include "pincontrol.h" #define KC_X0 LT(_FN, KC_ESC) diff --git a/keyboards/claw44/ssd1306.h b/keyboards/claw44/ssd1306.h index ea8c92328..0ca093093 100644 --- a/keyboards/claw44/ssd1306.h +++ b/keyboards/claw44/ssd1306.h @@ -2,7 +2,6 @@ #include #include -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/comet46/ssd1306.h b/keyboards/comet46/ssd1306.h index ea8c92328..0ca093093 100644 --- a/keyboards/comet46/ssd1306.h +++ b/keyboards/comet46/ssd1306.h @@ -2,7 +2,6 @@ #include #include -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/converter/palm_usb/matrix.c b/keyboards/converter/palm_usb/matrix.c index 49212f2ef..590b5eea3 100644 --- a/keyboards/converter/palm_usb/matrix.c +++ b/keyboards/converter/palm_usb/matrix.c @@ -20,7 +20,6 @@ along with this program. If not, see . #include QMK_KEYBOARD_H #include "protocol/serial.h" #include "timer.h" -#include "pincontrol.h" /* @@ -96,27 +95,27 @@ void pins_init(void) { // set pins for pullups, Rts , power &etc. //print ("pins setup\n"); - pinMode(VCC_PIN, PinDirectionOutput); - digitalWrite(VCC_PIN, PinLevelLow); + setPinOutput(VCC_PIN); + writePinLow(VCC_PIN); #if ( HANDSPRING == 0) #ifdef CY835 - pinMode(GND_PIN, PinDirectionOutput); - digitalWrite(GND_PIN, PinLevelLow); + setPinOutput(GND_PIN); + writePinLow(GND_PIN); - pinMode(PULLDOWN_PIN, PinDirectionOutput); - digitalWrite(PULLDOWN_PIN, PinLevelLow); + setPinOutput(PULLDOWN_PIN); + writePinLow(PULLDOWN_PIN); #endif - pinMode(DCD_PIN, PinDirectionInput); - pinMode(RTS_PIN, PinDirectionInput); + setPinInput(DCD_PIN); + setPinInput(RTS_PIN); #endif /* check that the other side isn't powered up. - test=digitalRead(DCD_PIN); + test=readPin(DCD_PIN); xprintf("b%02X:", test); - test=digitalRead(RTS_PIN); + test=readPin(RTS_PIN); xprintf("%02X\n", test); */ @@ -129,20 +128,20 @@ uint8_t rts_reset(void) { // On boot, we keep rts as input, then switch roles here // on leaving sleep, we toggle the same way - firstread=digitalRead(RTS_PIN); + firstread=readPin(RTS_PIN); // printf("r%02X:", firstread); - pinMode(RTS_PIN, PinDirectionOutput); + setPinOutput(RTS_PIN); - if (firstread == PinLevelHigh) { - digitalWrite(RTS_PIN, PinLevelLow); + if (firstread) { + writePinLow(RTS_PIN); } _delay_ms(10); - digitalWrite(RTS_PIN, PinLevelHigh); + writePinHigh(RTS_PIN); /* the future is Arm - if (palReadPad(RTS_PIN_IOPRT) == PinLevelLow) + if (!palReadPad(RTS_PIN_IOPRT)) { _delay_ms(10); palSetPadMode(RTS_PINn_IOPORT, PinDirectionOutput_PUSHPULL); @@ -224,9 +223,9 @@ uint8_t handspring_handshake(void) { } uint8_t handspring_reset(void) { - digitalWrite(VCC_PIN, PinLevelLow); + writePinLow(VCC_PIN); _delay_ms(5); - digitalWrite(VCC_PIN, PinLevelHigh); + writePinHigh(VCC_PIN); if ( handspring_handshake() ) { last_activity = timer_read(); @@ -250,7 +249,7 @@ void matrix_init(void) #endif print("power up\n"); - digitalWrite(VCC_PIN, PinLevelHigh); + writePinHigh(VCC_PIN); // wait for DCD strobe from keyboard - it will do this // up to 3 times, then the board needs the RTS toggled to try again @@ -265,7 +264,7 @@ void matrix_init(void) } #else /// Palm / HP device with DCD - while( digitalRead(DCD_PIN) != PinLevelHigh ) {;} + while( !readPin(DCD_PIN) ) {;} print("dcd\n"); rts_reset(); // at this point the keyboard should think all is well. diff --git a/keyboards/crkbd/ssd1306.h b/keyboards/crkbd/ssd1306.h index ea8c92328..0ca093093 100644 --- a/keyboards/crkbd/ssd1306.h +++ b/keyboards/crkbd/ssd1306.h @@ -2,7 +2,6 @@ #include #include -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/helix/local_drivers/ssd1306.h b/keyboards/helix/local_drivers/ssd1306.h index 9cf6983b7..f9f91c6fe 100644 --- a/keyboards/helix/local_drivers/ssd1306.h +++ b/keyboards/helix/local_drivers/ssd1306.h @@ -3,7 +3,6 @@ #include #include -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { diff --git a/keyboards/lily58/ssd1306.h b/keyboards/lily58/ssd1306.h index ea8c92328..0ca093093 100755 --- a/keyboards/lily58/ssd1306.h +++ b/keyboards/lily58/ssd1306.h @@ -2,7 +2,6 @@ #include #include -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -88,4 +87,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/keyboards/yosino58/ssd1306.h b/keyboards/yosino58/ssd1306.h index de0a9a02a..acaf6217e 100644 --- a/keyboards/yosino58/ssd1306.h +++ b/keyboards/yosino58/ssd1306.h @@ -2,7 +2,6 @@ #include #include -#include "pincontrol.h" #include "action.h" enum ssd1306_cmds { @@ -93,4 +92,4 @@ void matrix_write_ln(struct CharacterMatrix *matrix, const char *data); void matrix_write_P(struct CharacterMatrix *matrix, const char *data); void matrix_render(struct CharacterMatrix *matrix); -bool process_record_gfx(uint16_t keycode, keyrecord_t *record); \ No newline at end of file +bool process_record_gfx(uint16_t keycode, keyrecord_t *record); diff --git a/quantum/pincontrol.h b/quantum/pincontrol.h deleted file mode 100644 index 204fddf30..000000000 --- a/quantum/pincontrol.h +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2016 Wez Furlong - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#pragma once -// Some helpers for controlling gpio pins -#include - -enum { - PinDirectionInput = 0, - PinDirectionOutput = 1, - PinLevelHigh = 1, - PinLevelLow = 0, -}; - -// ex: pinMode(B0, PinDirectionOutput); -static inline void pinMode(uint8_t pin, int mode) { - uint8_t bv = _BV(pin & 0xf); - if (mode == PinDirectionOutput) { - _SFR_IO8((pin >> 4) + 1) |= bv; - } else { - _SFR_IO8((pin >> 4) + 1) &= ~bv; - _SFR_IO8((pin >> 4) + 2) &= ~bv; - } -} - -// ex: digitalWrite(B0, PinLevelHigh); -static inline void digitalWrite(uint8_t pin, int mode) { - uint8_t bv = _BV(pin & 0xf); - if (mode == PinLevelHigh) { - _SFR_IO8((pin >> 4) + 2) |= bv; - } else { - _SFR_IO8((pin >> 4) + 2) &= ~bv; - } -} - -// Return true if the pin is HIGH -// digitalRead(B0) -static inline bool digitalRead(uint8_t pin) { return _SFR_IO8(pin >> 4) & _BV(pin & 0xf); } diff --git a/users/mtdjr/solenoid.h b/users/mtdjr/solenoid.h index a911bf794..4ef329b4a 100644 --- a/users/mtdjr/solenoid.h +++ b/users/mtdjr/solenoid.h @@ -2,7 +2,6 @@ #define SOLENOID_H #include -#include "pincontrol.h" #define SOLENOID_DEFAULT_DWELL 12 @@ -45,7 +44,7 @@ void solenoid_toggle(void) { } void solenoid_stop(void) { - digitalWrite(SOLENOID_PIN, PinLevelLow); + writePinLow(SOLENOID_PIN); solenoid_on = false; solenoid_buzzing = false; } @@ -59,7 +58,7 @@ void solenoid_fire(void) { solenoid_on = true; solenoid_buzzing = true; solenoid_start = timer_read(); - digitalWrite(SOLENOID_PIN, PinLevelHigh); + writePinHigh(SOLENOID_PIN); } void solenoid_check(void) { @@ -80,20 +79,20 @@ void solenoid_check(void) { if (elapsed / SOLENOID_MIN_DWELL % 2 == 0){ if (!solenoid_buzzing) { solenoid_buzzing = true; - digitalWrite(SOLENOID_PIN, PinLevelHigh); + writePinHigh(SOLENOID_PIN); } } else { if (solenoid_buzzing) { solenoid_buzzing = false; - digitalWrite(SOLENOID_PIN, PinLevelLow); + writePinLow(SOLENOID_PIN); } } } } void solenoid_setup(void) { - pinMode(SOLENOID_PIN, PinDirectionOutput); + setPinOutput(SOLENOID_PIN); } #endif