diff options
| author | Michael Stapelberg <stapelberg@users.noreply.github.com> | 2021-03-16 20:45:21 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-17 06:45:21 +1100 |
| commit | 1d341ffbb0dfbf45139c103123549c3c0fec816e (patch) | |
| tree | 53e9a2cf5c0aea78d0089635945a1346652a3277 | |
| parent | 319031154d74ba2568dc855c73d7919a749c7f32 (diff) | |
| download | qmk_firmware-1d341ffbb0dfbf45139c103123549c3c0fec816e.tar.gz qmk_firmware-1d341ffbb0dfbf45139c103123549c3c0fec816e.zip | |
core: add support for MK66F18 (Teensy 3.6) micro controller (#12258)
This is in preparation for https://github.com/qmk/qmk_firmware/pull/10171
| -rw-r--r-- | data/schemas/keyboard.jsonschema | 2 | ||||
| -rw-r--r-- | lib/python/qmk/constants.py | 2 | ||||
| -rw-r--r-- | quantum/mcu_selection.mk | 27 | ||||
| -rw-r--r-- | tmk_core/common/chibios/bootloader.c | 2 | ||||
| -rw-r--r-- | tmk_core/common/chibios/chibios_config.h | 4 |
5 files changed, 34 insertions, 3 deletions
diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index ec03a8828..3034242fd 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema | |||
| @@ -25,7 +25,7 @@ | |||
| 25 | }, | 25 | }, |
| 26 | "processor": { | 26 | "processor": { |
| 27 | "type": "string", | 27 | "type": "string", |
| 28 | "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "STM32G431", "STM32G474", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"] | 28 | "enum": ["cortex-m0", "cortex-m0plus", "cortex-m3", "cortex-m4", "MKL26Z64", "MK20DX128", "MK20DX256", "MK66F18", "STM32F042", "STM32F072", "STM32F103", "STM32F303", "STM32F401", "STM32F411", "STM32G431", "STM32G474", "atmega16u2", "atmega32u2", "atmega16u4", "atmega32u4", "at90usb162", "at90usb646", "at90usb647", "at90usb1286", "at90usb1287", "atmega32a", "atmega328p", "atmega328", "attiny85", "unknown"] |
| 29 | }, | 29 | }, |
| 30 | "board": { | 30 | "board": { |
| 31 | "type": "string", | 31 | "type": "string", |
diff --git a/lib/python/qmk/constants.py b/lib/python/qmk/constants.py index 3ed69f3bf..b5cdaf6a6 100644 --- a/lib/python/qmk/constants.py +++ b/lib/python/qmk/constants.py | |||
| @@ -10,7 +10,7 @@ QMK_FIRMWARE = Path.cwd() | |||
| 10 | MAX_KEYBOARD_SUBFOLDERS = 5 | 10 | MAX_KEYBOARD_SUBFOLDERS = 5 |
| 11 | 11 | ||
| 12 | # Supported processor types | 12 | # Supported processor types |
| 13 | CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F411', 'STM32G431', 'STM32G474' | 13 | CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK66F18', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F411', 'STM32G431', 'STM32G474' |
| 14 | LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None | 14 | LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None |
| 15 | VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85' | 15 | VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85' |
| 16 | 16 | ||
diff --git a/quantum/mcu_selection.mk b/quantum/mcu_selection.mk index f7329fc4d..53e03a805 100644 --- a/quantum/mcu_selection.mk +++ b/quantum/mcu_selection.mk | |||
| @@ -81,6 +81,33 @@ ifneq ($(findstring MK20DX256, $(MCU)),) | |||
| 81 | BOARD ?= PJRC_TEENSY_3_1 | 81 | BOARD ?= PJRC_TEENSY_3_1 |
| 82 | endif | 82 | endif |
| 83 | 83 | ||
| 84 | ifneq ($(findstring MK66F18, $(MCU)),) | ||
| 85 | # Cortex version | ||
| 86 | MCU = cortex-m4 | ||
| 87 | |||
| 88 | # ARM version, CORTEX-M0/M1 are 6, CORTEX-M3/M4/M7 are 7 | ||
| 89 | ARMV = 7 | ||
| 90 | |||
| 91 | ## chip/board settings | ||
| 92 | # - the next two should match the directories in | ||
| 93 | # <chibios>/os/hal/ports/$(MCU_FAMILY)/$(MCU_SERIES) | ||
| 94 | MCU_FAMILY = KINETIS | ||
| 95 | MCU_SERIES = MK66F18 | ||
| 96 | |||
| 97 | # Linker script to use | ||
| 98 | # - it should exist either in <chibios>/os/common/ports/ARMCMx/compilers/GCC/ld/ | ||
| 99 | # or <keyboard_dir>/ld/ | ||
| 100 | MCU_LDSCRIPT ?= MK66FX1M0 | ||
| 101 | |||
| 102 | # Startup code to use | ||
| 103 | # - it should exist in <chibios>/os/common/startup/ARMCMx/compilers/GCC/mk/ | ||
| 104 | MCU_STARTUP ?= MK66F18 | ||
| 105 | |||
| 106 | # Board: it should exist either in <chibios>/os/hal/boards/, | ||
| 107 | # <keyboard_dir>/boards/, or drivers/boards/ | ||
| 108 | BOARD ?= PJRC_TEENSY_3_6 | ||
| 109 | endif | ||
| 110 | |||
| 84 | ifneq ($(findstring STM32F042, $(MCU)),) | 111 | ifneq ($(findstring STM32F042, $(MCU)),) |
| 85 | # Cortex version | 112 | # Cortex version |
| 86 | MCU = cortex-m0 | 113 | MCU = cortex-m0 |
diff --git a/tmk_core/common/chibios/bootloader.c b/tmk_core/common/chibios/bootloader.c index 6cabcc4b8..4a175a628 100644 --- a/tmk_core/common/chibios/bootloader.c +++ b/tmk_core/common/chibios/bootloader.c | |||
| @@ -79,7 +79,7 @@ void enter_bootloader_mode_if_requested(void) { | |||
| 79 | } | 79 | } |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | #elif defined(KL2x) || defined(K20x) // STM32_BOOTLOADER_DUAL_BANK // STM32_BOOTLOADER_ADDRESS | 82 | #elif defined(KL2x) || defined(K20x) || defined(MK66F18) // STM32_BOOTLOADER_DUAL_BANK // STM32_BOOTLOADER_ADDRESS |
| 83 | /* Kinetis */ | 83 | /* Kinetis */ |
| 84 | 84 | ||
| 85 | # if defined(BOOTLOADER_KIIBOHD) | 85 | # if defined(BOOTLOADER_KIIBOHD) |
diff --git a/tmk_core/common/chibios/chibios_config.h b/tmk_core/common/chibios/chibios_config.h index 9a66ac317..1d8ace495 100644 --- a/tmk_core/common/chibios/chibios_config.h +++ b/tmk_core/common/chibios/chibios_config.h | |||
| @@ -32,3 +32,7 @@ | |||
| 32 | # define USE_GPIOV1 | 32 | # define USE_GPIOV1 |
| 33 | # define STM32_SYSCLK KINETIS_SYSCLK_FREQUENCY | 33 | # define STM32_SYSCLK KINETIS_SYSCLK_FREQUENCY |
| 34 | #endif | 34 | #endif |
| 35 | |||
| 36 | #if defined(MK66F18) | ||
| 37 | # define STM32_SYSCLK KINETIS_SYSCLK_FREQUENCY | ||
| 38 | #endif | ||
