// Copyright 2022 QMK // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include "gpio.h" #include "wait.h" // All this for ergodox led compatibility... #ifdef CONVERT_TO_PROTON_C # define ERGODOX_BOARD_LED_ON_STATE 1 #else # define ERGODOX_BOARD_LED_ON_STATE 0 #endif #define LED_BRIGHTNESS_LO 15 #define LED_BRIGHTNESS_HI 255 static inline void ergodox_right_led_1_off(void) { gpio_set_pin_output(LED_NUM_LOCK_PIN); gpio_write_pin(LED_NUM_LOCK_PIN, 0); } static inline void ergodox_right_led_1_on(void) { gpio_set_pin_output(LED_NUM_LOCK_PIN); gpio_write_pin(LED_NUM_LOCK_PIN, 1); } static inline void ergodox_right_led_2_off(void) { gpio_set_pin_output(LED_CAPS_LOCK_PIN); gpio_write_pin(LED_CAPS_LOCK_PIN, 0); } static inline void ergodox_right_led_2_on(void) { gpio_set_pin_output(LED_CAPS_LOCK_PIN); gpio_write_pin(LED_CAPS_LOCK_PIN, 1); } static inline void ergodox_right_led_3_off(void) { gpio_set_pin_output(LED_SCROLL_LOCK_PIN); gpio_write_pin(LED_SCROLL_LOCK_PIN, 0); } static inline void ergodox_right_led_3_on(void) { gpio_set_pin_output(LED_SCROLL_LOCK_PIN); gpio_write_pin(LED_SCROLL_LOCK_PIN, 1); } static inline void ergodox_right_led_on(uint8_t l) { switch (l) { case 1: ergodox_right_led_1_on(); break; case 2: ergodox_right_led_2_on(); break; case 3: ergodox_right_led_3_on(); break; default: break; } } static inline void ergodox_right_led_off(uint8_t l) { switch (l) { case 1: ergodox_right_led_1_off(); break; case 2: ergodox_right_led_2_off(); break; case 3: ergodox_right_led_3_off(); break; default: break; } } static inline void ergodox_board_led_off(void) { gpio_set_pin_output(D5); gpio_write_pin(D5, !ERGODOX_BOARD_LED_ON_STATE); } static inline void ergodox_board_led_on(void) { gpio_set_pin_output(D5); gpio_write_pin(D5, ERGODOX_BOARD_LED_ON_STATE); } static inline void ergodox_led_all_on(void) { ergodox_right_led_1_on(); ergodox_right_led_2_on(); ergodox_right_led_3_on(); ergodox_board_led_on(); } static inline void ergodox_led_all_off(void) { ergodox_right_led_1_off(); ergodox_right_led_2_off(); ergodox_right_led_3_off(); ergodox_board_led_off(); } static inline void ergodox_right_led_1_set(uint8_t n) {} static inline void ergodox_right_led_2_set(uint8_t n) {} static inline void ergodox_right_led_3_set(uint8_t n) {} static inline void ergodox_right_led_set(uint8_t l, uint8_t n) {} static inline void ergodox_led_all_set(uint8_t n) {} static inline void ergodox_led_init(void) {} static inline void ergodox_blink_all_leds(void) { ergodox_led_all_off(); ergodox_board_led_on(); wait_ms(50); ergodox_right_led_1_on(); wait_ms(50); ergodox_right_led_2_on(); wait_ms(50); ergodox_right_led_3_on(); wait_ms(50); ergodox_right_led_1_off(); wait_ms(50); ergodox_right_led_2_off(); wait_ms(50); ergodox_right_led_3_off(); wait_ms(50); ergodox_board_led_off(); //ergodox_led_all_on(); //wait_ms(333); ergodox_led_all_off(); }