keychron_qmk_firmware/keyboards/mschwingen/modelm/config.h
Michael Schwingen 42eeb315a5
[Keyboard] add support for ModelM USB board (#9846)
* add support for ModelM USB board

* EMI improvement: remove unnecessary toggling of MOSI pin

* address review comments

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/mschwingen/modelm/config.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/mschwingen/modelm/config.h

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/mschwingen/modelm/keymaps/default/keymap.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* update printf usage

* add comment

* EMI improvement: remove unnecessary toggling of MOSI signal

* remove trailing space

* use shorter macros as suggested in review by noroadsleft, re-format table to line up columns

* Update keyboards/mschwingen/modelm/config.h

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/README.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Update keyboards/mschwingen/modelm/README.md

Co-authored-by: Ryan <fauxpark@gmail.com>

* Apply suggestions from code review

use spi_read from core insteads of our own copy

Co-authored-by: Ryan <fauxpark@gmail.com>

* include spi_master.c to use spi_read()

* Update keyboards/mschwingen/modelm/README.md

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Apply suggestions from code review: correct indenting in keymap

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>

* Apply suggestions from code review

use automatic variant defines from makefile instead of defining our own

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Update keyboards/mschwingen/modelm/rules.mk: use QUANTUM_LIB_SRC for uart.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: Michael Schwingen <michael@schwingen.org>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2020-08-22 16:02:16 -07:00

92 lines
2.4 KiB
C

/*
* Copyright 2020 Michael Schwingen
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "config_common.h"
/* USB Device descriptor parameter */
#define VENDOR_ID 0xFEED
#define PRODUCT_ID 0x558E
#define DEVICE_VER 0x0001
#define MANUFACTURER mschwingen
#define PRODUCT IBM Model M 101/102
/* key matrix size */
#define MATRIX_ROWS 16
#define MATRIX_COLS 8
/* pins for external shift registers */
#define SR_LOAD_PIN B0
#define SR_CLK_PIN B1
#define SR_DIN_PIN B3
#define SR_DOUT_PIN B2
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed (5 is default) */
#define DEBOUNCE 5
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
#define NORMAL_PRINT
//#define USER_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define NO_ACTION_MACRO
//#define NO_ACTION_FUNCTION
//#define DEBUG_MATRIX_SCAN_RATE
#define DYNAMIC_MACRO_NO_NESTING
#define QMK_LED E6
#define MODELM_LED1 B5
#define MODELM_LED2 B6
#define MODELM_LED3 D0
#if defined(KEYBOARD_mschwingen_modelm_led_wired)
# define MODELM_LED_CAPSLOCK MODELM_LED1
# define MODELM_LED_SCROLLOCK MODELM_LED2
# define MODELM_LED_NUMLOCK MODELM_LED3
#elif defined(KEYBOARD_mschwingen_modelm_led_ffc)
# define MODELM_LED_CAPSLOCK MODELM_LED2
# define MODELM_LED_SCROLLOCK MODELM_LED3
# define MODELM_LED_NUMLOCK MODELM_LED1
#elif defined(KEYBOARD_mschwingen_modelm_led_ws2812)
#else
# error one of MODELM_LEDS_FFC, MODELM_LEDS_WIRED or MODELM_LEDS_WS2812 must be set!
#endif
// 3* WS2812 LEDs instead of singlecolor GPIO LEDs
#define RGB_DI_PIN B6
#define RGBLED_NUM 3
// disabled, needs PCB patch.
//#define C6_AUDIO
//#define NO_MUSIC_MODE