ergodox_compat.h (3324B)
1 // Copyright 2022 QMK 2 // SPDX-License-Identifier: GPL-2.0-or-later 3 4 #pragma once 5 6 #include <stdint.h> 7 #include "gpio.h" 8 #include "wait.h" 9 10 // All this for ergodox led compatibility... 11 #ifdef CONVERT_TO_PROTON_C 12 # define ERGODOX_BOARD_LED_ON_STATE 1 13 #else 14 # define ERGODOX_BOARD_LED_ON_STATE 0 15 #endif 16 #define LED_BRIGHTNESS_LO 15 17 #define LED_BRIGHTNESS_HI 255 18 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); } 19 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); } 20 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); } 21 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); } 22 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); } 23 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); } 24 static inline void ergodox_right_led_on(uint8_t l) { 25 switch (l) { 26 case 1: 27 ergodox_right_led_1_on(); 28 break; 29 case 2: 30 ergodox_right_led_2_on(); 31 break; 32 case 3: 33 ergodox_right_led_3_on(); 34 break; 35 default: 36 break; 37 } 38 } 39 static inline void ergodox_right_led_off(uint8_t l) { 40 switch (l) { 41 case 1: 42 ergodox_right_led_1_off(); 43 break; 44 case 2: 45 ergodox_right_led_2_off(); 46 break; 47 case 3: 48 ergodox_right_led_3_off(); 49 break; 50 default: 51 break; 52 } 53 } 54 static inline void ergodox_board_led_off(void) { gpio_set_pin_output(D5); gpio_write_pin(D5, !ERGODOX_BOARD_LED_ON_STATE); } 55 static inline void ergodox_board_led_on(void) { gpio_set_pin_output(D5); gpio_write_pin(D5, ERGODOX_BOARD_LED_ON_STATE); } 56 static inline void ergodox_led_all_on(void) { 57 ergodox_right_led_1_on(); 58 ergodox_right_led_2_on(); 59 ergodox_right_led_3_on(); 60 ergodox_board_led_on(); 61 } 62 static inline void ergodox_led_all_off(void) { 63 ergodox_right_led_1_off(); 64 ergodox_right_led_2_off(); 65 ergodox_right_led_3_off(); 66 ergodox_board_led_off(); 67 } 68 static inline void ergodox_right_led_1_set(uint8_t n) {} 69 static inline void ergodox_right_led_2_set(uint8_t n) {} 70 static inline void ergodox_right_led_3_set(uint8_t n) {} 71 static inline void ergodox_right_led_set(uint8_t l, uint8_t n) {} 72 static inline void ergodox_led_all_set(uint8_t n) {} 73 static inline void ergodox_led_init(void) {} 74 static inline void ergodox_blink_all_leds(void) { 75 ergodox_led_all_off(); 76 ergodox_board_led_on(); 77 wait_ms(50); 78 ergodox_right_led_1_on(); 79 wait_ms(50); 80 ergodox_right_led_2_on(); 81 wait_ms(50); 82 ergodox_right_led_3_on(); 83 wait_ms(50); 84 ergodox_right_led_1_off(); 85 wait_ms(50); 86 ergodox_right_led_2_off(); 87 wait_ms(50); 88 ergodox_right_led_3_off(); 89 wait_ms(50); 90 ergodox_board_led_off(); 91 //ergodox_led_all_on(); 92 //wait_ms(333); 93 ergodox_led_all_off(); 94 }