diff options
Diffstat (limited to 'keyboards/moonlander/moonlander.h')
-rw-r--r-- | keyboards/moonlander/moonlander.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/keyboards/moonlander/moonlander.h b/keyboards/moonlander/moonlander.h new file mode 100644 index 000000000..0e2dc880e --- /dev/null +++ b/keyboards/moonlander/moonlander.h | |||
@@ -0,0 +1,81 @@ | |||
1 | /* Copyright 2020 ZSA Technology Labs, Inc <@zsa> | ||
2 | * Copyright 2020 Jack Humbert <jack.humb@gmail.com> | ||
3 | * Copyright 2020 Drashna Jael're <drashna@live.com> | ||
4 | * | ||
5 | * This program is free software: you can redistribute it and/or modify | ||
6 | * it under the terms of the GNU General Public License as published by | ||
7 | * the Free Software Foundation, either version 2 of the License, or | ||
8 | * (at your option) any later version. | ||
9 | * | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
17 | */ | ||
18 | |||
19 | |||
20 | |||
21 | #pragma once | ||
22 | |||
23 | #include "quantum.h" | ||
24 | |||
25 | extern bool mcp23018_leds[]; | ||
26 | |||
27 | #define MCP23018_DEFAULT_ADDRESS 0b0100000 | ||
28 | |||
29 | #define ML_LED_1(status) writePin(B5, (bool)status) | ||
30 | #define ML_LED_2(status) writePin(B4, (bool)status) | ||
31 | #define ML_LED_3(status) writePin(B3, (bool)status) | ||
32 | |||
33 | #define ML_LED_4(status) mcp23018_leds[0] = (bool)status | ||
34 | #define ML_LED_5(status) mcp23018_leds[1] = (bool)status | ||
35 | #define ML_LED_6(status) mcp23018_leds[2] = (bool)status | ||
36 | |||
37 | |||
38 | // clang-format off | ||
39 | #define LAYOUT_moonlander( \ | ||
40 | k00, k01, k02, k03, k04, k05, k06, k60, k61, k62, k63, k64, k65, k66, \ | ||
41 | k10, k11, k12, k13, k14, k15, k16, k70, k71, k72, k73, k74, k75, k76, \ | ||
42 | k20, k21, k22, k23, k24, k25, k26, k80, k81, k82, k83, k84, k85, k86, \ | ||
43 | k30, k31, k32, k33, k34, k35, k91, k92, k93, k94, k95, k96, \ | ||
44 | k40, k41, k42, k43, k44, k53, kb3, ka2, ka3, ka4, ka5, ka6, \ | ||
45 | k50, k51, k52, kb4, kb5, kb6 \ | ||
46 | ) \ | ||
47 | { \ | ||
48 | { k00, k01, k02, k03, k04, k05, k06 }, \ | ||
49 | { k10, k11, k12, k13, k14, k15, k16 }, \ | ||
50 | { k20, k21, k22, k23, k24, k25, k26 }, \ | ||
51 | { k30, k31, k32, k33, k34, k35, KC_NO }, \ | ||
52 | { k40, k41, k42, k43, k44, KC_NO, KC_NO }, \ | ||
53 | { k50, k51, k52, k53, KC_NO, KC_NO, KC_NO }, \ | ||
54 | \ | ||
55 | { k60, k61, k62, k63, k64, k65, k66 }, \ | ||
56 | { k70, k71, k72, k73, k74, k75, k76 }, \ | ||
57 | { k80, k81, k82, k83, k84, k85, k86 }, \ | ||
58 | { KC_NO,k91, k92, k93, k94, k95, k96 }, \ | ||
59 | { KC_NO, KC_NO, ka2, ka3, ka4, ka5, ka6 }, \ | ||
60 | { KC_NO, KC_NO, KC_NO, kb3, kb4, kb5, kb6 } \ | ||
61 | } | ||
62 | // clang-format on | ||
63 | |||
64 | enum planck_ez_keycodes { | ||
65 | TOGGLE_LAYER_COLOR = SAFE_RANGE, | ||
66 | ML_SAFE_RANGE, | ||
67 | }; | ||
68 | |||
69 | #ifndef WEBUSB_ENABLE | ||
70 | # define WEBUSB_PAIR KC_NO | ||
71 | #endif | ||
72 | |||
73 | typedef union { | ||
74 | uint32_t raw; | ||
75 | struct { | ||
76 | bool disable_layer_led :1; | ||
77 | bool rgb_matrix_enable :1; | ||
78 | }; | ||
79 | } keyboard_config_t; | ||
80 | |||
81 | extern keyboard_config_t keyboard_config; | ||