]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/gh60/gh60.h
Renames keyboard folder to keyboards, adds couple of tmk's fixes (#432)
[qmk_firmware.git] / keyboards / gh60 / gh60.h
1 #ifndef GH60_H\r
2 #define GH60_H\r
3 \r
4 #include "matrix.h"\r
5 #include "keymap.h"\r
6 #include "backlight.h"\r
7 #include <stddef.h>\r
8 \r
9 /* GH60 LEDs \r
10  *   GPIO pads\r
11  *   0 F7 WASD LEDs\r
12  *   1 F6 ESC LED\r
13  *   2 F5 FN LED\r
14  *   3 F4 POKER Arrow LEDs\r
15  *   B2 Capslock LED\r
16  *   B0 not connected\r
17  */\r
18 inline void gh60_caps_led_on(void)      { DDRB |=  (1<<2); PORTB &= ~(1<<2); }\r
19 inline void gh60_poker_leds_on(void)    { DDRF |=  (1<<4); PORTF &= ~(1<<4); }\r
20 inline void gh60_fn_led_on(void)        { DDRF |=  (1<<5); PORTF &= ~(1<<5); }\r
21 inline void gh60_esc_led_on(void)       { DDRF |=  (1<<6); PORTF &= ~(1<<6); }\r
22 inline void gh60_wasd_leds_on(void)     { DDRF |=  (1<<7); PORTF &= ~(1<<7); }\r
23 \r
24 inline void gh60_caps_led_off(void)     { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }\r
25 inline void gh60_poker_leds_off(void)   { DDRF &= ~(1<<4); PORTF &= ~(1<<4); }\r
26 inline void gh60_fn_led_off(void)       { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }\r
27 inline void gh60_esc_led_off(void)      { DDRF &= ~(1<<6); PORTF &= ~(1<<6); }\r
28 inline void gh60_wasd_leds_off(void)    { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }\r
29 \r
30 /* GH60 keymap definition macro\r
31  * K2C, K31 and  K3C are extra keys for ISO\r
32  */\r
33 #define KEYMAP( \\r
34     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \\r
35     K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \\r
36     K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \\r
37     K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \\r
38     K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D  \\r
39 ) { \\r
40     { KC_##K00, KC_##K01, KC_##K02, KC_##K03, KC_##K04, KC_##K05, KC_##K06, KC_##K07, KC_##K08, KC_##K09, KC_##K0A, KC_##K0B, KC_##K0C, KC_##K0D }, \\r
41     { KC_##K10, KC_##K11, KC_##K12, KC_##K13, KC_##K14, KC_##K15, KC_##K16, KC_##K17, KC_##K18, KC_##K19, KC_##K1A, KC_##K1B, KC_##K1C, KC_##K1D }, \\r
42     { KC_##K20, KC_##K21, KC_##K22, KC_##K23, KC_##K24, KC_##K25, KC_##K26, KC_##K27, KC_##K28, KC_##K29, KC_##K2A, KC_##K2B, KC_##K2C, KC_##K2D }, \\r
43     { KC_##K30, KC_##K31, KC_##K32, KC_##K33, KC_##K34, KC_##K35, KC_##K36, KC_##K37, KC_##K38, KC_##K39, KC_##K3A, KC_##K3B, KC_##K3C, KC_##K3D }, \\r
44     { KC_##K40, KC_##K41, KC_##K42, KC_NO,    KC_NO,    KC_##K45, KC_NO,    KC_NO,    KC_NO,    KC_##K49, KC_##K4A, KC_##K4B, KC_##K4C, KC_##K4D }  \\r
45 }\r
46 \r
47 /* ANSI valiant. No extra keys for ISO */\r
48 #define KEYMAP_ANSI( \\r
49     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \\r
50     K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \\r
51     K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D, \\r
52     K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,           K3D, \\r
53     K40, K41, K42,           K45,                     K4A, K4B, K4C, K4D  \\r
54 ) KEYMAP( \\r
55     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \\r
56     K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \\r
57     K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO,  K2D, \\r
58     K30, NO,  K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, NO,  K3D, \\r
59     K40, K41, K42,           K45,                NO,  K4A, K4B, K4C, K4D  \\r
60 )\r
61 \r
62 #define KEYMAP_HHKB( \\r
63     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49,\\r
64     K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \\r
65     K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,      K2D, \\r
66     K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,      K3D, K3C, \\r
67     K40, K41, K42,           K45,                     K4A, K4B, K4C, K4D  \\r
68 ) KEYMAP( \\r
69     K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \\r
70     K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \\r
71     K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, NO,  K2D, \\r
72     K30, NO,  K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \\r
73     K40, K41, K42,           K45,                K49, K4A, K4B, K4C, K4D  \\r
74 )\r
75 \r
76 void matrix_init_user(void);\r
77 void matrix_scan_user(void);\r
78 bool process_action_user(keyrecord_t *record);\r
79 void led_set_user(uint8_t usb_led);\r
80 \r
81 #endif\r