diff options
author | Ryan <fauxpark@gmail.com> | 2020-04-30 16:24:47 +1000 |
---|---|---|
committer | Florian Didron <fdidron@users.noreply.github.com> | 2020-06-12 17:00:27 +0900 |
commit | 1aa5d2d6d090516d3653e0c875a8aace6461e0b4 (patch) | |
tree | 8f72131a2cd5a8d2068df604579aa966eaa810f6 | |
parent | f0e97ba47247b84ddd7d6d0698ab801d77b2afba (diff) |
QMK-ify some GPIO macros (#8315)
-rw-r--r-- | drivers/avr/apa102.c | 8 | ||||
-rw-r--r-- | drivers/avr/ssd1306.h | 1 | ||||
-rw-r--r-- | quantum/pincontrol.h | 50 |
3 files changed, 4 insertions, 55 deletions
diff --git a/drivers/avr/apa102.c b/drivers/avr/apa102.c index f4d97a1589..b174b39b8f 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 825b0d7d5b..9669d1b7e7 100644 --- a/drivers/avr/ssd1306.h +++ b/drivers/avr/ssd1306.h @@ -3,7 +3,6 @@ #include <stdbool.h> #include <stdio.h> -#include "pincontrol.h" #include "config.h" enum ssd1306_cmds { diff --git a/quantum/pincontrol.h b/quantum/pincontrol.h deleted file mode 100644 index 204fddf30c..0000000000 --- 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 <http://www.gnu.org/licenses/>. - */ -#pragma once -// Some helpers for controlling gpio pins -#include <avr/io.h> - -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); } |