Commit | Line | Data |
---|---|---|
48a992f1 W |
1 | /* Copyright 2017 Jason Williams (Wilba) |
2 | * | |
3 | * This program is free software: you can redistribute it and/or modify | |
4 | * it under the terms of the GNU General Public License as published by | |
5 | * the Free Software Foundation, either version 2 of the License, or | |
6 | * (at your option) any later version. | |
7 | * | |
8 | * This program is distributed in the hope that it will be useful, | |
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | * GNU General Public License for more details. | |
12 | * | |
13 | * You should have received a copy of the GNU General Public License | |
14 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
15 | */ | |
16 | #pragma once | |
17 | ||
18 | #include "config_common.h" | |
19 | ||
20 | // USB Device descriptor parameter | |
21 | #define VENDOR_ID 0xFEED | |
22 | #define PRODUCT_ID 0x6060 | |
23 | #define DEVICE_VER 0x0001 | |
24 | #define MANUFACTURER ZealPC | |
25 | #define PRODUCT Zeal60 | |
26 | #define DESCRIPTION Zeal60 (QMK Firmware) | |
27 | ||
28 | // key matrix size | |
29 | #define MATRIX_ROWS 5 | |
30 | #define MATRIX_COLS 14 | |
31 | ||
32 | // Zeal60 PCB default pin-out | |
33 | #define MATRIX_ROW_PINS { F0, F1, F4, F6, F7 } | |
34 | #define MATRIX_COL_PINS { F5, D5, B1, B2, B3, D3, D2, C7, C6, B6, B5, B4, D7, D6 } | |
35 | #define UNUSED_PINS | |
36 | ||
37 | // IS31FL3731 driver | |
38 | #define DRIVER_COUNT 2 | |
39 | #define DRIVER_LED_TOTAL 72 | |
40 | ||
41 | // COL2ROW or ROW2COL | |
42 | #define DIODE_DIRECTION COL2ROW | |
43 | ||
44 | // Set 0 if debouncing isn't needed | |
45 | #define DEBOUNCING_DELAY 5 | |
46 | ||
47 | // Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap | |
48 | #define LOCKING_SUPPORT_ENABLE | |
49 | // Locking resynchronize hack | |
50 | #define LOCKING_RESYNC_ENABLE | |
51 | ||
52 | // key combination for command | |
53 | #define IS_COMMAND() ( \ | |
54 | keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ | |
55 | ) | |
56 | ||
57 | /* | |
58 | * Feature disable options | |
59 | * These options are also useful to firmware size reduction. | |
60 | */ | |
61 | ||
62 | // disable debug print | |
63 | //#define NO_DEBUG | |
64 | ||
65 | // disable print | |
66 | //#define NO_PRINT | |
67 | ||
68 | // disable action features | |
69 | //#define NO_ACTION_LAYER | |
70 | //#define NO_ACTION_TAPPING | |
71 | //#define NO_ACTION_ONESHOT | |
72 | //#define NO_ACTION_MACRO | |
73 | //#define NO_ACTION_FUNCTION | |
74 | ||
75 | #define RGB_BACKLIGHT_ENABLED 1 | |
76 | ||
77 | // This conditionally compiles the backlight code for Zeal60 specifics | |
78 | #define RGB_BACKLIGHT_ZEAL60 | |
79 | ||
80 | // enable/disable LEDs based on layout | |
81 | #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0 | |
82 | #define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0 | |
83 | #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 | |
84 | #define RGB_BACKLIGHT_USE_7U_SPACEBAR 0 | |
85 | #define RGB_BACKLIGHT_USE_ISO_ENTER 0 | |
86 | #define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0 | |
87 | ||
88 | // disable backlight when USB suspended (PC sleep/hibernate/shutdown) | |
89 | #define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0 | |
90 | ||
91 | // disable backlight after timeout in minutes, 0 = no timeout | |
92 | #define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0 | |
93 | ||
94 | // the default effect (RGB test) | |
95 | #define RGB_BACKLIGHT_EFFECT 255 | |
96 | ||
97 | // These define which keys in the matrix are alphas/mods | |
98 | // Used for backlight effects so colors are different for | |
99 | // alphas vs. mods | |
100 | // Each value is for a row, bit 0 is column 0 | |
101 | // Alpha=0 Mod=1 | |
102 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0010000000000001 | |
103 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0000000000000001 | |
104 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0001000000000001 | |
105 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0011000000000001 | |
106 | #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0011110000000111 | |
107 | ||
108 | #define DYNAMIC_KEYMAP_LAYER_COUNT 4 | |
109 | ||
110 | // EEPROM usage | |
111 | ||
112 | // TODO: refactor with new user EEPROM code (coming soon) | |
113 | #define EEPROM_MAGIC 0x451F | |
114 | #define EEPROM_MAGIC_ADDR 32 | |
115 | // Bump this every time we change what we store | |
116 | // This will automatically reset the EEPROM with defaults | |
117 | // and avoid loading invalid data from the EEPROM | |
d7f1e072 | 118 | #define EEPROM_VERSION 0x08 |
48a992f1 W |
119 | #define EEPROM_VERSION_ADDR 34 |
120 | ||
121 | // Backlight config starts after EEPROM version | |
122 | #define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR 35 | |
d7f1e072 W |
123 | // Dynamic keymap starts after backlight config (35+31) |
124 | #define DYNAMIC_KEYMAP_EEPROM_ADDR 66 | |
125 | // Dynamic macro starts after dynamic keymaps (66+(4*5*14*2)) = (66+560) | |
126 | #define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 626 | |
127 | #define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 398 | |
128 | #define DYNAMIC_KEYMAP_MACRO_COUNT 16 | |
48a992f1 | 129 |