ac5e6b6a3b
* Tentative Teensy 3.5 support * Set firmware format to .hex for ARM Teensys * Got to "device descriptor failed" by comparing with Teensy 3.6 code * Drop down to 96MHz... * Bump back up to 120MHz
141 lines
6 KiB
Python
141 lines
6 KiB
Python
"""Information that should be available to the python library.
|
|
"""
|
|
from os import environ
|
|
from datetime import date
|
|
from pathlib import Path
|
|
|
|
# The root of the qmk_firmware tree.
|
|
QMK_FIRMWARE = Path.cwd()
|
|
|
|
# Upstream repo url
|
|
QMK_FIRMWARE_UPSTREAM = 'qmk/qmk_firmware'
|
|
|
|
# This is the number of directories under `qmk_firmware/keyboards` that will be traversed. This is currently a limitation of our make system.
|
|
MAX_KEYBOARD_SUBFOLDERS = 5
|
|
|
|
# Supported processor types
|
|
CHIBIOS_PROCESSORS = 'cortex-m0', 'cortex-m0plus', 'cortex-m3', 'cortex-m4', 'MKL26Z64', 'MK20DX128', 'MK20DX256', 'MK64FX512', 'MK66FX1M0', 'RP2040', 'STM32F042', 'STM32F072', 'STM32F103', 'STM32F303', 'STM32F401', 'STM32F405', 'STM32F407', 'STM32F411', 'STM32F446', 'STM32G431', 'STM32G474', 'STM32L412', 'STM32L422', 'STM32L432', 'STM32L433', 'STM32L442', 'STM32L443', 'GD32VF103', 'WB32F3G71', 'WB32FQ95'
|
|
LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None
|
|
VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85'
|
|
|
|
# Bootloaders of the supported processors
|
|
MCU2BOOTLOADER = {
|
|
"MKL26Z64": "halfkay",
|
|
"MK20DX128": "halfkay",
|
|
"MK20DX256": "halfkay",
|
|
"MK66FX1M0": "halfkay",
|
|
"STM32F042": "stm32-dfu",
|
|
"STM32F072": "stm32-dfu",
|
|
"STM32F103": "stm32duino",
|
|
"STM32F303": "stm32-dfu",
|
|
"STM32F401": "stm32-dfu",
|
|
"STM32F405": "stm32-dfu",
|
|
"STM32F407": "stm32-dfu",
|
|
"STM32F411": "stm32-dfu",
|
|
"STM32F446": "stm32-dfu",
|
|
"STM32G431": "stm32-dfu",
|
|
"STM32G474": "stm32-dfu",
|
|
"STM32L412": "stm32-dfu",
|
|
"STM32L422": "stm32-dfu",
|
|
"STM32L432": "stm32-dfu",
|
|
"STM32L433": "stm32-dfu",
|
|
"STM32L442": "stm32-dfu",
|
|
"STM32L443": "stm32-dfu",
|
|
"GD32VF103": "gd32v-dfu",
|
|
"WB32F3G71": "wb32-dfu",
|
|
"WB32FQ95": "wb32-dfu",
|
|
"atmega16u2": "atmel-dfu",
|
|
"atmega32u2": "atmel-dfu",
|
|
"atmega16u4": "atmel-dfu",
|
|
"atmega32u4": "atmel-dfu",
|
|
"at90usb162": "atmel-dfu",
|
|
"at90usb646": "atmel-dfu",
|
|
"at90usb647": "atmel-dfu",
|
|
"at90usb1286": "atmel-dfu",
|
|
"at90usb1287": "atmel-dfu",
|
|
"atmega32a": "bootloadhid",
|
|
"atmega328p": "usbasploader",
|
|
"atmega328": "usbasploader",
|
|
}
|
|
|
|
# Common format strings
|
|
DATE_FORMAT = '%Y-%m-%d'
|
|
DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S %Z'
|
|
TIME_FORMAT = '%H:%M:%S'
|
|
|
|
# Used when generating matrix locations
|
|
COL_LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijilmnopqrstuvwxyz'
|
|
ROW_LETTERS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnop'
|
|
|
|
# Mapping between info.json and config.h keys
|
|
LED_INDICATORS = {
|
|
'caps_lock': 'LED_CAPS_LOCK_PIN',
|
|
'num_lock': 'LED_NUM_LOCK_PIN',
|
|
'scroll_lock': 'LED_SCROLL_LOCK_PIN',
|
|
}
|
|
|
|
# Constants that should match their counterparts in make
|
|
BUILD_DIR = environ.get('BUILD_DIR', '.build')
|
|
KEYBOARD_OUTPUT_PREFIX = f'{BUILD_DIR}/obj_'
|
|
|
|
# Headers for generated files
|
|
GPL2_HEADER_C_LIKE = f'''\
|
|
// Copyright {date.today().year} QMK
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
'''
|
|
|
|
GPL2_HEADER_SH_LIKE = f'''\
|
|
# Copyright {date.today().year} QMK
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
'''
|
|
|
|
GENERATED_HEADER_C_LIKE = '''\
|
|
/*******************************************************************************
|
|
88888888888 888 d8b .d888 d8b 888 d8b
|
|
888 888 Y8P d88P" Y8P 888 Y8P
|
|
888 888 888 888
|
|
888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
|
|
888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
|
|
888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
|
|
888 888 888 888 X88 888 888 888 Y8b. 888 X88
|
|
888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
|
|
888 888
|
|
888 888
|
|
888 888
|
|
.d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
|
|
d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
|
|
888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
|
|
Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
|
|
"Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
|
|
888
|
|
Y8b d88P
|
|
"Y88P"
|
|
*******************************************************************************/
|
|
'''
|
|
|
|
GENERATED_HEADER_SH_LIKE = '''\
|
|
################################################################################
|
|
#
|
|
# 88888888888 888 d8b .d888 d8b 888 d8b
|
|
# 888 888 Y8P d88P" Y8P 888 Y8P
|
|
# 888 888 888 888
|
|
# 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
|
|
# 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
|
|
# 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
|
|
# 888 888 888 888 X88 888 888 888 Y8b. 888 X88
|
|
# 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
|
|
#
|
|
# 888 888
|
|
# 888 888
|
|
# 888 888
|
|
# .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
|
|
# d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
|
|
# 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
|
|
# Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
|
|
# "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
|
|
# 888
|
|
# Y8b d88P
|
|
# "Y88P"
|
|
#
|
|
################################################################################
|
|
'''
|