diff options
author | Álvaro A. Volpato <alvaro.volpato@usp.br> | 2021-09-13 18:01:23 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-14 07:01:23 +1000 |
commit | eee553337a02d64bb5acdeb0a2b13461637409df (patch) | |
tree | 04c8a7fc3fea16572f5cf273e4db94b59ccbaa78 /keyboards/mode/m65s/m65s.c | |
parent | ca626f59a7fda63b65bf2a8d907af754a9707767 (diff) |
Add initial support for M65S (#14027)
* Add initial support for M65S
* Remove LTO_ENABLE from rules.mk
Co-authored-by: Drashna Jaelre <drashna@live.com>
* Removed defs in rules.mk, remove EEPROM debug code in m65s.c
Co-authored-by: Drashna Jaelre <drashna@live.com>
Diffstat (limited to 'keyboards/mode/m65s/m65s.c')
-rw-r--r-- | keyboards/mode/m65s/m65s.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/keyboards/mode/m65s/m65s.c b/keyboards/mode/m65s/m65s.c new file mode 100644 index 0000000000..298fc94140 --- /dev/null +++ b/keyboards/mode/m65s/m65s.c @@ -0,0 +1,68 @@ +/* + Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br> + +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/>. +*/ + +#include "m65s.h" + +void board_init(void) { + setPinInput(B9); + setPinInput(B10); +} + +#define LED_PIN_ON_STATE 1 +void led_init_ports(void) { + +/** If the OPENDRAIN_INDICATORS option is not defined in config.h, the indicator + pins default to push-pull output. Else, they are defined as open-drain. The + pin mode configuration is done through the INDICATOR_PIN_MODE which is + attributed right at the beggining. **/ + +#ifndef OPENDRAIN_INDICATORS +# define INDICATOR_PIN_MODE PAL_MODE_OUTPUT_PUSHPULL +#else +# define INDICATOR_PIN_MODE PAL_MODE_OUTPUT_OPENDRAIN + +#endif + +#ifdef LED_NUM_LOCK_PIN + palSetLineMode(LED_NUM_LOCK_PIN, INDICATOR_PIN_MODE); +#endif +#ifdef LED_CAPS_LOCK_PIN + palSetLineMode(LED_CAPS_LOCK_PIN, INDICATOR_PIN_MODE); +#endif +#ifdef LED_SCROLL_LOCK_PIN + palSetLineMode(LED_SCROLL_LOCK_PIN, INDICATOR_PIN_MODE); +#endif +#ifdef LED_COMPOSE_PIN + palSetLineMode(LED_COMPOSE_PIN, INDICATOR_PIN_MODE); +#endif +#ifdef LED_KANA_PIN + palSetLineMode(LED_KANA_PIN, INDICATOR_PIN_MODE); +#endif +} + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if(res) { + // writePin sets the pin high for 1 and low for 0. + // In this example the pins are inverted, setting + // it low/0 turns it on, and high/1 turns the LED off. + // This behavior depends on whether the LED is between the pin + // and VCC or the pin and GND. + writePin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); + } + return res; +} |