qmk

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.z3bra.org/qmk.git
Log | Files | Refs | Submodules | LICENSE

config.h (4649B)


      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       0x5A45 // ZealPC ("ZE")
     22 #define PRODUCT_ID      0x0065 // Zeal65
     23 #define DEVICE_VER      0x0001
     24 #define MANUFACTURER    ZealPC
     25 #define PRODUCT         Zeal65
     26 #define DESCRIPTION     Zeal65
     27 
     28 // key matrix size
     29 #define MATRIX_ROWS 5
     30 #define MATRIX_COLS 15
     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, D4 }
     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 DEBOUNCE 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 /*
     53  * Feature disable options
     54  *  These options are also useful to firmware size reduction.
     55  */
     56 
     57 // disable debug print
     58 //#define NO_DEBUG
     59 
     60 // disable print
     61 //#define NO_PRINT
     62 
     63 // disable action features
     64 //#define NO_ACTION_LAYER
     65 //#define NO_ACTION_TAPPING
     66 //#define NO_ACTION_ONESHOT
     67 //#define NO_ACTION_MACRO
     68 //#define NO_ACTION_FUNCTION
     69 
     70 #define RGB_BACKLIGHT_ENABLED 1
     71 
     72 // This conditionally compiles the backlight code for Zeal65 specifics
     73 #define RGB_BACKLIGHT_ZEAL65
     74 
     75 // enable/disable LEDs based on layout
     76 #define RGB_BACKLIGHT_USE_SPLIT_BACKSPACE 0
     77 #define RGB_BACKLIGHT_USE_SPLIT_LEFT_SHIFT 0  // Unused
     78 #define RGB_BACKLIGHT_USE_SPLIT_RIGHT_SHIFT 0 // Unused
     79 #define RGB_BACKLIGHT_USE_7U_SPACEBAR 1       // Used only for stab LED matching spacebar LED
     80 #define RGB_BACKLIGHT_USE_ISO_ENTER 0         // Unused
     81 #define RGB_BACKLIGHT_DISABLE_HHKB_BLOCKER_LEDS 0
     82 
     83 // disable backlight when USB suspended (PC sleep/hibernate/shutdown)
     84 #define RGB_BACKLIGHT_DISABLE_WHEN_USB_SUSPENDED 0
     85 
     86 // disable backlight after timeout in minutes, 0 = no timeout
     87 #define RGB_BACKLIGHT_DISABLE_AFTER_TIMEOUT 0
     88 
     89 // the default brightness
     90 #define RGB_BACKLIGHT_BRIGHTNESS 255
     91 
     92 // the default effect (RGB test)
     93 #define RGB_BACKLIGHT_EFFECT 255
     94 
     95 // the default effect speed (0-3)
     96 #define RGB_BACKLIGHT_EFFECT_SPEED 0
     97 
     98 // the default color1 and color2
     99 #define RGB_BACKLIGHT_COLOR_1 { .h = 0, .s = 255 }
    100 #define RGB_BACKLIGHT_COLOR_2 { .h = 127, .s = 255 }
    101 
    102 // These define which keys in the matrix are alphas/mods
    103 // Used for backlight effects so colors are different for
    104 // alphas vs. mods
    105 // Each value is for a row, bit 0 is column 0
    106 // Alpha=0 Mod=1
    107 #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_0 0b0110000000000001
    108 #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_1 0b0100000000000001
    109 #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_2 0b0101000000000001
    110 #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_3 0b0111000000000001
    111 #define RGB_BACKLIGHT_ALPHAS_MODS_ROW_4 0b0111110000000011
    112 
    113 #define RGB_BACKLIGHT_CAPS_LOCK_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
    114 #define RGB_BACKLIGHT_LAYER_1_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
    115 #define RGB_BACKLIGHT_LAYER_2_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
    116 #define RGB_BACKLIGHT_LAYER_3_INDICATOR { .color = { .h = 0, .s = 0 }, .index = 255 }
    117 
    118 #define DYNAMIC_KEYMAP_LAYER_COUNT 4
    119 
    120 // EEPROM usage
    121 
    122 // TODO: refactor with new user EEPROM code (coming soon)
    123 #define EEPROM_MAGIC 0x451F
    124 #define EEPROM_MAGIC_ADDR 32
    125 // Bump this every time we change what we store
    126 // This will automatically reset the EEPROM with defaults
    127 // and avoid loading invalid data from the EEPROM
    128 #define EEPROM_VERSION 0x08
    129 #define EEPROM_VERSION_ADDR 34
    130 
    131 // Backlight config starts after EEPROM version
    132 #define RGB_BACKLIGHT_CONFIG_EEPROM_ADDR 35
    133 // Dynamic keymap starts after backlight config (35+31)
    134 #define DYNAMIC_KEYMAP_EEPROM_ADDR 66
    135 // Dynamic macro starts after dynamic keymaps (66+(4*5*15*2)) = (66+600)
    136 #define DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR 666
    137 #define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 358
    138 #define DYNAMIC_KEYMAP_MACRO_COUNT 16