summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/ergodox_infinity/rules.mk44
-rw-r--r--keyboards/handwired/onekey/teensy_32/rules.mk44
-rw-r--r--keyboards/handwired/onekey/teensy_lc/rules.mk44
-rw-r--r--keyboards/infinity60/rules.mk36
-rw-r--r--keyboards/k_type/rules.mk43
-rw-r--r--keyboards/whitefox/rules.mk40
-rw-r--r--quantum/mcu_selection.mk82
7 files changed, 109 insertions, 224 deletions
diff --git a/keyboards/ergodox_infinity/rules.mk b/keyboards/ergodox_infinity/rules.mk
index 329ea8b988..31bc20454c 100644
--- a/keyboards/ergodox_infinity/rules.mk
+++ b/keyboards/ergodox_infinity/rules.mk
@@ -1,15 +1,5 @@
-# project specific files
-SRC = matrix.c \
- led.c
-
-## chip/board settings
-# - the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-# - For Teensies, FAMILY = KINETIS and SERIES is either
-# KL2x (LC) or K20x (3.0,3.1,3.2).
-# - For Infinity KB, SERIES = K20x
-MCU_FAMILY = KINETIS
-MCU_SERIES = K20x
+# MCU name
+MCU = MK20DX256
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
@@ -23,32 +13,6 @@ MCU_SERIES = K20x
# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
MCU_LDSCRIPT = MK20DX256BLDR8
-# Startup code to use
-# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-# - STARTUP =
-# - kl2x for Teensy LC
-# - k20x5 for Teensy 3.0 and Infinity 60%
-# - k20x7 for Teensy 3.1, 3.2 and Infinity ErgoDox
-MCU_STARTUP = k20x7
-
-# Board: it should exist either in <chibios>/os/hal/boards/
-# or <this_dir>/boards
-# - BOARD =
-# - PJRC_TEENSY_LC for Teensy LC
-# - PJRC_TEENSY_3 for Teensy 3.0
-# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
-# - MCHCK_K20 for Infinity KB
-#BOARD = MCHCK_K20
-BOARD = PJRC_TEENSY_3_1
-
-# Cortex version
-# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
-MCU = cortex-m4
-
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-# I.e. 6 for Teensy LC; 7 for Teensy 3.x
-ARMV = 7
-
# Vector table for application
# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
@@ -92,4 +56,8 @@ LED_DRIVER = is31fl3731c
LED_WIDTH = 7
LED_HEIGHT = 7
+# project specific files
+SRC = matrix.c \
+ led.c
+
LAYOUTS = ergodox
diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk
index 2c411c0eb6..c1b90d0d2b 100644
--- a/keyboards/handwired/onekey/teensy_32/rules.mk
+++ b/keyboards/handwired/onekey/teensy_32/rules.mk
@@ -1,45 +1,5 @@
-## chip/board settings
-# - the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-# - For Teensies, FAMILY = KINETIS and SERIES is either
-# KL2x (LC) or K20x (3.0,3.1,3.2).
-MCU_FAMILY = KINETIS
-MCU_SERIES = K20x
-
-# Linker script to use
-# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
-# - LDSCRIPT =
-# - MKL26Z64 for Teensy LC
-# - MK20DX128 for Teensy 3.0
-# - MK20DX256 for Teensy 3.1 and 3.2
-MCU_LDSCRIPT = MK20DX256
-
-# Startup code to use
-# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-# - STARTUP =
-# - kl2x for Teensy LC
-# - k20x5 for Teensy 3.0
-# - k20x7 for Teensy 3.1 and 3.2
-MCU_STARTUP = k20x7
-
-# Board: it should exist either in <chibios>/os/hal/boards/
-# or <this_dir>/boards
-# - BOARD =
-# - PJRC_TEENSY_LC for Teensy LC
-# - PJRC_TEENSY_3 for Teensy 3.0
-# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
-BOARD = PJRC_TEENSY_3_1
-
-# Cortex version
-# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4
-MCU = cortex-m4
-
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-# I.e. 6 for Teensy LC; 7 for Teensy 3.x
-ARMV = 7
-
+# MCU name
+MCU = MK20DX256
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk
index 32ab07d9c1..c307307252 100644
--- a/keyboards/handwired/onekey/teensy_lc/rules.mk
+++ b/keyboards/handwired/onekey/teensy_lc/rules.mk
@@ -1,45 +1,5 @@
-## chip/board settings
-# - the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-# - For Teensies, FAMILY = KINETIS and SERIES is either
-# KL2x (LC) or K20x (3.0,3.1,3.2).
-MCU_FAMILY = KINETIS
-MCU_SERIES = KL2x
-
-# Linker script to use
-# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
-# or <this_dir>/ld/
-# - NOTE: a custom ld script is needed for EEPROM on Teensy LC
-# - LDSCRIPT =
-# - MKL26Z64 for Teensy LC
-# - MK20DX128 for Teensy 3.0
-# - MK20DX256 for Teensy 3.1 and 3.2
-MCU_LDSCRIPT = MKL26Z64
-
-# Startup code to use
-# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-# - STARTUP =
-# - kl2x for Teensy LC
-# - k20x5 for Teensy 3.0
-# - k20x7 for Teensy 3.1 and 3.2
-MCU_STARTUP = kl2x
-
-# Board: it should exist either in <chibios>/os/hal/boards/
-# or <this_dir>/boards
-# - BOARD =
-# - PJRC_TEENSY_LC for Teensy LC
-# - PJRC_TEENSY_3 for Teensy 3.0
-# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
-BOARD = PJRC_TEENSY_LC
-
-# Cortex version
-# Teensy LC is cortex-m0plus; Teensy 3.x are cortex-m4
-MCU = cortex-m0plus
-
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-# I.e. 6 for Teensy LC; 7 for Teensy 3.x
-ARMV = 6
-
+# MCU name
+MCU = MKL26Z64
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/infinity60/rules.mk b/keyboards/infinity60/rules.mk
index f93766af97..579eab0f3f 100644
--- a/keyboards/infinity60/rules.mk
+++ b/keyboards/infinity60/rules.mk
@@ -1,16 +1,5 @@
-# project specific files
-SRC = matrix.c \
- led.c \
- led_controller.c
-
-## chip/board settings
-# - the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-# - For Teensies, FAMILY = KINETIS and SERIES is either
-# KL2x (LC) or K20x (3.0,3.1,3.2).
-# - For Infinity KB, SERIES = K20x
-MCU_FAMILY = KINETIS
-MCU_SERIES = K20x
+# MCU name
+MCU = MK20DX128
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
@@ -23,14 +12,6 @@ MCU_SERIES = K20x
# - MK20DX128BLDR4 for Infinity with Kiibohd bootloader
MCU_LDSCRIPT = MK20DX128BLDR4
-# Startup code to use
-# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-# - STARTUP =
-# - kl2x for Teensy LC
-# - k20x5 for Teensy 3.0 and Infinity KB
-# - k20x7 for Teensy 3.1 and 3.2
-MCU_STARTUP = k20x5
-
# Board: it should exist either in <chibios>/os/hal/boards/
# or <this_dir>/boards
# - BOARD =
@@ -40,14 +21,6 @@ MCU_STARTUP = k20x5
# - MCHCK_K20 for Infinity KB
BOARD = MCHCK_K20
-# Cortex version
-# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
-MCU = cortex-m4
-
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-# I.e. 6 for Teensy LC; 7 for Teensy 3.x
-ARMV = 7
-
# Vector table for application
# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
@@ -72,6 +45,11 @@ SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
+# project specific files
+SRC = matrix.c \
+ led.c \
+ led_controller.c
+
LAYOUTS = 60_ansi_split_bs_rshift
diff --git a/keyboards/k_type/rules.mk b/keyboards/k_type/rules.mk
index e53f316b99..56c4c606e3 100644
--- a/keyboards/k_type/rules.mk
+++ b/keyboards/k_type/rules.mk
@@ -1,14 +1,5 @@
-# project specific files
-SRC = matrix.c
-
-## chip/board settings
-# - the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-# - For Teensies, FAMILY = KINETIS and SERIES is either
-# KL2x (LC) or K20x (3.0,3.1,3.2).
-# - For Infinity KB, SERIES = K20x
-MCU_FAMILY = KINETIS
-MCU_SERIES = K20x
+# MCU name
+MCU = MK20DX256
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
@@ -22,40 +13,12 @@ MCU_SERIES = K20x
# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
MCU_LDSCRIPT = MK20DX256BLDR8
-# Startup code to use
-# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-# - STARTUP =
-# - kl2x for Teensy LC
-# - k20x5 for Teensy 3.0 and Infinity KB
-# - k20x7 for Teensy 3.1 and 3.2
-MCU_STARTUP = k20x7
-
# Board: it should exist either in <chibios>/os/hal/boards/
# or <this_dir>/boards
-# - BOARD =
-# - PJRC_TEENSY_LC for Teensy LC
-# - PJRC_TEENSY_3 for Teensy 3.0
-# - PJRC_TEENSY_3_1 for Teensy 3.1 or 3.2
-# - MCHCK_K20 for Infinity KB
-
# This board was copied from PJRC_TEENSY_3_1. The only difference should be a
# hack to ensure the watchdog has started before trying to disable it.
BOARD = IC_TEENSY_3_1
-# Cortex version
-# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
-MCU = cortex-m4
-
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-# I.e. 6 for Teensy LC; 7 for Teensy 3.x
-ARMV = 7
-
-# Vector table for application
-# 0x00000000-0x00001000 area is occupied by bootloader.*/
-# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
-#OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
-OPT_DEFS =
-
DFU_ARGS = -d 1c11:b007
DFU_SUFFIX_ARGS = -p b007 -v 1c11
@@ -75,6 +38,8 @@ NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX = yes # Custom matrix file
DEBUG_ENABLE = yes
+# project specific files
+SRC = matrix.c
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
diff --git a/keyboards/whitefox/rules.mk b/keyboards/whitefox/rules.mk
index 27c3c31416..14507e9dd2 100644
--- a/keyboards/whitefox/rules.mk
+++ b/keyboards/whitefox/rules.mk
@@ -1,15 +1,5 @@
-# project specific files
-SRC = matrix.c \
- led.c
-
-## chip/board settings
-# - the next two should match the directories in
-# <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
-# - For Teensies, FAMILY = KINETIS and SERIES is either
-# KL2x (LC) or K20x (3.0,3.1,3.2).
-# - For Infinity KB, SERIES = K20x
-MCU_FAMILY = KINETIS
-MCU_SERIES = K20x
+# MCU name
+MCU = MK20DX256
# Linker script to use
# - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
@@ -23,14 +13,6 @@ MCU_SERIES = K20x
# - MK20DX256BLDR8 for Infinity ErgoDox with Kiibohd bootloader
MCU_LDSCRIPT = MK20DX256BLDR8
-# Startup code to use
-# - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
-# - STARTUP =
-# - kl2x for Teensy LC
-# - k20x5 for Teensy 3.0 and Infinity KB
-# - k20x7 for Teensy 3.1 and 3.2
-MCU_STARTUP = k20x7
-
# Board: it should exist either in <chibios>/os/hal/boards/
# or <this_dir>/boards
# - BOARD =
@@ -40,20 +22,6 @@ MCU_STARTUP = k20x7
# - MCHCK_K20 for Infinity KB
BOARD = IC_TEENSY_3_1
-# Cortex version
-# Teensy LC is cortex-m0; Teensy 3.x are cortex-m4
-MCU = cortex-m4
-
-# ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
-# I.e. 6 for Teensy LC; 7 for Teensy 3.x
-ARMV = 7
-
-# Vector table for application
-# 0x00000000-0x00001000 area is occupied by bootlaoder.*/
-# The CORTEX_VTOR... is needed only for MCHCK/Infinity KB
-#OPT_DEFS = -DCORTEX_VTOR_INIT=0x00001000
-OPT_DEFS =
-
DFU_ARGS = -d 1c11:b007
DFU_SUFFIX_ARGS = -p b007 -v 1c11
@@ -75,6 +43,10 @@ BACKLIGHT_ENABLE = yes
BACKLIGHT_DRIVER = custom
VISUALIZER_ENABLE = yes
+# project specific files
+SRC = matrix.c \
+ led.c
+
LED_DRIVER = is31fl3731c
LED_WIDTH = 16
LED_HEIGHT = 5
diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk
index f41a9e8215..f15a4f58c0 100644
--- a/quantum/mcu_selection.mk
+++ b/quantum/mcu_selection.mk
@@ -1,3 +1,85 @@
+ifneq ($(findstring MKL26Z64, $(MCU)),)
+ # Cortex version
+ MCU = cortex-m0plus
+
+ # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
+ ARMV = 6
+
+ ## chip/board settings
+ # - the next two should match the directories in
+ # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
+ MCU_FAMILY = KINETIS
+ MCU_SERIES = KL2x
+
+ # Linker script to use
+ # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
+ # or <keyboard_dir>/ld/
+ # - NOTE: a custom ld script is needed for EEPROM on Teensy LC
+ MCU_LDSCRIPT ?= MKL26Z64
+
+ # Startup code to use
+ # - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
+ MCU_STARTUP ?= kl2x
+
+ # Board: it should exist either in <chibios>/os/hal/boards/,
+ # <keyboard_dir>/boards/, or drivers/boards/
+ BOARD ?= PJRC_TEENSY_LC
+endif
+
+ifneq ($(findstring MK20DX128, $(MCU)),)
+ # Cortex version
+ MCU = cortex-m4
+
+ # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
+ ARMV = 7
+
+ ## chip/board settings
+ # - the next two should match the directories in
+ # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
+ MCU_FAMILY = KINETIS
+ MCU_SERIES = K20x
+
+ # Linker script to use
+ # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
+ # or <keyboard_dir>/ld/
+ MCU_LDSCRIPT ?= MK20DX128
+
+ # Startup code to use
+ # - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
+ MCU_STARTUP ?= k20x5
+
+ # Board: it should exist either in <chibios>/os/hal/boards/,
+ # <keyboard_dir>/boards/, or drivers/boards/
+ BOARD ?= PJRC_TEENSY_3
+endif
+
+ifneq ($(findstring MK20DX256, $(MCU)),)
+ # Cortex version
+ MCU = cortex-m4
+
+ # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7
+ ARMV = 7
+
+ ## chip/board settings
+ # - the next two should match the directories in
+ # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES)
+ MCU_FAMILY = KINETIS
+ MCU_SERIES = K20x
+
+ # Linker script to use
+ # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/
+ # or <keyboard_dir>/ld/
+ MCU_LDSCRIPT ?= MK20DX256
+
+ # Startup code to use
+ # - it should exist in <chibios>/os/common/ports/ARMCMx/compilers/GCC/mk/
+ MCU_STARTUP ?= k20x7
+
+ # Board: it should exist either in <chibios>/os/hal/boards/,
+ # <keyboard_dir>/boards/, or drivers/boards/
+ BOARD ?= PJRC_TEENSY_3_1
+endif
+
ifneq ($(findstring STM32F303, $(MCU)),)
# Cortex version
MCU = cortex-m4