aboutsummaryrefslogtreecommitdiff
path: root/keyboards/whitefox/whitefox.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/whitefox/whitefox.c')
-rw-r--r--keyboards/whitefox/whitefox.c76
1 files changed, 76 insertions, 0 deletions
diff --git a/keyboards/whitefox/whitefox.c b/keyboards/whitefox/whitefox.c
index ea083c6e0..f10f0fd5c 100644
--- a/keyboards/whitefox/whitefox.c
+++ b/keyboards/whitefox/whitefox.c
@@ -16,3 +16,79 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#include "whitefox.h" 18#include "whitefox.h"
19
20#ifdef LED_MATRIX_ENABLE
21const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
22// The numbers in the comments are the led numbers DXX on the PCB
23/* Refer to IS31 manual for these locations
24 * driver
25 * | LED address
26 * | | */
27// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
28 { 0, C1_1 }, { 0, C1_2 }, { 0, C1_3 }, { 0, C1_4 }, { 0, C1_5 }, { 0, C1_6 }, { 0, C1_7 }, { 0, C1_8 }, { 0, C2_1 }, { 0, C2_2 }, { 0, C2_3 }, { 0, C2_4 }, { 0, C2_5 }, { 0, C2_6 }, { 0, C2_7 }, { 0, C2_8 },
29// 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
30 { 0, C3_1 }, { 0, C3_2 }, { 0, C3_3 }, { 0, C3_4 }, { 0, C3_5 }, { 0, C3_6 }, { 0, C3_7 }, { 0, C3_8 }, { 0, C4_1 }, { 0, C4_2 }, { 0, C4_3 }, { 0, C4_4 }, { 0, C4_5 }, { 0, C4_6 }, { 0, C4_7 },
31// 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
32 { 0, C4_8 }, { 0, C5_1 }, { 0, C5_2 }, { 0, C5_3 }, { 0, C5_4 }, { 0, C5_5 }, { 0, C5_6 }, { 0, C5_7 }, { 0, C5_8 }, { 0, C6_1 }, { 0, C6_2 }, { 0, C6_3 }, { 0, C6_4 }, { 0, C6_5 }, { 0, C6_6 },
33// 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
34 { 0, C6_7 }, { 0, C6_8 }, { 0, C7_1 }, { 0, C7_2 }, { 0, C7_3 }, { 0, C7_4 }, { 0, C7_5 }, { 0, C7_6 }, { 0, C7_7 }, { 0, C7_8 }, { 0, C8_1 }, { 0, C8_2 }, { 0, C8_3 }, { 0, C8_4 }, { 0, C8_5 },
35// 62 63 64 65 66 67 68 69 70 71
36 { 0, C8_6 }, { 0, C8_7 }, { 0, C8_8 }, { 0, C9_1 }, { 0, C9_2 }, { 0, C9_3 }, { 0, C9_4 }, { 0, C9_5 }, { 0, C9_6 }, { 0, C9_7 },
37};
38
39led_config_t g_led_config = {
40 {
41 // Key Matrix to LED Index
42 { 0, 1, 2, 3, 4, 5, 6, 7, 8 },
43 { 9, 10, 11, 12, 13, 14, 15, 16, 17 },
44 { 18, 19, 20, 21, 22, 23, 24, 25, 26 },
45 { 27, 28, 29, 30, 31, 32, 33, 34, 35 },
46 { 36, 37, 38, 39, 40, 41, 42, 43, 44 },
47 { 45, 46, 47, 48, 49, 50, 51, 52, 53 },
48 { 54, 55, 56, 57, 58, 59, 60, 61, 62 },
49 { 63, 64, 65, 66, 67, 68, 69, 70, NO_LED },
50 }, {
51 // LED Index to Physical Position
52 { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 119, 0 }, { 134, 0 }, { 149, 0 }, { 164, 0 }, { 179, 0 }, { 194, 0 }, { 209, 0 }, { 224, 0 },
53 { 4, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 205, 16 }, { 224, 16 },
54 { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 175, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 },
55 { 2, 48 }, { 19, 48 }, { 34, 48 }, { 49, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 189, 48 }, { 209, 48 }, { 224, 48 },
56 { 2, 64 }, { 21, 64 }, { 39, 64 }, { 95, 64 }, { 149, 64 }, { 164, 64 }, { 179, 64 }, { 194, 64 }, { 209, 64 }, { 224, 64 }
57 }, {
58 // LED Index to Flag
59 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
60 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
61 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
62 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1,
63 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
64 }
65};
66#endif
67
68void keyboard_pre_init_kb(void) {
69#ifdef LED_MATRIX_ENABLE
70 // Turn on LED controller
71 setPinOutput(B16);
72 writePinHigh(B16);
73#endif
74 keyboard_pre_init_user();
75}
76
77void matrix_init_kb(void) {
78 // put your keyboard start-up code here
79 // runs once when the firmware starts up
80
81#ifdef LED_MATRIX_ENABLE
82 /*
83 * Since K20x is stuck with a 32 byte EEPROM (see tmk_core/common/chibios/eeprom_teensy.c),
84 * and neither led_matrix_eeconfig.speed or .flags fit in this boundary, just force their values to default on boot.
85 */
86# if !defined(LED_MATRIX_STARTUP_SPD)
87# define LED_MATRIX_STARTUP_SPD UINT8_MAX / 2
88# endif
89 led_matrix_set_speed(LED_MATRIX_STARTUP_SPD),
90 led_matrix_set_flags(LED_FLAG_ALL);
91#endif
92
93 matrix_init_user();
94}