constants.py 6.2 KB

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