constants.py 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. """Information that should be available to the python library.
  2. """
  3. from os import environ
  4. from datetime import date
  5. from pathlib import Path
  6. # The root of the qmk_firmware tree.
  7. QMK_FIRMWARE = Path.cwd()
  8. # Upstream repo url
  9. QMK_FIRMWARE_UPSTREAM = 'qmk/qmk_firmware'
  10. # This is the number of directories under `qmk_firmware/keyboards` that will be traversed. This is currently a limitation of our make system.
  11. MAX_KEYBOARD_SUBFOLDERS = 5
  12. # Supported processor types
  13. 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'
  14. LUFA_PROCESSORS = 'at90usb162', 'atmega16u2', 'atmega32u2', 'atmega16u4', 'atmega32u4', 'at90usb646', 'at90usb647', 'at90usb1286', 'at90usb1287', None
  15. VUSB_PROCESSORS = 'atmega32a', 'atmega328p', 'atmega328', 'attiny85'
  16. # Bootloaders of the supported processors
  17. MCU2BOOTLOADER = {
  18. "MKL26Z64": "halfkay",
  19. "MK20DX128": "halfkay",
  20. "MK20DX256": "halfkay",
  21. "MK66FX1M0": "halfkay",
  22. "STM32F042": "stm32-dfu",
  23. "STM32F072": "stm32-dfu",
  24. "STM32F103": "stm32duino",
  25. "STM32F303": "stm32-dfu",
  26. "STM32F401": "stm32-dfu",
  27. "STM32F405": "stm32-dfu",
  28. "STM32F407": "stm32-dfu",
  29. "STM32F411": "stm32-dfu",
  30. "STM32F446": "stm32-dfu",
  31. "STM32G431": "stm32-dfu",
  32. "STM32G474": "stm32-dfu",
  33. "STM32L412": "stm32-dfu",
  34. "STM32L422": "stm32-dfu",
  35. "STM32L432": "stm32-dfu",
  36. "STM32L433": "stm32-dfu",
  37. "STM32L442": "stm32-dfu",
  38. "STM32L443": "stm32-dfu",
  39. "GD32VF103": "gd32v-dfu",
  40. "WB32F3G71": "wb32-dfu",
  41. "WB32FQ95": "wb32-dfu",
  42. "atmega16u2": "atmel-dfu",
  43. "atmega32u2": "atmel-dfu",
  44. "atmega16u4": "atmel-dfu",
  45. "atmega32u4": "atmel-dfu",
  46. "at90usb162": "atmel-dfu",
  47. "at90usb646": "atmel-dfu",
  48. "at90usb647": "atmel-dfu",
  49. "at90usb1286": "atmel-dfu",
  50. "at90usb1287": "atmel-dfu",
  51. "atmega32a": "bootloadhid",
  52. "atmega328p": "usbasploader",
  53. "atmega328": "usbasploader",
  54. }
  55. # Map of legacy keycodes that can be automatically updated
  56. LEGACY_KEYCODES = { # Comment here is to force multiline formatting
  57. 'RESET': 'QK_BOOT'
  58. }
  59. # Common format strings
  60. DATE_FORMAT = '%Y-%m-%d'
  61. DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S %Z'
  62. TIME_FORMAT = '%H:%M:%S'
  63. # Used when generating matrix locations
  64. COL_LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijilmnopqrstuvwxyz'
  65. ROW_LETTERS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnop'
  66. # Mapping between info.json and config.h keys
  67. LED_INDICATORS = {
  68. 'caps_lock': 'LED_CAPS_LOCK_PIN',
  69. 'num_lock': 'LED_NUM_LOCK_PIN',
  70. 'scroll_lock': 'LED_SCROLL_LOCK_PIN',
  71. }
  72. # Constants that should match their counterparts in make
  73. BUILD_DIR = environ.get('BUILD_DIR', '.build')
  74. KEYBOARD_OUTPUT_PREFIX = f'{BUILD_DIR}/obj_'
  75. # Headers for generated files
  76. GPL2_HEADER_C_LIKE = f'''\
  77. // Copyright {date.today().year} QMK
  78. // SPDX-License-Identifier: GPL-2.0-or-later
  79. '''
  80. GPL2_HEADER_SH_LIKE = f'''\
  81. # Copyright {date.today().year} QMK
  82. # SPDX-License-Identifier: GPL-2.0-or-later
  83. '''
  84. GENERATED_HEADER_C_LIKE = '''\
  85. /*******************************************************************************
  86. 88888888888 888 d8b .d888 d8b 888 d8b
  87. 888 888 Y8P d88P" Y8P 888 Y8P
  88. 888 888 888 888
  89. 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
  90. 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
  91. 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
  92. 888 888 888 888 X88 888 888 888 Y8b. 888 X88
  93. 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
  94. 888 888
  95. 888 888
  96. 888 888
  97. .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
  98. d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
  99. 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
  100. Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
  101. "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
  102. 888
  103. Y8b d88P
  104. "Y88P"
  105. *******************************************************************************/
  106. '''
  107. GENERATED_HEADER_SH_LIKE = '''\
  108. ################################################################################
  109. #
  110. # 88888888888 888 d8b .d888 d8b 888 d8b
  111. # 888 888 Y8P d88P" Y8P 888 Y8P
  112. # 888 888 888 888
  113. # 888 88888b. 888 .d8888b 888888 888 888 .d88b. 888 .d8888b
  114. # 888 888 "88b 888 88K 888 888 888 d8P Y8b 888 88K
  115. # 888 888 888 888 "Y8888b. 888 888 888 88888888 888 "Y8888b.
  116. # 888 888 888 888 X88 888 888 888 Y8b. 888 X88
  117. # 888 888 888 888 88888P' 888 888 888 "Y8888 888 88888P'
  118. #
  119. # 888 888
  120. # 888 888
  121. # 888 888
  122. # .d88b. .d88b. 88888b. .d88b. 888d888 8888b. 888888 .d88b. .d88888
  123. # d88P"88b d8P Y8b 888 "88b d8P Y8b 888P" "88b 888 d8P Y8b d88" 888
  124. # 888 888 88888888 888 888 88888888 888 .d888888 888 88888888 888 888
  125. # Y88b 888 Y8b. 888 888 Y8b. 888 888 888 Y88b. Y8b. Y88b 888
  126. # "Y88888 "Y8888 888 888 "Y8888 888 "Y888888 "Y888 "Y8888 "Y88888
  127. # 888
  128. # Y8b d88P
  129. # "Y88P"
  130. #
  131. ################################################################################
  132. '''