From cedd49c59b5a822b6879485cdd412c7d803ae14a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 19 Jan 2025 17:07:11 +0000 Subject: [PATCH 01/23] Consolidate timer_elapsed implementations (#24830) --- platforms/avr/timer.c | 28 ---------------------------- platforms/chibios/timer.c | 8 -------- platforms/test/timer.c | 8 -------- platforms/timer.c | 8 ++++++++ quantum/debounce/tests/rules.mk | 1 + quantum/os_detection/tests/rules.mk | 1 + quantum/sequencer/tests/rules.mk | 1 + 7 files changed, 11 insertions(+), 44 deletions(-) diff --git a/platforms/avr/timer.c b/platforms/avr/timer.c index 26ba0e29fa2d..b2230ad84b91 100644 --- a/platforms/avr/timer.c +++ b/platforms/avr/timer.c @@ -125,34 +125,6 @@ inline uint32_t timer_read32(void) { return t; } -/** \brief timer elapsed - * - * FIXME: needs doc - */ -inline uint16_t timer_elapsed(uint16_t last) { - uint32_t t; - - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { - t = timer_count; - } - - return TIMER_DIFF_16((t & 0xFFFF), last); -} - -/** \brief timer elapsed32 - * - * FIXME: needs doc - */ -inline uint32_t timer_elapsed32(uint32_t last) { - uint32_t t; - - ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { - t = timer_count; - } - - return TIMER_DIFF_32(t, last); -} - // excecuted once per 1ms.(excess for just timer count?) #ifndef __AVR_ATmega32A__ # define TIMER_INTERRUPT_VECTOR TIMER0_COMPA_vect diff --git a/platforms/chibios/timer.c b/platforms/chibios/timer.c index a07cf5714f55..9f7eade83f03 100644 --- a/platforms/chibios/timer.c +++ b/platforms/chibios/timer.c @@ -118,11 +118,3 @@ uint32_t timer_read32(void) { return (uint32_t)TIME_I2MS(ticks) + ms_offset_copy; } - -uint16_t timer_elapsed(uint16_t last) { - return TIMER_DIFF_16(timer_read(), last); -} - -uint32_t timer_elapsed32(uint32_t last) { - return TIMER_DIFF_32(timer_read32(), last); -} diff --git a/platforms/test/timer.c b/platforms/test/timer.c index eb929d7dac6c..f5ee07fd57f1 100644 --- a/platforms/test/timer.c +++ b/platforms/test/timer.c @@ -60,14 +60,6 @@ uint32_t timer_read32(void) { return current_time; } -uint16_t timer_elapsed(uint16_t last) { - return TIMER_DIFF_16(timer_read(), last); -} - -uint32_t timer_elapsed32(uint32_t last) { - return TIMER_DIFF_32(timer_read32(), last); -} - void set_time(uint32_t t) { current_time = t; access_counter = 0; diff --git a/platforms/timer.c b/platforms/timer.c index 26038dcda329..ba2cf94d2bf8 100644 --- a/platforms/timer.c +++ b/platforms/timer.c @@ -6,3 +6,11 @@ // Generate out-of-line copies for inline functions defined in timer.h. extern inline fast_timer_t timer_read_fast(void); extern inline fast_timer_t timer_elapsed_fast(fast_timer_t last); + +uint16_t timer_elapsed(uint16_t last) { + return TIMER_DIFF_16(timer_read(), last); +} + +uint32_t timer_elapsed32(uint32_t last) { + return TIMER_DIFF_32(timer_read32(), last); +} diff --git a/quantum/debounce/tests/rules.mk b/quantum/debounce/tests/rules.mk index bbc362d4c7e4..d38b1cd3421d 100644 --- a/quantum/debounce/tests/rules.mk +++ b/quantum/debounce/tests/rules.mk @@ -16,6 +16,7 @@ DEBOUNCE_COMMON_DEFS := -DMATRIX_ROWS=4 -DMATRIX_COLS=10 -DDEBOUNCE=5 DEBOUNCE_COMMON_SRC := $(QUANTUM_PATH)/debounce/tests/debounce_test_common.cpp \ + $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c debounce_none_DEFS := $(DEBOUNCE_COMMON_DEFS) diff --git a/quantum/os_detection/tests/rules.mk b/quantum/os_detection/tests/rules.mk index 1b69b71ba9fa..2f31f5e39167 100644 --- a/quantum/os_detection/tests/rules.mk +++ b/quantum/os_detection/tests/rules.mk @@ -4,4 +4,5 @@ os_detection_DEFS += -DOS_DETECTION_DEBOUNCE=50 os_detection_SRC := \ $(QUANTUM_PATH)/os_detection/tests/os_detection.cpp \ $(QUANTUM_PATH)/os_detection.c \ + $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c diff --git a/quantum/sequencer/tests/rules.mk b/quantum/sequencer/tests/rules.mk index 611459e060e3..74b680ae31fd 100644 --- a/quantum/sequencer/tests/rules.mk +++ b/quantum/sequencer/tests/rules.mk @@ -8,4 +8,5 @@ sequencer_SRC := \ $(QUANTUM_PATH)/sequencer/tests/midi_mock.c \ $(QUANTUM_PATH)/sequencer/tests/sequencer_tests.cpp \ $(QUANTUM_PATH)/sequencer/sequencer.c \ + $(PLATFORM_PATH)/timer.c \ $(PLATFORM_PATH)/$(PLATFORM_KEY)/timer.c From 58aea4b4795d81fcf3fdfd236b08903d1ffeeaca Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 20 Jan 2025 10:24:28 +1100 Subject: [PATCH 02/23] `i2c_master`: remove deprecated functions (#24832) --- platforms/avr/drivers/i2c_master.h | 7 ------- platforms/chibios/drivers/i2c_master.h | 7 ------- 2 files changed, 14 deletions(-) diff --git a/platforms/avr/drivers/i2c_master.h b/platforms/avr/drivers/i2c_master.h index b797997619e2..258bb2b9bf22 100644 --- a/platforms/avr/drivers/i2c_master.h +++ b/platforms/avr/drivers/i2c_master.h @@ -21,13 +21,6 @@ #include -// ### DEPRECATED - DO NOT USE ### -#define i2c_writeReg(devaddr, regaddr, data, length, timeout) i2c_write_register(devaddr, regaddr, data, length, timeout) -#define i2c_writeReg16(devaddr, regaddr, data, length, timeout) i2c_write_register16(devaddr, regaddr, data, length, timeout) -#define i2c_readReg(devaddr, regaddr, data, length, timeout) i2c_read_register(devaddr, regaddr, data, length, timeout) -#define i2c_readReg16(devaddr, regaddr, data, length, timeout) i2c_read_register16(devaddr, regaddr, data, length, timeout) -// ############################### - #define I2C_READ 0x01 #define I2C_WRITE 0x00 diff --git a/platforms/chibios/drivers/i2c_master.h b/platforms/chibios/drivers/i2c_master.h index 132ffd14c071..2215f89ad2b3 100644 --- a/platforms/chibios/drivers/i2c_master.h +++ b/platforms/chibios/drivers/i2c_master.h @@ -26,13 +26,6 @@ #include -// ### DEPRECATED - DO NOT USE ### -#define i2c_writeReg(devaddr, regaddr, data, length, timeout) i2c_write_register(devaddr, regaddr, data, length, timeout) -#define i2c_writeReg16(devaddr, regaddr, data, length, timeout) i2c_write_register16(devaddr, regaddr, data, length, timeout) -#define i2c_readReg(devaddr, regaddr, data, length, timeout) i2c_read_register(devaddr, regaddr, data, length, timeout) -#define i2c_readReg16(devaddr, regaddr, data, length, timeout) i2c_read_register16(devaddr, regaddr, data, length, timeout) -// ############################### - typedef int16_t i2c_status_t; #define I2C_STATUS_SUCCESS (0) From d30cd87556e26f9b716d21a9bd799b271b96ebb4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 03:45:47 +0000 Subject: [PATCH 03/23] Update via2json layout macro searching (#24640) --- lib/python/qmk/cli/via2json.py | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/lib/python/qmk/cli/via2json.py b/lib/python/qmk/cli/via2json.py index 537e1026406d..0997e9ca9f8e 100755 --- a/lib/python/qmk/cli/via2json.py +++ b/lib/python/qmk/cli/via2json.py @@ -9,19 +9,15 @@ import qmk.path from qmk.info import info_json from qmk.json_encoders import KeymapJSONEncoder -from qmk.commands import parse_configurator_json, dump_lines -from qmk.keymap import generate_json, list_keymaps, locate_keymap, parse_keymap_c +from qmk.commands import dump_lines +from qmk.keymap import generate_json -def _find_via_layout_macro(keyboard): - keymap_layout = None - if 'via' in list_keymaps(keyboard): - keymap_path = locate_keymap(keyboard, 'via') - if keymap_path.suffix == '.json': - keymap_layout = parse_configurator_json(keymap_path)['layout'] - else: - keymap_layout = parse_keymap_c(keymap_path)['layers'][0]['layout'] - return keymap_layout +def _find_via_layout_macro(keyboard_data): + """Assume layout macro when only 1 is available + """ + layouts = list(keyboard_data['layouts'].keys()) + return layouts[0] if len(layouts) == 1 else None def _convert_macros(via_macros): @@ -130,20 +126,16 @@ def via2json(cli): This command uses the `qmk.keymap` module to generate a keymap.json from a VIA backup json. The generated keymap is written to stdout, or to a file if -o is provided. """ - # Find appropriate layout macro - keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(cli.args.keyboard) - if not keymap_layout: - cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.") - return False - # Load the VIA backup json with cli.args.filename.open('r') as fd: via_backup = json.load(fd) - # Generate keyboard metadata keyboard_data = info_json(cli.args.keyboard) - if not keyboard_data: - cli.log.error(f'LAYOUT macro {keymap_layout} is not a valid one for keyboard {cli.args.keyboard}!') + + # Find appropriate layout macro + keymap_layout = cli.args.layout if cli.args.layout else _find_via_layout_macro(keyboard_data) + if not keymap_layout: + cli.log.error(f"Couldn't find LAYOUT macro for keyboard {cli.args.keyboard}. Please specify it with the '-l' argument.") return False # Get keycode array From 7a0dbe36f384e9c38120ab02f70d80f07193f53c Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 04:55:01 +0000 Subject: [PATCH 04/23] Formally deprecate DEFAULT_FOLDER (#24836) --- data/mappings/info_rules.hjson | 1 + 1 file changed, 1 insertion(+) diff --git a/data/mappings/info_rules.hjson b/data/mappings/info_rules.hjson index 64972af63b0e..00685b5b5f5a 100644 --- a/data/mappings/info_rules.hjson +++ b/data/mappings/info_rules.hjson @@ -55,5 +55,6 @@ // Items we want flagged in lint "CTPC": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, "CONVERT_TO_PROTON_C": {"info_key": "_deprecated.ctpc", "deprecated": true, "replace_with": "CONVERT_TO=proton_c"}, + "DEFAULT_FOLDER": {"info_key": "_deprecated.default_folder", "deprecated": true}, "VIAL_ENABLE": {"info_key": "_invalid.vial", "invalid": true} } From 5c33ff8be4a61a3246df187486021b858fa7b55d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 15:24:14 +0000 Subject: [PATCH 05/23] Remove DEFAULT_FOLDER where keyboard aliases already exists (#24838) --- keyboards/aeboards/constellation/rules.mk | 1 - keyboards/bpiphany/pegasushoof/rules.mk | 1 - keyboards/dp3000/rules.mk | 1 - keyboards/eek/rules.mk | 1 - keyboards/exclusive/e85/rules.mk | 1 - keyboards/keebio/dsp40/rules.mk | 1 - keyboards/keycapsss/plaid_pad/rules.mk | 1 - keyboards/kprepublic/jj40/rules.mk | 1 - keyboards/kprepublic/jj50/rules.mk | 1 - keyboards/lfkeyboards/lfk78/rules.mk | 1 - keyboards/lfkeyboards/smk65/rules.mk | 1 - keyboards/mechlovin/adelais/rgb_led/rules.mk | 1 - keyboards/mechlovin/adelais/standard_led/rules.mk | 1 - keyboards/mechlovin/delphine/rules.mk | 1 - keyboards/mechlovin/hannah60rgb/rules.mk | 1 - keyboards/mechlovin/hannah910/rules.mk | 1 - keyboards/mechlovin/hex4b/rules.mk | 1 - keyboards/melgeek/z70ultra/rules.mk | 1 - keyboards/montsinger/rebound/rules.mk | 1 - keyboards/polilla/rules.mk | 1 - keyboards/primekb/prime_l/rules.mk | 1 - keyboards/projectkb/alice/rules.mk | 1 - keyboards/rgbkb/pan/rev1/rules.mk | 2 -- keyboards/tkw/stoutgat/v2/rules.mk | 1 - keyboards/whale/sk/rules.mk | 1 - keyboards/ymdk/melody96/rules.mk | 1 - 26 files changed, 27 deletions(-) delete mode 100755 keyboards/aeboards/constellation/rules.mk delete mode 100644 keyboards/bpiphany/pegasushoof/rules.mk delete mode 100644 keyboards/dp3000/rules.mk delete mode 100644 keyboards/eek/rules.mk delete mode 100644 keyboards/exclusive/e85/rules.mk delete mode 100644 keyboards/keebio/dsp40/rules.mk delete mode 100644 keyboards/keycapsss/plaid_pad/rules.mk delete mode 100644 keyboards/kprepublic/jj40/rules.mk delete mode 100644 keyboards/kprepublic/jj50/rules.mk delete mode 100644 keyboards/lfkeyboards/lfk78/rules.mk delete mode 100644 keyboards/lfkeyboards/smk65/rules.mk delete mode 100644 keyboards/mechlovin/adelais/rgb_led/rules.mk delete mode 100644 keyboards/mechlovin/adelais/standard_led/rules.mk delete mode 100644 keyboards/mechlovin/delphine/rules.mk delete mode 100644 keyboards/mechlovin/hannah60rgb/rules.mk delete mode 100644 keyboards/mechlovin/hannah910/rules.mk delete mode 100644 keyboards/mechlovin/hex4b/rules.mk delete mode 100644 keyboards/melgeek/z70ultra/rules.mk delete mode 100644 keyboards/montsinger/rebound/rules.mk delete mode 100644 keyboards/polilla/rules.mk delete mode 100644 keyboards/primekb/prime_l/rules.mk delete mode 100644 keyboards/projectkb/alice/rules.mk delete mode 100644 keyboards/rgbkb/pan/rev1/rules.mk delete mode 100644 keyboards/tkw/stoutgat/v2/rules.mk delete mode 100644 keyboards/whale/sk/rules.mk delete mode 100644 keyboards/ymdk/melody96/rules.mk diff --git a/keyboards/aeboards/constellation/rules.mk b/keyboards/aeboards/constellation/rules.mk deleted file mode 100755 index bd2af5d22bf7..000000000000 --- a/keyboards/aeboards/constellation/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = aeboards/constellation/rev1 diff --git a/keyboards/bpiphany/pegasushoof/rules.mk b/keyboards/bpiphany/pegasushoof/rules.mk deleted file mode 100644 index 20adecaa08ac..000000000000 --- a/keyboards/bpiphany/pegasushoof/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=bpiphany/pegasushoof/2013 diff --git a/keyboards/dp3000/rules.mk b/keyboards/dp3000/rules.mk deleted file mode 100644 index 0f44aefd4458..000000000000 --- a/keyboards/dp3000/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dp3000/rev1 diff --git a/keyboards/eek/rules.mk b/keyboards/eek/rules.mk deleted file mode 100644 index 65b8265b5305..000000000000 --- a/keyboards/eek/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = eek/silk_down diff --git a/keyboards/exclusive/e85/rules.mk b/keyboards/exclusive/e85/rules.mk deleted file mode 100644 index 8eef46d0ab44..000000000000 --- a/keyboards/exclusive/e85/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = exclusive/e85/hotswap diff --git a/keyboards/keebio/dsp40/rules.mk b/keyboards/keebio/dsp40/rules.mk deleted file mode 100644 index 3e8e9be18c3b..000000000000 --- a/keyboards/keebio/dsp40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/dsp40/rev1 diff --git a/keyboards/keycapsss/plaid_pad/rules.mk b/keyboards/keycapsss/plaid_pad/rules.mk deleted file mode 100644 index 0ab7cc3141a1..000000000000 --- a/keyboards/keycapsss/plaid_pad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keycapsss/plaid_pad/rev1 diff --git a/keyboards/kprepublic/jj40/rules.mk b/keyboards/kprepublic/jj40/rules.mk deleted file mode 100644 index fa09523958c8..000000000000 --- a/keyboards/kprepublic/jj40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kprepublic/jj40/rev1 diff --git a/keyboards/kprepublic/jj50/rules.mk b/keyboards/kprepublic/jj50/rules.mk deleted file mode 100644 index 8f77c68db25d..000000000000 --- a/keyboards/kprepublic/jj50/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kprepublic/jj50/rev1 diff --git a/keyboards/lfkeyboards/lfk78/rules.mk b/keyboards/lfkeyboards/lfk78/rules.mk deleted file mode 100644 index 5ebd387c834d..000000000000 --- a/keyboards/lfkeyboards/lfk78/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lfkeyboards/lfk78/revj diff --git a/keyboards/lfkeyboards/smk65/rules.mk b/keyboards/lfkeyboards/smk65/rules.mk deleted file mode 100644 index b2d749766322..000000000000 --- a/keyboards/lfkeyboards/smk65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lfkeyboards/smk65/revb diff --git a/keyboards/mechlovin/adelais/rgb_led/rules.mk b/keyboards/mechlovin/adelais/rgb_led/rules.mk deleted file mode 100644 index 18047f12c7e6..000000000000 --- a/keyboards/mechlovin/adelais/rgb_led/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/rgb_led/rev1 diff --git a/keyboards/mechlovin/adelais/standard_led/rules.mk b/keyboards/mechlovin/adelais/standard_led/rules.mk deleted file mode 100644 index a1d2ba038de2..000000000000 --- a/keyboards/mechlovin/adelais/standard_led/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 diff --git a/keyboards/mechlovin/delphine/rules.mk b/keyboards/mechlovin/delphine/rules.mk deleted file mode 100644 index 819bce1cd3d5..000000000000 --- a/keyboards/mechlovin/delphine/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/delphine/mono_led diff --git a/keyboards/mechlovin/hannah60rgb/rules.mk b/keyboards/mechlovin/hannah60rgb/rules.mk deleted file mode 100644 index e876a56afb5e..000000000000 --- a/keyboards/mechlovin/hannah60rgb/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/hannah60rgb/rev1 diff --git a/keyboards/mechlovin/hannah910/rules.mk b/keyboards/mechlovin/hannah910/rules.mk deleted file mode 100644 index a35686719722..000000000000 --- a/keyboards/mechlovin/hannah910/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/hannah910/rev1 diff --git a/keyboards/mechlovin/hex4b/rules.mk b/keyboards/mechlovin/hex4b/rules.mk deleted file mode 100644 index e3d9ab46b44f..000000000000 --- a/keyboards/mechlovin/hex4b/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/hex4b/rev1 diff --git a/keyboards/melgeek/z70ultra/rules.mk b/keyboards/melgeek/z70ultra/rules.mk deleted file mode 100644 index 8cc384b91f76..000000000000 --- a/keyboards/melgeek/z70ultra/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = melgeek/z70ultra/rev1 diff --git a/keyboards/montsinger/rebound/rules.mk b/keyboards/montsinger/rebound/rules.mk deleted file mode 100644 index d277d184e189..000000000000 --- a/keyboards/montsinger/rebound/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = montsinger/rebound/rev1 diff --git a/keyboards/polilla/rules.mk b/keyboards/polilla/rules.mk deleted file mode 100644 index 0d72c40bb6a3..000000000000 --- a/keyboards/polilla/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = polilla/rev1 \ No newline at end of file diff --git a/keyboards/primekb/prime_l/rules.mk b/keyboards/primekb/prime_l/rules.mk deleted file mode 100644 index 235bfea92592..000000000000 --- a/keyboards/primekb/prime_l/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = primekb/prime_l/v1 diff --git a/keyboards/projectkb/alice/rules.mk b/keyboards/projectkb/alice/rules.mk deleted file mode 100644 index d6725769928b..000000000000 --- a/keyboards/projectkb/alice/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = projectkb/alice/rev1 diff --git a/keyboards/rgbkb/pan/rev1/rules.mk b/keyboards/rgbkb/pan/rev1/rules.mk deleted file mode 100644 index 4d3c0f6679a0..000000000000 --- a/keyboards/rgbkb/pan/rev1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# The default configuration is a atmega32a -DEFAULT_FOLDER = rgbkb/pan/rev1/32a diff --git a/keyboards/tkw/stoutgat/v2/rules.mk b/keyboards/tkw/stoutgat/v2/rules.mk deleted file mode 100644 index 1a660af26c98..000000000000 --- a/keyboards/tkw/stoutgat/v2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tkw/stoutgat/v2/f411 diff --git a/keyboards/whale/sk/rules.mk b/keyboards/whale/sk/rules.mk deleted file mode 100644 index 1a4ddedfa733..000000000000 --- a/keyboards/whale/sk/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = whale/sk/v3 diff --git a/keyboards/ymdk/melody96/rules.mk b/keyboards/ymdk/melody96/rules.mk deleted file mode 100644 index 806543977bf0..000000000000 --- a/keyboards/ymdk/melody96/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ymdk/melody96/soldered From 47575d4af16700e2dea8353c446dd4874e38d333 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 21 Jan 2025 02:30:19 +1100 Subject: [PATCH 06/23] LED drivers: remove deprecated defines (#24837) --- drivers/led/aw20216s.h | 260 ------------------ drivers/led/issi/is31fl3731-mono.h | 27 -- drivers/led/issi/is31fl3731.h | 27 -- drivers/led/issi/is31fl3733-mono.h | 32 --- drivers/led/issi/is31fl3733.h | 262 ------------------ drivers/led/issi/is31fl3736-mono.h | 140 ---------- drivers/led/issi/is31fl3736.h | 42 --- drivers/led/issi/is31fl3737-mono.h | 30 --- drivers/led/issi/is31fl3737.h | 203 -------------- drivers/led/issi/is31fl3741-mono.h | 401 --------------------------- drivers/led/issi/is31fl3741.h | 416 ----------------------------- drivers/led/issi/is31fl3743a.h | 211 --------------- drivers/led/snled27351-mono.h | 237 ---------------- drivers/led/snled27351.h | 249 ----------------- keyboards/zsa/voyager/voyager.c | 2 +- 15 files changed, 1 insertion(+), 2538 deletions(-) diff --git a/drivers/led/aw20216s.h b/drivers/led/aw20216s.h index b2c097125f98..79b980fcdb01 100644 --- a/drivers/led/aw20216s.h +++ b/drivers/led/aw20216s.h @@ -22,36 +22,6 @@ #include "gpio.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef AW_SCALING_MAX -# define AW20216S_SCALING_MAX AW_SCALING_MAX -#endif -#ifdef AW_GLOBAL_CURRENT_MAX -# define AW20216S_GLOBAL_CURRENT_MAX AW_GLOBAL_CURRENT_MAX -#endif -#ifdef AW_SPI_MODE -# define AW20216S_SPI_MODE AW_SPI_MODE -#endif -#ifdef AW_SPI_DIVISOR -# define AW20216S_SPI_DIVISOR AW_SPI_DIVISOR -#endif -#ifdef DRIVER_1_CS -# define AW20216S_CS_PIN_1 DRIVER_1_CS -#endif -#ifdef DRIVER_2_CS -# define AW20216S_CS_PIN_2 DRIVER_2_CS -#endif -#ifdef DRIVER_1_EN -# define AW20216S_EN_PIN DRIVER_1_EN -#endif -#ifdef AW20216S_EN_PIN_1 -# define AW20216S_EN_PIN AW20216S_EN_PIN_1 -#endif - -#define aw_led aw20216s_led_t -#define g_aw_leds g_aw20216s_leds -// ======== - #define AW20216S_ID (0b1010 << 4) #define AW20216S_WRITE 0 #define AW20216S_READ 1 @@ -328,233 +298,3 @@ void aw20216s_flush(void); #define SW12_CS16 0xD5 #define SW12_CS17 0xD6 #define SW12_CS18 0xD7 - -// DEPRECATED - DO NOT USE - -#define CS1_SW1 SW1_CS1 -#define CS2_SW1 SW1_CS2 -#define CS3_SW1 SW1_CS3 -#define CS4_SW1 SW1_CS4 -#define CS5_SW1 SW1_CS5 -#define CS6_SW1 SW1_CS6 -#define CS7_SW1 SW1_CS7 -#define CS8_SW1 SW1_CS8 -#define CS9_SW1 SW1_CS9 -#define CS10_SW1 SW1_CS10 -#define CS11_SW1 SW1_CS11 -#define CS12_SW1 SW1_CS12 -#define CS13_SW1 SW1_CS13 -#define CS14_SW1 SW1_CS14 -#define CS15_SW1 SW1_CS15 -#define CS16_SW1 SW1_CS16 -#define CS17_SW1 SW1_CS17 -#define CS18_SW1 SW1_CS18 - -#define CS1_SW2 SW2_CS1 -#define CS2_SW2 SW2_CS2 -#define CS3_SW2 SW2_CS3 -#define CS4_SW2 SW2_CS4 -#define CS5_SW2 SW2_CS5 -#define CS6_SW2 SW2_CS6 -#define CS7_SW2 SW2_CS7 -#define CS8_SW2 SW2_CS8 -#define CS9_SW2 SW2_CS9 -#define CS10_SW2 SW2_CS10 -#define CS11_SW2 SW2_CS11 -#define CS12_SW2 SW2_CS12 -#define CS13_SW2 SW2_CS13 -#define CS14_SW2 SW2_CS14 -#define CS15_SW2 SW2_CS15 -#define CS16_SW2 SW2_CS16 -#define CS17_SW2 SW2_CS17 -#define CS18_SW2 SW2_CS18 - -#define CS1_SW3 SW3_CS1 -#define CS2_SW3 SW3_CS2 -#define CS3_SW3 SW3_CS3 -#define CS4_SW3 SW3_CS4 -#define CS5_SW3 SW3_CS5 -#define CS6_SW3 SW3_CS6 -#define CS7_SW3 SW3_CS7 -#define CS8_SW3 SW3_CS8 -#define CS9_SW3 SW3_CS9 -#define CS10_SW3 SW3_CS10 -#define CS11_SW3 SW3_CS11 -#define CS12_SW3 SW3_CS12 -#define CS13_SW3 SW3_CS13 -#define CS14_SW3 SW3_CS14 -#define CS15_SW3 SW3_CS15 -#define CS16_SW3 SW3_CS16 -#define CS17_SW3 SW3_CS17 -#define CS18_SW3 SW3_CS18 - -#define CS1_SW4 SW4_CS1 -#define CS2_SW4 SW4_CS2 -#define CS3_SW4 SW4_CS3 -#define CS4_SW4 SW4_CS4 -#define CS5_SW4 SW4_CS5 -#define CS6_SW4 SW4_CS6 -#define CS7_SW4 SW4_CS7 -#define CS8_SW4 SW4_CS8 -#define CS9_SW4 SW4_CS9 -#define CS10_SW4 SW4_CS10 -#define CS11_SW4 SW4_CS11 -#define CS12_SW4 SW4_CS12 -#define CS13_SW4 SW4_CS13 -#define CS14_SW4 SW4_CS14 -#define CS15_SW4 SW4_CS15 -#define CS16_SW4 SW4_CS16 -#define CS17_SW4 SW4_CS17 -#define CS18_SW4 SW4_CS18 - -#define CS1_SW5 SW5_CS1 -#define CS2_SW5 SW5_CS2 -#define CS3_SW5 SW5_CS3 -#define CS4_SW5 SW5_CS4 -#define CS5_SW5 SW5_CS5 -#define CS6_SW5 SW5_CS6 -#define CS7_SW5 SW5_CS7 -#define CS8_SW5 SW5_CS8 -#define CS9_SW5 SW5_CS9 -#define CS10_SW5 SW5_CS10 -#define CS11_SW5 SW5_CS11 -#define CS12_SW5 SW5_CS12 -#define CS13_SW5 SW5_CS13 -#define CS14_SW5 SW5_CS14 -#define CS15_SW5 SW5_CS15 -#define CS16_SW5 SW5_CS16 -#define CS17_SW5 SW5_CS17 -#define CS18_SW5 SW5_CS18 - -#define CS1_SW6 SW6_CS1 -#define CS2_SW6 SW6_CS2 -#define CS3_SW6 SW6_CS3 -#define CS4_SW6 SW6_CS4 -#define CS5_SW6 SW6_CS5 -#define CS6_SW6 SW6_CS6 -#define CS7_SW6 SW6_CS7 -#define CS8_SW6 SW6_CS8 -#define CS9_SW6 SW6_CS9 -#define CS10_SW6 SW6_CS10 -#define CS11_SW6 SW6_CS11 -#define CS12_SW6 SW6_CS12 -#define CS13_SW6 SW6_CS13 -#define CS14_SW6 SW6_CS14 -#define CS15_SW6 SW6_CS15 -#define CS16_SW6 SW6_CS16 -#define CS17_SW6 SW6_CS17 -#define CS18_SW6 SW6_CS18 - -#define CS1_SW7 SW7_CS1 -#define CS2_SW7 SW7_CS2 -#define CS3_SW7 SW7_CS3 -#define CS4_SW7 SW7_CS4 -#define CS5_SW7 SW7_CS5 -#define CS6_SW7 SW7_CS6 -#define CS7_SW7 SW7_CS7 -#define CS8_SW7 SW7_CS8 -#define CS9_SW7 SW7_CS9 -#define CS10_SW7 SW7_CS10 -#define CS11_SW7 SW7_CS11 -#define CS12_SW7 SW7_CS12 -#define CS13_SW7 SW7_CS13 -#define CS14_SW7 SW7_CS14 -#define CS15_SW7 SW7_CS15 -#define CS16_SW7 SW7_CS16 -#define CS17_SW7 SW7_CS17 -#define CS18_SW7 SW7_CS18 - -#define CS1_SW8 SW8_CS1 -#define CS2_SW8 SW8_CS2 -#define CS3_SW8 SW8_CS3 -#define CS4_SW8 SW8_CS4 -#define CS5_SW8 SW8_CS5 -#define CS6_SW8 SW8_CS6 -#define CS7_SW8 SW8_CS7 -#define CS8_SW8 SW8_CS8 -#define CS9_SW8 SW8_CS9 -#define CS10_SW8 SW8_CS10 -#define CS11_SW8 SW8_CS11 -#define CS12_SW8 SW8_CS12 -#define CS13_SW8 SW8_CS13 -#define CS14_SW8 SW8_CS14 -#define CS15_SW8 SW8_CS15 -#define CS16_SW8 SW8_CS16 -#define CS17_SW8 SW8_CS17 -#define CS18_SW8 SW8_CS18 - -#define CS1_SW9 SW9_CS1 -#define CS2_SW9 SW9_CS2 -#define CS3_SW9 SW9_CS3 -#define CS4_SW9 SW9_CS4 -#define CS5_SW9 SW9_CS5 -#define CS6_SW9 SW9_CS6 -#define CS7_SW9 SW9_CS7 -#define CS8_SW9 SW9_CS8 -#define CS9_SW9 SW9_CS9 -#define CS10_SW9 SW9_CS10 -#define CS11_SW9 SW9_CS11 -#define CS12_SW9 SW9_CS12 -#define CS13_SW9 SW9_CS13 -#define CS14_SW9 SW9_CS14 -#define CS15_SW9 SW9_CS15 -#define CS16_SW9 SW9_CS16 -#define CS17_SW9 SW9_CS17 -#define CS18_SW9 SW9_CS18 - -#define CS1_SW10 SW10_CS1 -#define CS2_SW10 SW10_CS2 -#define CS3_SW10 SW10_CS3 -#define CS4_SW10 SW10_CS4 -#define CS5_SW10 SW10_CS5 -#define CS6_SW10 SW10_CS6 -#define CS7_SW10 SW10_CS7 -#define CS8_SW10 SW10_CS8 -#define CS9_SW10 SW10_CS9 -#define CS10_SW10 SW10_CS10 -#define CS11_SW10 SW10_CS11 -#define CS12_SW10 SW10_CS12 -#define CS13_SW10 SW10_CS13 -#define CS14_SW10 SW10_CS14 -#define CS15_SW10 SW10_CS15 -#define CS16_SW10 SW10_CS16 -#define CS17_SW10 SW10_CS17 -#define CS18_SW10 SW10_CS18 - -#define CS1_SW11 SW11_CS1 -#define CS2_SW11 SW11_CS2 -#define CS3_SW11 SW11_CS3 -#define CS4_SW11 SW11_CS4 -#define CS5_SW11 SW11_CS5 -#define CS6_SW11 SW11_CS6 -#define CS7_SW11 SW11_CS7 -#define CS8_SW11 SW11_CS8 -#define CS9_SW11 SW11_CS9 -#define CS10_SW11 SW11_CS10 -#define CS11_SW11 SW11_CS11 -#define CS12_SW11 SW11_CS12 -#define CS13_SW11 SW11_CS13 -#define CS14_SW11 SW11_CS14 -#define CS15_SW11 SW11_CS15 -#define CS16_SW11 SW11_CS16 -#define CS17_SW11 SW11_CS17 -#define CS18_SW11 SW11_CS18 - -#define CS1_SW12 SW12_CS1 -#define CS2_SW12 SW12_CS2 -#define CS3_SW12 SW12_CS3 -#define CS4_SW12 SW12_CS4 -#define CS5_SW12 SW12_CS5 -#define CS6_SW12 SW12_CS6 -#define CS7_SW12 SW12_CS7 -#define CS8_SW12 SW12_CS8 -#define CS9_SW12 SW12_CS9 -#define CS10_SW12 SW12_CS10 -#define CS11_SW12 SW12_CS11 -#define CS12_SW12 SW12_CS12 -#define CS13_SW12 SW12_CS13 -#define CS14_SW12 SW12_CS14 -#define CS15_SW12 SW12_CS15 -#define CS16_SW12 SW12_CS16 -#define CS17_SW12 SW12_CS17 -#define CS18_SW12 SW12_CS18 diff --git a/drivers/led/issi/is31fl3731-mono.h b/drivers/led/issi/is31fl3731-mono.h index e6e107d309b1..cc59b45cb32b 100644 --- a/drivers/led/issi/is31fl3731-mono.h +++ b/drivers/led/issi/is31fl3731-mono.h @@ -23,33 +23,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef LED_DRIVER_ADDR_1 -# define IS31FL3731_I2C_ADDRESS_1 LED_DRIVER_ADDR_1 -#endif -#ifdef LED_DRIVER_ADDR_2 -# define IS31FL3731_I2C_ADDRESS_2 LED_DRIVER_ADDR_2 -#endif -#ifdef LED_DRIVER_ADDR_3 -# define IS31FL3731_I2C_ADDRESS_3 LED_DRIVER_ADDR_3 -#endif -#ifdef LED_DRIVER_ADDR_4 -# define IS31FL3731_I2C_ADDRESS_4 LED_DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_3731_DEGHOST -# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST -#endif - -#define is31_led is31fl3731_led_t -#define g_is31_leds g_is31fl3731_leds -// ======== - #define IS31FL3731_REG_COMMAND 0xFD #define IS31FL3731_COMMAND_FRAME_1 0x00 #define IS31FL3731_COMMAND_FRAME_2 0x01 diff --git a/drivers/led/issi/is31fl3731.h b/drivers/led/issi/is31fl3731.h index dc229c876dc9..947b7dc8e9a7 100644 --- a/drivers/led/issi/is31fl3731.h +++ b/drivers/led/issi/is31fl3731.h @@ -22,33 +22,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3731_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3731_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3731_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3731_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3731_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3731_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_3731_DEGHOST -# define IS31FL3731_DEGHOST ISSI_3731_DEGHOST -#endif - -#define is31_led is31fl3731_led_t -#define g_is31_leds g_is31fl3731_leds -// ======== - #define IS31FL3731_REG_COMMAND 0xFD #define IS31FL3731_COMMAND_FRAME_1 0x00 #define IS31FL3731_COMMAND_FRAME_2 0x01 diff --git a/drivers/led/issi/is31fl3733-mono.h b/drivers/led/issi/is31fl3733-mono.h index 3786b2ed712b..40d340a70d55 100644 --- a/drivers/led/issi/is31fl3733-mono.h +++ b/drivers/led/issi/is31fl3733-mono.h @@ -25,38 +25,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef ISSI_TIMEOUT -# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_PWM_FREQUENCY -# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3733_led_t -#define g_is31_leds g_is31fl3733_leds - -#define PUR_0R IS31FL3733_PUR_0_OHM -#define PUR_05KR IS31FL3733_PUR_1K_OHM -#define PUR_3KR IS31FL3733_PUR_2K_OHM -#define PUR_4KR IS31FL3733_PUR_4K_OHM -#define PUR_8KR IS31FL3733_PUR_8K_OHM -#define PUR_16KR IS31FL3733_PUR_16K_OHM -#define PUR_32KR IS31FL3733_PUR_32K_OHM -// ======== - #define IS31FL3733_REG_INTERRUPT_MASK 0xF0 #define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3733.h b/drivers/led/issi/is31fl3733.h index fb60c76c2dec..8757d5ab0747 100644 --- a/drivers/led/issi/is31fl3733.h +++ b/drivers/led/issi/is31fl3733.h @@ -24,62 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3733_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3733_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3733_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3733_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef DRIVER_SYNC_1 -# define IS31FL3733_SYNC_1 DRIVER_SYNC_1 -#endif -#ifdef DRIVER_SYNC_2 -# define IS31FL3733_SYNC_2 DRIVER_SYNC_2 -#endif -#ifdef DRIVER_SYNC_3 -# define IS31FL3733_SYNC_3 DRIVER_SYNC_3 -#endif -#ifdef DRIVER_SYNC_4 -# define IS31FL3733_SYNC_4 DRIVER_SYNC_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3733_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3733_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_PWM_FREQUENCY -# define IS31FL3733_PWM_FREQUENCY ISSI_PWM_FREQUENCY -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3733_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3733_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3733_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3733_led_t -#define g_is31_leds g_is31fl3733_leds - -#define PUR_0R IS31FL3733_PUR_0_OHM -#define PUR_05KR IS31FL3733_PUR_1K_OHM -#define PUR_3KR IS31FL3733_PUR_2K_OHM -#define PUR_4KR IS31FL3733_PUR_4K_OHM -#define PUR_8KR IS31FL3733_PUR_8K_OHM -#define PUR_16KR IS31FL3733_PUR_16K_OHM -#define PUR_32KR IS31FL3733_PUR_32K_OHM -// ======== - #define IS31FL3733_REG_INTERRUPT_MASK 0xF0 #define IS31FL3733_REG_INTERRUPT_STATUS 0xF1 @@ -389,209 +333,3 @@ void is31fl3733_flush(void); #define SW12_CS14 0xBD #define SW12_CS15 0xBE #define SW12_CS16 0xBF - -// DEPRECATED - DO NOT USE - -#define A_1 SW1_CS1 -#define A_2 SW1_CS2 -#define A_3 SW1_CS3 -#define A_4 SW1_CS4 -#define A_5 SW1_CS5 -#define A_6 SW1_CS6 -#define A_7 SW1_CS7 -#define A_8 SW1_CS8 -#define A_9 SW1_CS9 -#define A_10 SW1_CS10 -#define A_11 SW1_CS11 -#define A_12 SW1_CS12 -#define A_13 SW1_CS13 -#define A_14 SW1_CS14 -#define A_15 SW1_CS15 -#define A_16 SW1_CS16 - -#define B_1 SW2_CS1 -#define B_2 SW2_CS2 -#define B_3 SW2_CS3 -#define B_4 SW2_CS4 -#define B_5 SW2_CS5 -#define B_6 SW2_CS6 -#define B_7 SW2_CS7 -#define B_8 SW2_CS8 -#define B_9 SW2_CS9 -#define B_10 SW2_CS10 -#define B_11 SW2_CS11 -#define B_12 SW2_CS12 -#define B_13 SW2_CS13 -#define B_14 SW2_CS14 -#define B_15 SW2_CS15 -#define B_16 SW2_CS16 - -#define C_1 SW3_CS1 -#define C_2 SW3_CS2 -#define C_3 SW3_CS3 -#define C_4 SW3_CS4 -#define C_5 SW3_CS5 -#define C_6 SW3_CS6 -#define C_7 SW3_CS7 -#define C_8 SW3_CS8 -#define C_9 SW3_CS9 -#define C_10 SW3_CS10 -#define C_11 SW3_CS11 -#define C_12 SW3_CS12 -#define C_13 SW3_CS13 -#define C_14 SW3_CS14 -#define C_15 SW3_CS15 -#define C_16 SW3_CS16 - -#define D_1 SW4_CS1 -#define D_2 SW4_CS2 -#define D_3 SW4_CS3 -#define D_4 SW4_CS4 -#define D_5 SW4_CS5 -#define D_6 SW4_CS6 -#define D_7 SW4_CS7 -#define D_8 SW4_CS8 -#define D_9 SW4_CS9 -#define D_10 SW4_CS10 -#define D_11 SW4_CS11 -#define D_12 SW4_CS12 -#define D_13 SW4_CS13 -#define D_14 SW4_CS14 -#define D_15 SW4_CS15 -#define D_16 SW4_CS16 - -#define E_1 SW5_CS1 -#define E_2 SW5_CS2 -#define E_3 SW5_CS3 -#define E_4 SW5_CS4 -#define E_5 SW5_CS5 -#define E_6 SW5_CS6 -#define E_7 SW5_CS7 -#define E_8 SW5_CS8 -#define E_9 SW5_CS9 -#define E_10 SW5_CS10 -#define E_11 SW5_CS11 -#define E_12 SW5_CS12 -#define E_13 SW5_CS13 -#define E_14 SW5_CS14 -#define E_15 SW5_CS15 -#define E_16 SW5_CS16 - -#define F_1 SW6_CS1 -#define F_2 SW6_CS2 -#define F_3 SW6_CS3 -#define F_4 SW6_CS4 -#define F_5 SW6_CS5 -#define F_6 SW6_CS6 -#define F_7 SW6_CS7 -#define F_8 SW6_CS8 -#define F_9 SW6_CS9 -#define F_10 SW6_CS10 -#define F_11 SW6_CS11 -#define F_12 SW6_CS12 -#define F_13 SW6_CS13 -#define F_14 SW6_CS14 -#define F_15 SW6_CS15 -#define F_16 SW6_CS16 - -#define G_1 SW7_CS1 -#define G_2 SW7_CS2 -#define G_3 SW7_CS3 -#define G_4 SW7_CS4 -#define G_5 SW7_CS5 -#define G_6 SW7_CS6 -#define G_7 SW7_CS7 -#define G_8 SW7_CS8 -#define G_9 SW7_CS9 -#define G_10 SW7_CS10 -#define G_11 SW7_CS11 -#define G_12 SW7_CS12 -#define G_13 SW7_CS13 -#define G_14 SW7_CS14 -#define G_15 SW7_CS15 -#define G_16 SW7_CS16 - -#define H_1 SW8_CS1 -#define H_2 SW8_CS2 -#define H_3 SW8_CS3 -#define H_4 SW8_CS4 -#define H_5 SW8_CS5 -#define H_6 SW8_CS6 -#define H_7 SW8_CS7 -#define H_8 SW8_CS8 -#define H_9 SW8_CS9 -#define H_10 SW8_CS10 -#define H_11 SW8_CS11 -#define H_12 SW8_CS12 -#define H_13 SW8_CS13 -#define H_14 SW8_CS14 -#define H_15 SW8_CS15 -#define H_16 SW8_CS16 - -#define I_1 SW9_CS1 -#define I_2 SW9_CS2 -#define I_3 SW9_CS3 -#define I_4 SW9_CS4 -#define I_5 SW9_CS5 -#define I_6 SW9_CS6 -#define I_7 SW9_CS7 -#define I_8 SW9_CS8 -#define I_9 SW9_CS9 -#define I_10 SW9_CS10 -#define I_11 SW9_CS11 -#define I_12 SW9_CS12 -#define I_13 SW9_CS13 -#define I_14 SW9_CS14 -#define I_15 SW9_CS15 -#define I_16 SW9_CS16 - -#define J_1 SW10_CS1 -#define J_2 SW10_CS2 -#define J_3 SW10_CS3 -#define J_4 SW10_CS4 -#define J_5 SW10_CS5 -#define J_6 SW10_CS6 -#define J_7 SW10_CS7 -#define J_8 SW10_CS8 -#define J_9 SW10_CS9 -#define J_10 SW10_CS10 -#define J_11 SW10_CS11 -#define J_12 SW10_CS12 -#define J_13 SW10_CS13 -#define J_14 SW10_CS14 -#define J_15 SW10_CS15 -#define J_16 SW10_CS16 - -#define K_1 SW11_CS1 -#define K_2 SW11_CS2 -#define K_3 SW11_CS3 -#define K_4 SW11_CS4 -#define K_5 SW11_CS5 -#define K_6 SW11_CS6 -#define K_7 SW11_CS7 -#define K_8 SW11_CS8 -#define K_9 SW11_CS9 -#define K_10 SW11_CS10 -#define K_11 SW11_CS11 -#define K_12 SW11_CS12 -#define K_13 SW11_CS13 -#define K_14 SW11_CS14 -#define K_15 SW11_CS15 -#define K_16 SW11_CS16 - -#define L_1 SW12_CS1 -#define L_2 SW12_CS2 -#define L_3 SW12_CS3 -#define L_4 SW12_CS4 -#define L_5 SW12_CS5 -#define L_6 SW12_CS6 -#define L_7 SW12_CS7 -#define L_8 SW12_CS8 -#define L_9 SW12_CS9 -#define L_10 SW12_CS10 -#define L_11 SW12_CS11 -#define L_12 SW12_CS12 -#define L_13 SW12_CS13 -#define L_14 SW12_CS14 -#define L_15 SW12_CS15 -#define L_16 SW12_CS16 diff --git a/drivers/led/issi/is31fl3736-mono.h b/drivers/led/issi/is31fl3736-mono.h index 91c2e0420b96..73441ea551f9 100644 --- a/drivers/led/issi/is31fl3736-mono.h +++ b/drivers/led/issi/is31fl3736-mono.h @@ -22,36 +22,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef ISSI_TIMEOUT -# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3736_led_t -#define g_is31_leds g_is31fl3736_leds - -#define PUR_0R IS31FL3736_PUR_0_OHM -#define PUR_05KR IS31FL3736_PUR_05K_OHM -#define PUR_1KR IS31FL3736_PUR_1K_OHM -#define PUR_2KR IS31FL3736_PUR_2K_OHM -#define PUR_4KR IS31FL3736_PUR_4K_OHM -#define PUR_8KR IS31FL3736_PUR_8K_OHM -#define PUR_16KR IS31FL3736_PUR_16K_OHM -#define PUR_32KR IS31FL3736_PUR_32K_OHM -// ======== - #define IS31FL3736_REG_INTERRUPT_MASK 0xF0 #define IS31FL3736_REG_INTERRUPT_STATUS 0xF1 @@ -259,113 +229,3 @@ void is31fl3736_flush(void); #define SW12_CS6 0xBA #define SW12_CS7 0xBC #define SW12_CS8 0xBE - -// DEPRECATED - DO NOT USE - -#define A_1 SW1_CS1 -#define A_2 SW1_CS2 -#define A_3 SW1_CS3 -#define A_4 SW1_CS4 -#define A_5 SW1_CS5 -#define A_6 SW1_CS6 -#define A_7 SW1_CS7 -#define A_8 SW1_CS8 - -#define B_1 SW2_CS1 -#define B_2 SW2_CS2 -#define B_3 SW2_CS3 -#define B_4 SW2_CS4 -#define B_5 SW2_CS5 -#define B_6 SW2_CS6 -#define B_7 SW2_CS7 -#define B_8 SW2_CS8 - -#define C_1 SW3_CS1 -#define C_2 SW3_CS2 -#define C_3 SW3_CS3 -#define C_4 SW3_CS4 -#define C_5 SW3_CS5 -#define C_6 SW3_CS6 -#define C_7 SW3_CS7 -#define C_8 SW3_CS8 - -#define D_1 SW4_CS1 -#define D_2 SW4_CS2 -#define D_3 SW4_CS3 -#define D_4 SW4_CS4 -#define D_5 SW4_CS5 -#define D_6 SW4_CS6 -#define D_7 SW4_CS7 -#define D_8 SW4_CS8 - -#define E_1 SW5_CS1 -#define E_2 SW5_CS2 -#define E_3 SW5_CS3 -#define E_4 SW5_CS4 -#define E_5 SW5_CS5 -#define E_6 SW5_CS6 -#define E_7 SW5_CS7 -#define E_8 SW5_CS8 - -#define F_1 SW6_CS1 -#define F_2 SW6_CS2 -#define F_3 SW6_CS3 -#define F_4 SW6_CS4 -#define F_5 SW6_CS5 -#define F_6 SW6_CS6 -#define F_7 SW6_CS7 -#define F_8 SW6_CS8 - -#define G_1 SW7_CS1 -#define G_2 SW7_CS2 -#define G_3 SW7_CS3 -#define G_4 SW7_CS4 -#define G_5 SW7_CS5 -#define G_6 SW7_CS6 -#define G_7 SW7_CS7 -#define G_8 SW7_CS8 - -#define H_1 SW8_CS1 -#define H_2 SW8_CS2 -#define H_3 SW8_CS3 -#define H_4 SW8_CS4 -#define H_5 SW8_CS5 -#define H_6 SW8_CS6 -#define H_7 SW8_CS7 -#define H_8 SW8_CS8 - -#define I_1 SW9_CS1 -#define I_2 SW9_CS2 -#define I_3 SW9_CS3 -#define I_4 SW9_CS4 -#define I_5 SW9_CS5 -#define I_6 SW9_CS6 -#define I_7 SW9_CS7 -#define I_8 SW9_CS8 - -#define J_1 SW10_CS1 -#define J_2 SW10_CS2 -#define J_3 SW10_CS3 -#define J_4 SW10_CS4 -#define J_5 SW10_CS5 -#define J_6 SW10_CS6 -#define J_7 SW10_CS7 -#define J_8 SW10_CS8 - -#define K_1 SW11_CS1 -#define K_2 SW11_CS2 -#define K_3 SW11_CS3 -#define K_4 SW11_CS4 -#define K_5 SW11_CS5 -#define K_6 SW11_CS6 -#define K_7 SW11_CS7 -#define K_8 SW11_CS8 - -#define L_1 SW12_CS1 -#define L_2 SW12_CS2 -#define L_3 SW12_CS3 -#define L_4 SW12_CS4 -#define L_5 SW12_CS5 -#define L_6 SW12_CS6 -#define L_7 SW12_CS7 -#define L_8 SW12_CS8 diff --git a/drivers/led/issi/is31fl3736.h b/drivers/led/issi/is31fl3736.h index dae7b3c81215..f0eabad819c3 100644 --- a/drivers/led/issi/is31fl3736.h +++ b/drivers/led/issi/is31fl3736.h @@ -22,48 +22,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3736_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3736_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3736_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3736_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3736_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3736_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3736_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3736_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3736_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3736_led_t -#define g_is31_leds g_is31fl3736_leds - -#define PUR_0R IS31FL3736_PUR_0_OHM -#define PUR_05KR IS31FL3736_PUR_0K5_OHM -#define PUR_1KR IS31FL3736_PUR_1K_OHM -#define PUR_2KR IS31FL3736_PUR_2K_OHM -#define PUR_4KR IS31FL3736_PUR_4K_OHM -#define PUR_8KR IS31FL3736_PUR_8K_OHM -#define PUR_16KR IS31FL3736_PUR_16K_OHM -#define PUR_32KR IS31FL3736_PUR_32K_OHM -// ======== - #define IS31FL3736_REG_INTERRUPT_MASK 0xF0 #define IS31FL3736_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3737-mono.h b/drivers/led/issi/is31fl3737-mono.h index 99151c1e7a72..40380f900627 100644 --- a/drivers/led/issi/is31fl3737-mono.h +++ b/drivers/led/issi/is31fl3737-mono.h @@ -24,36 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef ISSI_TIMEOUT -# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_PWM_FREQUENCY -# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define PUR_0R IS31FL3737_PUR_0_OHM -#define PUR_05KR IS31FL3737_PUR_0K5_OHM -#define PUR_1KR IS31FL3737_PUR_1K_OHM -#define PUR_2KR IS31FL3737_PUR_2K_OHM -#define PUR_4KR IS31FL3737_PUR_4K_OHM -#define PUR_8KR IS31FL3737_PUR_8K_OHM -#define PUR_16KR IS31FL3737_PUR_16K_OHM -#define PUR_32KR IS31FL3737_PUR_32K_OHM -// ======== - #define IS31FL3737_REG_INTERRUPT_MASK 0xF0 #define IS31FL3737_REG_INTERRUPT_STATUS 0xF1 diff --git a/drivers/led/issi/is31fl3737.h b/drivers/led/issi/is31fl3737.h index 735a3a1e308b..c1a9306a87ea 100644 --- a/drivers/led/issi/is31fl3737.h +++ b/drivers/led/issi/is31fl3737.h @@ -24,51 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3737_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3737_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3737_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3737_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3737_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3737_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_PWM_FREQUENCY -# define IS31FL3737_PWM_FREQUENCY ISSI_PWM_FREQUENCY -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3737_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3737_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3737_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3737_led_t -#define g_is31_leds g_is31fl3737_leds - -#define PUR_0R IS31FL3737_PUR_0_OHM -#define PUR_05KR IS31FL3737_PUR_0K5_OHM -#define PUR_1KR IS31FL3737_PUR_1K_OHM -#define PUR_2KR IS31FL3737_PUR_2K_OHM -#define PUR_4KR IS31FL3737_PUR_4K_OHM -#define PUR_8KR IS31FL3737_PUR_8K_OHM -#define PUR_16KR IS31FL3737_PUR_16K_OHM -#define PUR_32KR IS31FL3737_PUR_32K_OHM -// ======== - #define IS31FL3737_REG_INTERRUPT_MASK 0xF0 #define IS31FL3737_REG_INTERRUPT_STATUS 0xF1 @@ -314,161 +269,3 @@ void is31fl3737_flush(void); #define SW12_CS10 0xBB #define SW12_CS11 0xBC #define SW12_CS12 0xBD - -// DEPRECATED - DO NOT USE - -#define A_1 SW1_CS1 -#define A_2 SW1_CS2 -#define A_3 SW1_CS3 -#define A_4 SW1_CS4 -#define A_5 SW1_CS5 -#define A_6 SW1_CS6 -#define A_7 SW1_CS7 -#define A_8 SW1_CS8 -#define A_9 SW1_CS9 -#define A_10 SW1_CS10 -#define A_11 SW1_CS11 -#define A_12 SW1_CS12 - -#define B_1 SW2_CS1 -#define B_2 SW2_CS2 -#define B_3 SW2_CS3 -#define B_4 SW2_CS4 -#define B_5 SW2_CS5 -#define B_6 SW2_CS6 -#define B_7 SW2_CS7 -#define B_8 SW2_CS8 -#define B_9 SW2_CS9 -#define B_10 SW2_CS10 -#define B_11 SW2_CS11 -#define B_12 SW2_CS12 - -#define C_1 SW3_CS1 -#define C_2 SW3_CS2 -#define C_3 SW3_CS3 -#define C_4 SW3_CS4 -#define C_5 SW3_CS5 -#define C_6 SW3_CS6 -#define C_7 SW3_CS7 -#define C_8 SW3_CS8 -#define C_9 SW3_CS9 -#define C_10 SW3_CS10 -#define C_11 SW3_CS11 -#define C_12 SW3_CS12 - -#define D_1 SW4_CS1 -#define D_2 SW4_CS2 -#define D_3 SW4_CS3 -#define D_4 SW4_CS4 -#define D_5 SW4_CS5 -#define D_6 SW4_CS6 -#define D_7 SW4_CS7 -#define D_8 SW4_CS8 -#define D_9 SW4_CS9 -#define D_10 SW4_CS10 -#define D_11 SW4_CS11 -#define D_12 SW4_CS12 - -#define E_1 SW5_CS1 -#define E_2 SW5_CS2 -#define E_3 SW5_CS3 -#define E_4 SW5_CS4 -#define E_5 SW5_CS5 -#define E_6 SW5_CS6 -#define E_7 SW5_CS7 -#define E_8 SW5_CS8 -#define E_9 SW5_CS9 -#define E_10 SW5_CS10 -#define E_11 SW5_CS11 -#define E_12 SW5_CS12 - -#define F_1 SW6_CS1 -#define F_2 SW6_CS2 -#define F_3 SW6_CS3 -#define F_4 SW6_CS4 -#define F_5 SW6_CS5 -#define F_6 SW6_CS6 -#define F_7 SW6_CS7 -#define F_8 SW6_CS8 -#define F_9 SW6_CS9 -#define F_10 SW6_CS10 -#define F_11 SW6_CS11 -#define F_12 SW6_CS12 - -#define G_1 SW7_CS1 -#define G_2 SW7_CS2 -#define G_3 SW7_CS3 -#define G_4 SW7_CS4 -#define G_5 SW7_CS5 -#define G_6 SW7_CS6 -#define G_7 SW7_CS7 -#define G_8 SW7_CS8 -#define G_9 SW7_CS9 -#define G_10 SW7_CS10 -#define G_11 SW7_CS11 -#define G_12 SW7_CS12 - -#define H_1 SW8_CS1 -#define H_2 SW8_CS2 -#define H_3 SW8_CS3 -#define H_4 SW8_CS4 -#define H_5 SW8_CS5 -#define H_6 SW8_CS6 -#define H_7 SW8_CS7 -#define H_8 SW8_CS8 -#define H_9 SW8_CS9 -#define H_10 SW8_CS10 -#define H_11 SW8_CS11 -#define H_12 SW8_CS12 - -#define I_1 SW9_CS1 -#define I_2 SW9_CS2 -#define I_3 SW9_CS3 -#define I_4 SW9_CS4 -#define I_5 SW9_CS5 -#define I_6 SW9_CS6 -#define I_7 SW9_CS7 -#define I_8 SW9_CS8 -#define I_9 SW9_CS9 -#define I_10 SW9_CS10 -#define I_11 SW9_CS11 -#define I_12 SW9_CS12 - -#define J_1 SW10_CS1 -#define J_2 SW10_CS2 -#define J_3 SW10_CS3 -#define J_4 SW10_CS4 -#define J_5 SW10_CS5 -#define J_6 SW10_CS6 -#define J_7 SW10_CS7 -#define J_8 SW10_CS8 -#define J_9 SW10_CS9 -#define J_10 SW10_CS10 -#define J_11 SW10_CS11 -#define J_12 SW10_CS12 - -#define K_1 SW11_CS1 -#define K_2 SW11_CS2 -#define K_3 SW11_CS3 -#define K_4 SW11_CS4 -#define K_5 SW11_CS5 -#define K_6 SW11_CS6 -#define K_7 SW11_CS7 -#define K_8 SW11_CS8 -#define K_9 SW11_CS9 -#define K_10 SW11_CS10 -#define K_11 SW11_CS11 -#define K_12 SW11_CS12 - -#define L_1 SW12_CS1 -#define L_2 SW12_CS2 -#define L_3 SW12_CS3 -#define L_4 SW12_CS4 -#define L_5 SW12_CS5 -#define L_6 SW12_CS6 -#define L_7 SW12_CS7 -#define L_8 SW12_CS8 -#define L_9 SW12_CS9 -#define L_10 SW12_CS10 -#define L_11 SW12_CS11 -#define L_12 SW12_CS12 diff --git a/drivers/led/issi/is31fl3741-mono.h b/drivers/led/issi/is31fl3741-mono.h index 6d4f70b1b354..d8797bda3281 100644 --- a/drivers/led/issi/is31fl3741-mono.h +++ b/drivers/led/issi/is31fl3741-mono.h @@ -24,36 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef ISSI_TIMEOUT -# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_CONFIGURATION -# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define PUR_0R IS31FL3741_PUR_0_OHM -#define PUR_05KR IS31FL3741_PUR_0K5_OHM -#define PUR_1KR IS31FL3741_PUR_1K_OHM -#define PUR_2KR IS31FL3741_PUR_2K_OHM -#define PUR_4KR IS31FL3741_PUR_4K_OHM -#define PUR_8KR IS31FL3741_PUR_8K_OHM -#define PUR_16KR IS31FL3741_PUR_16K_OHM -#define PUR_32KR IS31FL3741_PUR_32K_OHM -// ======== - #define IS31FL3741_REG_INTERRUPT_MASK 0xF0 #define IS31FL3741_REG_INTERRUPT_STATUS 0xF1 #define IS31FL3741_REG_ID 0xFC @@ -514,374 +484,3 @@ void is31fl3741_flush(void); #define SW9_CS37 0x1A8 #define SW9_CS38 0x1A9 #define SW9_CS39 0x1AA - -// DEPRECATED - DO NOT USE - -#define CS1_SW1 SW1_CS1 -#define CS2_SW1 SW1_CS2 -#define CS3_SW1 SW1_CS3 -#define CS4_SW1 SW1_CS4 -#define CS5_SW1 SW1_CS5 -#define CS6_SW1 SW1_CS6 -#define CS7_SW1 SW1_CS7 -#define CS8_SW1 SW1_CS8 -#define CS9_SW1 SW1_CS9 -#define CS10_SW1 SW1_CS10 -#define CS11_SW1 SW1_CS11 -#define CS12_SW1 SW1_CS12 -#define CS13_SW1 SW1_CS13 -#define CS14_SW1 SW1_CS14 -#define CS15_SW1 SW1_CS15 -#define CS16_SW1 SW1_CS16 -#define CS17_SW1 SW1_CS17 -#define CS18_SW1 SW1_CS18 -#define CS19_SW1 SW1_CS19 -#define CS20_SW1 SW1_CS20 -#define CS21_SW1 SW1_CS21 -#define CS22_SW1 SW1_CS22 -#define CS23_SW1 SW1_CS23 -#define CS24_SW1 SW1_CS24 -#define CS25_SW1 SW1_CS25 -#define CS26_SW1 SW1_CS26 -#define CS27_SW1 SW1_CS27 -#define CS28_SW1 SW1_CS28 -#define CS29_SW1 SW1_CS29 -#define CS30_SW1 SW1_CS30 - -#define CS1_SW2 SW2_CS1 -#define CS2_SW2 SW2_CS2 -#define CS3_SW2 SW2_CS3 -#define CS4_SW2 SW2_CS4 -#define CS5_SW2 SW2_CS5 -#define CS6_SW2 SW2_CS6 -#define CS7_SW2 SW2_CS7 -#define CS8_SW2 SW2_CS8 -#define CS9_SW2 SW2_CS9 -#define CS10_SW2 SW2_CS10 -#define CS11_SW2 SW2_CS11 -#define CS12_SW2 SW2_CS12 -#define CS13_SW2 SW2_CS13 -#define CS14_SW2 SW2_CS14 -#define CS15_SW2 SW2_CS15 -#define CS16_SW2 SW2_CS16 -#define CS17_SW2 SW2_CS17 -#define CS18_SW2 SW2_CS18 -#define CS19_SW2 SW2_CS19 -#define CS20_SW2 SW2_CS20 -#define CS21_SW2 SW2_CS21 -#define CS22_SW2 SW2_CS22 -#define CS23_SW2 SW2_CS23 -#define CS24_SW2 SW2_CS24 -#define CS25_SW2 SW2_CS25 -#define CS26_SW2 SW2_CS26 -#define CS27_SW2 SW2_CS27 -#define CS28_SW2 SW2_CS28 -#define CS29_SW2 SW2_CS29 -#define CS30_SW2 SW2_CS30 - -#define CS1_SW3 SW3_CS1 -#define CS2_SW3 SW3_CS2 -#define CS3_SW3 SW3_CS3 -#define CS4_SW3 SW3_CS4 -#define CS5_SW3 SW3_CS5 -#define CS6_SW3 SW3_CS6 -#define CS7_SW3 SW3_CS7 -#define CS8_SW3 SW3_CS8 -#define CS9_SW3 SW3_CS9 -#define CS10_SW3 SW3_CS10 -#define CS11_SW3 SW3_CS11 -#define CS12_SW3 SW3_CS12 -#define CS13_SW3 SW3_CS13 -#define CS14_SW3 SW3_CS14 -#define CS15_SW3 SW3_CS15 -#define CS16_SW3 SW3_CS16 -#define CS17_SW3 SW3_CS17 -#define CS18_SW3 SW3_CS18 -#define CS19_SW3 SW3_CS19 -#define CS20_SW3 SW3_CS20 -#define CS21_SW3 SW3_CS21 -#define CS22_SW3 SW3_CS22 -#define CS23_SW3 SW3_CS23 -#define CS24_SW3 SW3_CS24 -#define CS25_SW3 SW3_CS25 -#define CS26_SW3 SW3_CS26 -#define CS27_SW3 SW3_CS27 -#define CS28_SW3 SW3_CS28 -#define CS29_SW3 SW3_CS29 -#define CS30_SW3 SW3_CS30 - -#define CS1_SW4 SW4_CS1 -#define CS2_SW4 SW4_CS2 -#define CS3_SW4 SW4_CS3 -#define CS4_SW4 SW4_CS4 -#define CS5_SW4 SW4_CS5 -#define CS6_SW4 SW4_CS6 -#define CS7_SW4 SW4_CS7 -#define CS8_SW4 SW4_CS8 -#define CS9_SW4 SW4_CS9 -#define CS10_SW4 SW4_CS10 -#define CS11_SW4 SW4_CS11 -#define CS12_SW4 SW4_CS12 -#define CS13_SW4 SW4_CS13 -#define CS14_SW4 SW4_CS14 -#define CS15_SW4 SW4_CS15 -#define CS16_SW4 SW4_CS16 -#define CS17_SW4 SW4_CS17 -#define CS18_SW4 SW4_CS18 -#define CS19_SW4 SW4_CS19 -#define CS20_SW4 SW4_CS20 -#define CS21_SW4 SW4_CS21 -#define CS22_SW4 SW4_CS22 -#define CS23_SW4 SW4_CS23 -#define CS24_SW4 SW4_CS24 -#define CS25_SW4 SW4_CS25 -#define CS26_SW4 SW4_CS26 -#define CS27_SW4 SW4_CS27 -#define CS28_SW4 SW4_CS28 -#define CS29_SW4 SW4_CS29 -#define CS30_SW4 SW4_CS30 - -#define CS1_SW5 SW5_CS1 -#define CS2_SW5 SW5_CS2 -#define CS3_SW5 SW5_CS3 -#define CS4_SW5 SW5_CS4 -#define CS5_SW5 SW5_CS5 -#define CS6_SW5 SW5_CS6 -#define CS7_SW5 SW5_CS7 -#define CS8_SW5 SW5_CS8 -#define CS9_SW5 SW5_CS9 -#define CS10_SW5 SW5_CS10 -#define CS11_SW5 SW5_CS11 -#define CS12_SW5 SW5_CS12 -#define CS13_SW5 SW5_CS13 -#define CS14_SW5 SW5_CS14 -#define CS15_SW5 SW5_CS15 -#define CS16_SW5 SW5_CS16 -#define CS17_SW5 SW5_CS17 -#define CS18_SW5 SW5_CS18 -#define CS19_SW5 SW5_CS19 -#define CS20_SW5 SW5_CS20 -#define CS21_SW5 SW5_CS21 -#define CS22_SW5 SW5_CS22 -#define CS23_SW5 SW5_CS23 -#define CS24_SW5 SW5_CS24 -#define CS25_SW5 SW5_CS25 -#define CS26_SW5 SW5_CS26 -#define CS27_SW5 SW5_CS27 -#define CS28_SW5 SW5_CS28 -#define CS29_SW5 SW5_CS29 -#define CS30_SW5 SW5_CS30 - -#define CS1_SW6 SW6_CS1 -#define CS2_SW6 SW6_CS2 -#define CS3_SW6 SW6_CS3 -#define CS4_SW6 SW6_CS4 -#define CS5_SW6 SW6_CS5 -#define CS6_SW6 SW6_CS6 -#define CS7_SW6 SW6_CS7 -#define CS8_SW6 SW6_CS8 -#define CS9_SW6 SW6_CS9 -#define CS10_SW6 SW6_CS10 -#define CS11_SW6 SW6_CS11 -#define CS12_SW6 SW6_CS12 -#define CS13_SW6 SW6_CS13 -#define CS14_SW6 SW6_CS14 -#define CS15_SW6 SW6_CS15 -#define CS16_SW6 SW6_CS16 -#define CS17_SW6 SW6_CS17 -#define CS18_SW6 SW6_CS18 -#define CS19_SW6 SW6_CS19 -#define CS20_SW6 SW6_CS20 -#define CS21_SW6 SW6_CS21 -#define CS22_SW6 SW6_CS22 -#define CS23_SW6 SW6_CS23 -#define CS24_SW6 SW6_CS24 -#define CS25_SW6 SW6_CS25 -#define CS26_SW6 SW6_CS26 -#define CS27_SW6 SW6_CS27 -#define CS28_SW6 SW6_CS28 -#define CS29_SW6 SW6_CS29 -#define CS30_SW6 SW6_CS30 - -#define CS1_SW7 SW7_CS1 -#define CS2_SW7 SW7_CS2 -#define CS3_SW7 SW7_CS3 -#define CS4_SW7 SW7_CS4 -#define CS5_SW7 SW7_CS5 -#define CS6_SW7 SW7_CS6 -#define CS7_SW7 SW7_CS7 -#define CS8_SW7 SW7_CS8 -#define CS9_SW7 SW7_CS9 -#define CS10_SW7 SW7_CS10 -#define CS11_SW7 SW7_CS11 -#define CS12_SW7 SW7_CS12 -#define CS13_SW7 SW7_CS13 -#define CS14_SW7 SW7_CS14 -#define CS15_SW7 SW7_CS15 -#define CS16_SW7 SW7_CS16 -#define CS17_SW7 SW7_CS17 -#define CS18_SW7 SW7_CS18 -#define CS19_SW7 SW7_CS19 -#define CS20_SW7 SW7_CS20 -#define CS21_SW7 SW7_CS21 -#define CS22_SW7 SW7_CS22 -#define CS23_SW7 SW7_CS23 -#define CS24_SW7 SW7_CS24 -#define CS25_SW7 SW7_CS25 -#define CS26_SW7 SW7_CS26 -#define CS27_SW7 SW7_CS27 -#define CS28_SW7 SW7_CS28 -#define CS29_SW7 SW7_CS29 -#define CS30_SW7 SW7_CS30 - -#define CS1_SW8 SW8_CS1 -#define CS2_SW8 SW8_CS2 -#define CS3_SW8 SW8_CS3 -#define CS4_SW8 SW8_CS4 -#define CS5_SW8 SW8_CS5 -#define CS6_SW8 SW8_CS6 -#define CS7_SW8 SW8_CS7 -#define CS8_SW8 SW8_CS8 -#define CS9_SW8 SW8_CS9 -#define CS10_SW8 SW8_CS10 -#define CS11_SW8 SW8_CS11 -#define CS12_SW8 SW8_CS12 -#define CS13_SW8 SW8_CS13 -#define CS14_SW8 SW8_CS14 -#define CS15_SW8 SW8_CS15 -#define CS16_SW8 SW8_CS16 -#define CS17_SW8 SW8_CS17 -#define CS18_SW8 SW8_CS18 -#define CS19_SW8 SW8_CS19 -#define CS20_SW8 SW8_CS20 -#define CS21_SW8 SW8_CS21 -#define CS22_SW8 SW8_CS22 -#define CS23_SW8 SW8_CS23 -#define CS24_SW8 SW8_CS24 -#define CS25_SW8 SW8_CS25 -#define CS26_SW8 SW8_CS26 -#define CS27_SW8 SW8_CS27 -#define CS28_SW8 SW8_CS28 -#define CS29_SW8 SW8_CS29 -#define CS30_SW8 SW8_CS30 - -#define CS1_SW9 SW9_CS1 -#define CS2_SW9 SW9_CS2 -#define CS3_SW9 SW9_CS3 -#define CS4_SW9 SW9_CS4 -#define CS5_SW9 SW9_CS5 -#define CS6_SW9 SW9_CS6 -#define CS7_SW9 SW9_CS7 -#define CS8_SW9 SW9_CS8 -#define CS9_SW9 SW9_CS9 -#define CS10_SW9 SW9_CS10 -#define CS11_SW9 SW9_CS11 -#define CS12_SW9 SW9_CS12 -#define CS13_SW9 SW9_CS13 -#define CS14_SW9 SW9_CS14 -#define CS15_SW9 SW9_CS15 -#define CS16_SW9 SW9_CS16 -#define CS17_SW9 SW9_CS17 -#define CS18_SW9 SW9_CS18 -#define CS19_SW9 SW9_CS19 -#define CS20_SW9 SW9_CS20 -#define CS21_SW9 SW9_CS21 -#define CS22_SW9 SW9_CS22 -#define CS23_SW9 SW9_CS23 -#define CS24_SW9 SW9_CS24 -#define CS25_SW9 SW9_CS25 -#define CS26_SW9 SW9_CS26 -#define CS27_SW9 SW9_CS27 -#define CS28_SW9 SW9_CS28 -#define CS29_SW9 SW9_CS29 -#define CS30_SW9 SW9_CS30 - -#define CS31_SW1 SW1_CS31 -#define CS32_SW1 SW1_CS32 -#define CS33_SW1 SW1_CS33 -#define CS34_SW1 SW1_CS34 -#define CS35_SW1 SW1_CS35 -#define CS36_SW1 SW1_CS36 -#define CS37_SW1 SW1_CS37 -#define CS38_SW1 SW1_CS38 -#define CS39_SW1 SW1_CS39 - -#define CS31_SW2 SW2_CS31 -#define CS32_SW2 SW2_CS32 -#define CS33_SW2 SW2_CS33 -#define CS34_SW2 SW2_CS34 -#define CS35_SW2 SW2_CS35 -#define CS36_SW2 SW2_CS36 -#define CS37_SW2 SW2_CS37 -#define CS38_SW2 SW2_CS38 -#define CS39_SW2 SW2_CS39 - -#define CS31_SW3 SW3_CS31 -#define CS32_SW3 SW3_CS32 -#define CS33_SW3 SW3_CS33 -#define CS34_SW3 SW3_CS34 -#define CS35_SW3 SW3_CS35 -#define CS36_SW3 SW3_CS36 -#define CS37_SW3 SW3_CS37 -#define CS38_SW3 SW3_CS38 -#define CS39_SW3 SW3_CS39 - -#define CS31_SW4 SW4_CS31 -#define CS32_SW4 SW4_CS32 -#define CS33_SW4 SW4_CS33 -#define CS34_SW4 SW4_CS34 -#define CS35_SW4 SW4_CS35 -#define CS36_SW4 SW4_CS36 -#define CS37_SW4 SW4_CS37 -#define CS38_SW4 SW4_CS38 -#define CS39_SW4 SW4_CS39 - -#define CS31_SW5 SW5_CS31 -#define CS32_SW5 SW5_CS32 -#define CS33_SW5 SW5_CS33 -#define CS34_SW5 SW5_CS34 -#define CS35_SW5 SW5_CS35 -#define CS36_SW5 SW5_CS36 -#define CS37_SW5 SW5_CS37 -#define CS38_SW5 SW5_CS38 -#define CS39_SW5 SW5_CS39 - -#define CS31_SW6 SW6_CS31 -#define CS32_SW6 SW6_CS32 -#define CS33_SW6 SW6_CS33 -#define CS34_SW6 SW6_CS34 -#define CS35_SW6 SW6_CS35 -#define CS36_SW6 SW6_CS36 -#define CS37_SW6 SW6_CS37 -#define CS38_SW6 SW6_CS38 -#define CS39_SW6 SW6_CS39 - -#define CS31_SW7 SW7_CS31 -#define CS32_SW7 SW7_CS32 -#define CS33_SW7 SW7_CS33 -#define CS34_SW7 SW7_CS34 -#define CS35_SW7 SW7_CS35 -#define CS36_SW7 SW7_CS36 -#define CS37_SW7 SW7_CS37 -#define CS38_SW7 SW7_CS38 -#define CS39_SW7 SW7_CS39 - -#define CS31_SW8 SW8_CS31 -#define CS32_SW8 SW8_CS32 -#define CS33_SW8 SW8_CS33 -#define CS34_SW8 SW8_CS34 -#define CS35_SW8 SW8_CS35 -#define CS36_SW8 SW8_CS36 -#define CS37_SW8 SW8_CS37 -#define CS38_SW8 SW8_CS38 -#define CS39_SW8 SW8_CS39 - -#define CS31_SW9 SW9_CS31 -#define CS32_SW9 SW9_CS32 -#define CS33_SW9 SW9_CS33 -#define CS34_SW9 SW9_CS34 -#define CS35_SW9 SW9_CS35 -#define CS36_SW9 SW9_CS36 -#define CS37_SW9 SW9_CS37 -#define CS38_SW9 SW9_CS38 -#define CS39_SW9 SW9_CS39 diff --git a/drivers/led/issi/is31fl3741.h b/drivers/led/issi/is31fl3741.h index cc9637a4e808..343dffe06890 100644 --- a/drivers/led/issi/is31fl3741.h +++ b/drivers/led/issi/is31fl3741.h @@ -24,51 +24,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define IS31FL3741_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define IS31FL3741_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define IS31FL3741_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define IS31FL3741_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef ISSI_TIMEOUT -# define IS31FL3741_I2C_TIMEOUT ISSI_TIMEOUT -#endif -#ifdef ISSI_PERSISTENCE -# define IS31FL3741_I2C_PERSISTENCE ISSI_PERSISTENCE -#endif -#ifdef ISSI_CONFIGURATION -# define IS31FL3741_CONFIGURATION ISSI_CONFIGURATION -#endif -#ifdef ISSI_SWPULLUP -# define IS31FL3741_SW_PULLUP ISSI_SWPULLUP -#endif -#ifdef ISSI_CSPULLUP -# define IS31FL3741_CS_PULLDOWN ISSI_CSPULLUP -#endif -#ifdef ISSI_GLOBALCURRENT -# define IS31FL3741_GLOBAL_CURRENT ISSI_GLOBALCURRENT -#endif - -#define is31_led is31fl3741_led_t -#define g_is31_leds g_is31fl3741_leds - -#define PUR_0R IS31FL3741_PUR_0_OHM -#define PUR_05KR IS31FL3741_PUR_0K5_OHM -#define PUR_1KR IS31FL3741_PUR_1K_OHM -#define PUR_2KR IS31FL3741_PUR_2K_OHM -#define PUR_4KR IS31FL3741_PUR_4K_OHM -#define PUR_8KR IS31FL3741_PUR_8K_OHM -#define PUR_16KR IS31FL3741_PUR_16K_OHM -#define PUR_32KR IS31FL3741_PUR_32K_OHM -// ======== - #define IS31FL3741_REG_INTERRUPT_MASK 0xF0 #define IS31FL3741_REG_INTERRUPT_STATUS 0xF1 #define IS31FL3741_REG_ID 0xFC @@ -531,374 +486,3 @@ void is31fl3741_flush(void); #define SW9_CS37 0x1A8 #define SW9_CS38 0x1A9 #define SW9_CS39 0x1AA - -// DEPRECATED - DO NOT USE - -#define CS1_SW1 SW1_CS1 -#define CS2_SW1 SW1_CS2 -#define CS3_SW1 SW1_CS3 -#define CS4_SW1 SW1_CS4 -#define CS5_SW1 SW1_CS5 -#define CS6_SW1 SW1_CS6 -#define CS7_SW1 SW1_CS7 -#define CS8_SW1 SW1_CS8 -#define CS9_SW1 SW1_CS9 -#define CS10_SW1 SW1_CS10 -#define CS11_SW1 SW1_CS11 -#define CS12_SW1 SW1_CS12 -#define CS13_SW1 SW1_CS13 -#define CS14_SW1 SW1_CS14 -#define CS15_SW1 SW1_CS15 -#define CS16_SW1 SW1_CS16 -#define CS17_SW1 SW1_CS17 -#define CS18_SW1 SW1_CS18 -#define CS19_SW1 SW1_CS19 -#define CS20_SW1 SW1_CS20 -#define CS21_SW1 SW1_CS21 -#define CS22_SW1 SW1_CS22 -#define CS23_SW1 SW1_CS23 -#define CS24_SW1 SW1_CS24 -#define CS25_SW1 SW1_CS25 -#define CS26_SW1 SW1_CS26 -#define CS27_SW1 SW1_CS27 -#define CS28_SW1 SW1_CS28 -#define CS29_SW1 SW1_CS29 -#define CS30_SW1 SW1_CS30 - -#define CS1_SW2 SW2_CS1 -#define CS2_SW2 SW2_CS2 -#define CS3_SW2 SW2_CS3 -#define CS4_SW2 SW2_CS4 -#define CS5_SW2 SW2_CS5 -#define CS6_SW2 SW2_CS6 -#define CS7_SW2 SW2_CS7 -#define CS8_SW2 SW2_CS8 -#define CS9_SW2 SW2_CS9 -#define CS10_SW2 SW2_CS10 -#define CS11_SW2 SW2_CS11 -#define CS12_SW2 SW2_CS12 -#define CS13_SW2 SW2_CS13 -#define CS14_SW2 SW2_CS14 -#define CS15_SW2 SW2_CS15 -#define CS16_SW2 SW2_CS16 -#define CS17_SW2 SW2_CS17 -#define CS18_SW2 SW2_CS18 -#define CS19_SW2 SW2_CS19 -#define CS20_SW2 SW2_CS20 -#define CS21_SW2 SW2_CS21 -#define CS22_SW2 SW2_CS22 -#define CS23_SW2 SW2_CS23 -#define CS24_SW2 SW2_CS24 -#define CS25_SW2 SW2_CS25 -#define CS26_SW2 SW2_CS26 -#define CS27_SW2 SW2_CS27 -#define CS28_SW2 SW2_CS28 -#define CS29_SW2 SW2_CS29 -#define CS30_SW2 SW2_CS30 - -#define CS1_SW3 SW3_CS1 -#define CS2_SW3 SW3_CS2 -#define CS3_SW3 SW3_CS3 -#define CS4_SW3 SW3_CS4 -#define CS5_SW3 SW3_CS5 -#define CS6_SW3 SW3_CS6 -#define CS7_SW3 SW3_CS7 -#define CS8_SW3 SW3_CS8 -#define CS9_SW3 SW3_CS9 -#define CS10_SW3 SW3_CS10 -#define CS11_SW3 SW3_CS11 -#define CS12_SW3 SW3_CS12 -#define CS13_SW3 SW3_CS13 -#define CS14_SW3 SW3_CS14 -#define CS15_SW3 SW3_CS15 -#define CS16_SW3 SW3_CS16 -#define CS17_SW3 SW3_CS17 -#define CS18_SW3 SW3_CS18 -#define CS19_SW3 SW3_CS19 -#define CS20_SW3 SW3_CS20 -#define CS21_SW3 SW3_CS21 -#define CS22_SW3 SW3_CS22 -#define CS23_SW3 SW3_CS23 -#define CS24_SW3 SW3_CS24 -#define CS25_SW3 SW3_CS25 -#define CS26_SW3 SW3_CS26 -#define CS27_SW3 SW3_CS27 -#define CS28_SW3 SW3_CS28 -#define CS29_SW3 SW3_CS29 -#define CS30_SW3 SW3_CS30 - -#define CS1_SW4 SW4_CS1 -#define CS2_SW4 SW4_CS2 -#define CS3_SW4 SW4_CS3 -#define CS4_SW4 SW4_CS4 -#define CS5_SW4 SW4_CS5 -#define CS6_SW4 SW4_CS6 -#define CS7_SW4 SW4_CS7 -#define CS8_SW4 SW4_CS8 -#define CS9_SW4 SW4_CS9 -#define CS10_SW4 SW4_CS10 -#define CS11_SW4 SW4_CS11 -#define CS12_SW4 SW4_CS12 -#define CS13_SW4 SW4_CS13 -#define CS14_SW4 SW4_CS14 -#define CS15_SW4 SW4_CS15 -#define CS16_SW4 SW4_CS16 -#define CS17_SW4 SW4_CS17 -#define CS18_SW4 SW4_CS18 -#define CS19_SW4 SW4_CS19 -#define CS20_SW4 SW4_CS20 -#define CS21_SW4 SW4_CS21 -#define CS22_SW4 SW4_CS22 -#define CS23_SW4 SW4_CS23 -#define CS24_SW4 SW4_CS24 -#define CS25_SW4 SW4_CS25 -#define CS26_SW4 SW4_CS26 -#define CS27_SW4 SW4_CS27 -#define CS28_SW4 SW4_CS28 -#define CS29_SW4 SW4_CS29 -#define CS30_SW4 SW4_CS30 - -#define CS1_SW5 SW5_CS1 -#define CS2_SW5 SW5_CS2 -#define CS3_SW5 SW5_CS3 -#define CS4_SW5 SW5_CS4 -#define CS5_SW5 SW5_CS5 -#define CS6_SW5 SW5_CS6 -#define CS7_SW5 SW5_CS7 -#define CS8_SW5 SW5_CS8 -#define CS9_SW5 SW5_CS9 -#define CS10_SW5 SW5_CS10 -#define CS11_SW5 SW5_CS11 -#define CS12_SW5 SW5_CS12 -#define CS13_SW5 SW5_CS13 -#define CS14_SW5 SW5_CS14 -#define CS15_SW5 SW5_CS15 -#define CS16_SW5 SW5_CS16 -#define CS17_SW5 SW5_CS17 -#define CS18_SW5 SW5_CS18 -#define CS19_SW5 SW5_CS19 -#define CS20_SW5 SW5_CS20 -#define CS21_SW5 SW5_CS21 -#define CS22_SW5 SW5_CS22 -#define CS23_SW5 SW5_CS23 -#define CS24_SW5 SW5_CS24 -#define CS25_SW5 SW5_CS25 -#define CS26_SW5 SW5_CS26 -#define CS27_SW5 SW5_CS27 -#define CS28_SW5 SW5_CS28 -#define CS29_SW5 SW5_CS29 -#define CS30_SW5 SW5_CS30 - -#define CS1_SW6 SW6_CS1 -#define CS2_SW6 SW6_CS2 -#define CS3_SW6 SW6_CS3 -#define CS4_SW6 SW6_CS4 -#define CS5_SW6 SW6_CS5 -#define CS6_SW6 SW6_CS6 -#define CS7_SW6 SW6_CS7 -#define CS8_SW6 SW6_CS8 -#define CS9_SW6 SW6_CS9 -#define CS10_SW6 SW6_CS10 -#define CS11_SW6 SW6_CS11 -#define CS12_SW6 SW6_CS12 -#define CS13_SW6 SW6_CS13 -#define CS14_SW6 SW6_CS14 -#define CS15_SW6 SW6_CS15 -#define CS16_SW6 SW6_CS16 -#define CS17_SW6 SW6_CS17 -#define CS18_SW6 SW6_CS18 -#define CS19_SW6 SW6_CS19 -#define CS20_SW6 SW6_CS20 -#define CS21_SW6 SW6_CS21 -#define CS22_SW6 SW6_CS22 -#define CS23_SW6 SW6_CS23 -#define CS24_SW6 SW6_CS24 -#define CS25_SW6 SW6_CS25 -#define CS26_SW6 SW6_CS26 -#define CS27_SW6 SW6_CS27 -#define CS28_SW6 SW6_CS28 -#define CS29_SW6 SW6_CS29 -#define CS30_SW6 SW6_CS30 - -#define CS1_SW7 SW7_CS1 -#define CS2_SW7 SW7_CS2 -#define CS3_SW7 SW7_CS3 -#define CS4_SW7 SW7_CS4 -#define CS5_SW7 SW7_CS5 -#define CS6_SW7 SW7_CS6 -#define CS7_SW7 SW7_CS7 -#define CS8_SW7 SW7_CS8 -#define CS9_SW7 SW7_CS9 -#define CS10_SW7 SW7_CS10 -#define CS11_SW7 SW7_CS11 -#define CS12_SW7 SW7_CS12 -#define CS13_SW7 SW7_CS13 -#define CS14_SW7 SW7_CS14 -#define CS15_SW7 SW7_CS15 -#define CS16_SW7 SW7_CS16 -#define CS17_SW7 SW7_CS17 -#define CS18_SW7 SW7_CS18 -#define CS19_SW7 SW7_CS19 -#define CS20_SW7 SW7_CS20 -#define CS21_SW7 SW7_CS21 -#define CS22_SW7 SW7_CS22 -#define CS23_SW7 SW7_CS23 -#define CS24_SW7 SW7_CS24 -#define CS25_SW7 SW7_CS25 -#define CS26_SW7 SW7_CS26 -#define CS27_SW7 SW7_CS27 -#define CS28_SW7 SW7_CS28 -#define CS29_SW7 SW7_CS29 -#define CS30_SW7 SW7_CS30 - -#define CS1_SW8 SW8_CS1 -#define CS2_SW8 SW8_CS2 -#define CS3_SW8 SW8_CS3 -#define CS4_SW8 SW8_CS4 -#define CS5_SW8 SW8_CS5 -#define CS6_SW8 SW8_CS6 -#define CS7_SW8 SW8_CS7 -#define CS8_SW8 SW8_CS8 -#define CS9_SW8 SW8_CS9 -#define CS10_SW8 SW8_CS10 -#define CS11_SW8 SW8_CS11 -#define CS12_SW8 SW8_CS12 -#define CS13_SW8 SW8_CS13 -#define CS14_SW8 SW8_CS14 -#define CS15_SW8 SW8_CS15 -#define CS16_SW8 SW8_CS16 -#define CS17_SW8 SW8_CS17 -#define CS18_SW8 SW8_CS18 -#define CS19_SW8 SW8_CS19 -#define CS20_SW8 SW8_CS20 -#define CS21_SW8 SW8_CS21 -#define CS22_SW8 SW8_CS22 -#define CS23_SW8 SW8_CS23 -#define CS24_SW8 SW8_CS24 -#define CS25_SW8 SW8_CS25 -#define CS26_SW8 SW8_CS26 -#define CS27_SW8 SW8_CS27 -#define CS28_SW8 SW8_CS28 -#define CS29_SW8 SW8_CS29 -#define CS30_SW8 SW8_CS30 - -#define CS1_SW9 SW9_CS1 -#define CS2_SW9 SW9_CS2 -#define CS3_SW9 SW9_CS3 -#define CS4_SW9 SW9_CS4 -#define CS5_SW9 SW9_CS5 -#define CS6_SW9 SW9_CS6 -#define CS7_SW9 SW9_CS7 -#define CS8_SW9 SW9_CS8 -#define CS9_SW9 SW9_CS9 -#define CS10_SW9 SW9_CS10 -#define CS11_SW9 SW9_CS11 -#define CS12_SW9 SW9_CS12 -#define CS13_SW9 SW9_CS13 -#define CS14_SW9 SW9_CS14 -#define CS15_SW9 SW9_CS15 -#define CS16_SW9 SW9_CS16 -#define CS17_SW9 SW9_CS17 -#define CS18_SW9 SW9_CS18 -#define CS19_SW9 SW9_CS19 -#define CS20_SW9 SW9_CS20 -#define CS21_SW9 SW9_CS21 -#define CS22_SW9 SW9_CS22 -#define CS23_SW9 SW9_CS23 -#define CS24_SW9 SW9_CS24 -#define CS25_SW9 SW9_CS25 -#define CS26_SW9 SW9_CS26 -#define CS27_SW9 SW9_CS27 -#define CS28_SW9 SW9_CS28 -#define CS29_SW9 SW9_CS29 -#define CS30_SW9 SW9_CS30 - -#define CS31_SW1 SW1_CS31 -#define CS32_SW1 SW1_CS32 -#define CS33_SW1 SW1_CS33 -#define CS34_SW1 SW1_CS34 -#define CS35_SW1 SW1_CS35 -#define CS36_SW1 SW1_CS36 -#define CS37_SW1 SW1_CS37 -#define CS38_SW1 SW1_CS38 -#define CS39_SW1 SW1_CS39 - -#define CS31_SW2 SW2_CS31 -#define CS32_SW2 SW2_CS32 -#define CS33_SW2 SW2_CS33 -#define CS34_SW2 SW2_CS34 -#define CS35_SW2 SW2_CS35 -#define CS36_SW2 SW2_CS36 -#define CS37_SW2 SW2_CS37 -#define CS38_SW2 SW2_CS38 -#define CS39_SW2 SW2_CS39 - -#define CS31_SW3 SW3_CS31 -#define CS32_SW3 SW3_CS32 -#define CS33_SW3 SW3_CS33 -#define CS34_SW3 SW3_CS34 -#define CS35_SW3 SW3_CS35 -#define CS36_SW3 SW3_CS36 -#define CS37_SW3 SW3_CS37 -#define CS38_SW3 SW3_CS38 -#define CS39_SW3 SW3_CS39 - -#define CS31_SW4 SW4_CS31 -#define CS32_SW4 SW4_CS32 -#define CS33_SW4 SW4_CS33 -#define CS34_SW4 SW4_CS34 -#define CS35_SW4 SW4_CS35 -#define CS36_SW4 SW4_CS36 -#define CS37_SW4 SW4_CS37 -#define CS38_SW4 SW4_CS38 -#define CS39_SW4 SW4_CS39 - -#define CS31_SW5 SW5_CS31 -#define CS32_SW5 SW5_CS32 -#define CS33_SW5 SW5_CS33 -#define CS34_SW5 SW5_CS34 -#define CS35_SW5 SW5_CS35 -#define CS36_SW5 SW5_CS36 -#define CS37_SW5 SW5_CS37 -#define CS38_SW5 SW5_CS38 -#define CS39_SW5 SW5_CS39 - -#define CS31_SW6 SW6_CS31 -#define CS32_SW6 SW6_CS32 -#define CS33_SW6 SW6_CS33 -#define CS34_SW6 SW6_CS34 -#define CS35_SW6 SW6_CS35 -#define CS36_SW6 SW6_CS36 -#define CS37_SW6 SW6_CS37 -#define CS38_SW6 SW6_CS38 -#define CS39_SW6 SW6_CS39 - -#define CS31_SW7 SW7_CS31 -#define CS32_SW7 SW7_CS32 -#define CS33_SW7 SW7_CS33 -#define CS34_SW7 SW7_CS34 -#define CS35_SW7 SW7_CS35 -#define CS36_SW7 SW7_CS36 -#define CS37_SW7 SW7_CS37 -#define CS38_SW7 SW7_CS38 -#define CS39_SW7 SW7_CS39 - -#define CS31_SW8 SW8_CS31 -#define CS32_SW8 SW8_CS32 -#define CS33_SW8 SW8_CS33 -#define CS34_SW8 SW8_CS34 -#define CS35_SW8 SW8_CS35 -#define CS36_SW8 SW8_CS36 -#define CS37_SW8 SW8_CS37 -#define CS38_SW8 SW8_CS38 -#define CS39_SW8 SW8_CS39 - -#define CS31_SW9 SW9_CS31 -#define CS32_SW9 SW9_CS32 -#define CS33_SW9 SW9_CS33 -#define CS34_SW9 SW9_CS34 -#define CS35_SW9 SW9_CS35 -#define CS36_SW9 SW9_CS36 -#define CS37_SW9 SW9_CS37 -#define CS38_SW9 SW9_CS38 -#define CS39_SW9 SW9_CS39 diff --git a/drivers/led/issi/is31fl3743a.h b/drivers/led/issi/is31fl3743a.h index 48aeab46abd1..bfff9040477b 100644 --- a/drivers/led/issi/is31fl3743a.h +++ b/drivers/led/issi/is31fl3743a.h @@ -328,214 +328,3 @@ void is31fl3743a_flush(void); #define SW11_CS16 0xC3 #define SW11_CS17 0xC4 #define SW11_CS18 0xC5 - -// DEPRECATED - DO NOT USE - -#define CS1_SW1 SW1_CS1 -#define CS2_SW1 SW1_CS2 -#define CS3_SW1 SW1_CS3 -#define CS4_SW1 SW1_CS4 -#define CS5_SW1 SW1_CS5 -#define CS6_SW1 SW1_CS6 -#define CS7_SW1 SW1_CS7 -#define CS8_SW1 SW1_CS8 -#define CS9_SW1 SW1_CS9 -#define CS10_SW1 SW1_CS10 -#define CS11_SW1 SW1_CS11 -#define CS12_SW1 SW1_CS12 -#define CS13_SW1 SW1_CS13 -#define CS14_SW1 SW1_CS14 -#define CS15_SW1 SW1_CS15 -#define CS16_SW1 SW1_CS16 -#define CS17_SW1 SW1_CS17 -#define CS18_SW1 SW1_CS18 - -#define CS1_SW2 SW2_CS1 -#define CS2_SW2 SW2_CS2 -#define CS3_SW2 SW2_CS3 -#define CS4_SW2 SW2_CS4 -#define CS5_SW2 SW2_CS5 -#define CS6_SW2 SW2_CS6 -#define CS7_SW2 SW2_CS7 -#define CS8_SW2 SW2_CS8 -#define CS9_SW2 SW2_CS9 -#define CS10_SW2 SW2_CS10 -#define CS11_SW2 SW2_CS11 -#define CS12_SW2 SW2_CS12 -#define CS13_SW2 SW2_CS13 -#define CS14_SW2 SW2_CS14 -#define CS15_SW2 SW2_CS15 -#define CS16_SW2 SW2_CS16 -#define CS17_SW2 SW2_CS17 -#define CS18_SW2 SW2_CS18 - -#define CS1_SW3 SW3_CS1 -#define CS2_SW3 SW3_CS2 -#define CS3_SW3 SW3_CS3 -#define CS4_SW3 SW3_CS4 -#define CS5_SW3 SW3_CS5 -#define CS6_SW3 SW3_CS6 -#define CS7_SW3 SW3_CS7 -#define CS8_SW3 SW3_CS8 -#define CS9_SW3 SW3_CS9 -#define CS10_SW3 SW3_CS10 -#define CS11_SW3 SW3_CS11 -#define CS12_SW3 SW3_CS12 -#define CS13_SW3 SW3_CS13 -#define CS14_SW3 SW3_CS14 -#define CS15_SW3 SW3_CS15 -#define CS16_SW3 SW3_CS16 -#define CS17_SW3 SW3_CS17 -#define CS18_SW3 SW3_CS18 - -#define CS1_SW4 SW4_CS1 -#define CS2_SW4 SW4_CS2 -#define CS3_SW4 SW4_CS3 -#define CS4_SW4 SW4_CS4 -#define CS5_SW4 SW4_CS5 -#define CS6_SW4 SW4_CS6 -#define CS7_SW4 SW4_CS7 -#define CS8_SW4 SW4_CS8 -#define CS9_SW4 SW4_CS9 -#define CS10_SW4 SW4_CS10 -#define CS11_SW4 SW4_CS11 -#define CS12_SW4 SW4_CS12 -#define CS13_SW4 SW4_CS13 -#define CS14_SW4 SW4_CS14 -#define CS15_SW4 SW4_CS15 -#define CS16_SW4 SW4_CS16 -#define CS17_SW4 SW4_CS17 -#define CS18_SW4 SW4_CS18 - -#define CS1_SW5 SW5_CS1 -#define CS2_SW5 SW5_CS2 -#define CS3_SW5 SW5_CS3 -#define CS4_SW5 SW5_CS4 -#define CS5_SW5 SW5_CS5 -#define CS6_SW5 SW5_CS6 -#define CS7_SW5 SW5_CS7 -#define CS8_SW5 SW5_CS8 -#define CS9_SW5 SW5_CS9 -#define CS10_SW5 SW5_CS10 -#define CS11_SW5 SW5_CS11 -#define CS12_SW5 SW5_CS12 -#define CS13_SW5 SW5_CS13 -#define CS14_SW5 SW5_CS14 -#define CS15_SW5 SW5_CS15 -#define CS16_SW5 SW5_CS16 -#define CS17_SW5 SW5_CS17 -#define CS18_SW5 SW5_CS18 - -#define CS1_SW6 SW6_CS1 -#define CS2_SW6 SW6_CS2 -#define CS3_SW6 SW6_CS3 -#define CS4_SW6 SW6_CS4 -#define CS5_SW6 SW6_CS5 -#define CS6_SW6 SW6_CS6 -#define CS7_SW6 SW6_CS7 -#define CS8_SW6 SW6_CS8 -#define CS9_SW6 SW6_CS9 -#define CS10_SW6 SW6_CS10 -#define CS11_SW6 SW6_CS11 -#define CS12_SW6 SW6_CS12 -#define CS13_SW6 SW6_CS13 -#define CS14_SW6 SW6_CS14 -#define CS15_SW6 SW6_CS15 -#define CS16_SW6 SW6_CS16 -#define CS17_SW6 SW6_CS17 -#define CS18_SW6 SW6_CS18 - -#define CS1_SW7 SW7_CS1 -#define CS2_SW7 SW7_CS2 -#define CS3_SW7 SW7_CS3 -#define CS4_SW7 SW7_CS4 -#define CS5_SW7 SW7_CS5 -#define CS6_SW7 SW7_CS6 -#define CS7_SW7 SW7_CS7 -#define CS8_SW7 SW7_CS8 -#define CS9_SW7 SW7_CS9 -#define CS10_SW7 SW7_CS10 -#define CS11_SW7 SW7_CS11 -#define CS12_SW7 SW7_CS12 -#define CS13_SW7 SW7_CS13 -#define CS14_SW7 SW7_CS14 -#define CS15_SW7 SW7_CS15 -#define CS16_SW7 SW7_CS16 -#define CS17_SW7 SW7_CS17 -#define CS18_SW7 SW7_CS18 - -#define CS1_SW8 SW8_CS1 -#define CS2_SW8 SW8_CS2 -#define CS3_SW8 SW8_CS3 -#define CS4_SW8 SW8_CS4 -#define CS5_SW8 SW8_CS5 -#define CS6_SW8 SW8_CS6 -#define CS7_SW8 SW8_CS7 -#define CS8_SW8 SW8_CS8 -#define CS9_SW8 SW8_CS9 -#define CS10_SW8 SW8_CS10 -#define CS11_SW8 SW8_CS11 -#define CS12_SW8 SW8_CS12 -#define CS13_SW8 SW8_CS13 -#define CS14_SW8 SW8_CS14 -#define CS15_SW8 SW8_CS15 -#define CS16_SW8 SW8_CS16 -#define CS17_SW8 SW8_CS17 -#define CS18_SW8 SW8_CS18 - -#define CS1_SW9 SW9_CS1 -#define CS2_SW9 SW9_CS2 -#define CS3_SW9 SW9_CS3 -#define CS4_SW9 SW9_CS4 -#define CS5_SW9 SW9_CS5 -#define CS6_SW9 SW9_CS6 -#define CS7_SW9 SW9_CS7 -#define CS8_SW9 SW9_CS8 -#define CS9_SW9 SW9_CS9 -#define CS10_SW9 SW9_CS10 -#define CS11_SW9 SW9_CS11 -#define CS12_SW9 SW9_CS12 -#define CS13_SW9 SW9_CS13 -#define CS14_SW9 SW9_CS14 -#define CS15_SW9 SW9_CS15 -#define CS16_SW9 SW9_CS16 -#define CS17_SW9 SW9_CS17 -#define CS18_SW9 SW9_CS18 - -#define CS1_SW10 SW10_CS1 -#define CS2_SW10 SW10_CS2 -#define CS3_SW10 SW10_CS3 -#define CS4_SW10 SW10_CS4 -#define CS5_SW10 SW10_CS5 -#define CS6_SW10 SW10_CS6 -#define CS7_SW10 SW10_CS7 -#define CS8_SW10 SW10_CS8 -#define CS9_SW10 SW10_CS9 -#define CS10_SW10 SW10_CS10 -#define CS11_SW10 SW10_CS11 -#define CS12_SW10 SW10_CS12 -#define CS13_SW10 SW10_CS13 -#define CS14_SW10 SW10_CS14 -#define CS15_SW10 SW10_CS15 -#define CS16_SW10 SW10_CS16 -#define CS17_SW10 SW10_CS17 -#define CS18_SW10 SW10_CS18 - -#define CS1_SW11 SW11_CS1 -#define CS2_SW11 SW11_CS2 -#define CS3_SW11 SW11_CS3 -#define CS4_SW11 SW11_CS4 -#define CS5_SW11 SW11_CS5 -#define CS6_SW11 SW11_CS6 -#define CS7_SW11 SW11_CS7 -#define CS8_SW11 SW11_CS8 -#define CS9_SW11 SW11_CS9 -#define CS10_SW11 SW11_CS10 -#define CS11_SW11 SW11_CS11 -#define CS12_SW11 SW11_CS12 -#define CS13_SW11 SW11_CS13 -#define CS14_SW11 SW11_CS14 -#define CS15_SW11 SW11_CS15 -#define CS16_SW11 SW11_CS16 -#define CS17_SW11 SW11_CS17 -#define CS18_SW11 SW11_CS18 diff --git a/drivers/led/snled27351-mono.h b/drivers/led/snled27351-mono.h index 43d39934cb3b..b88ef25f7643 100644 --- a/drivers/led/snled27351-mono.h +++ b/drivers/led/snled27351-mono.h @@ -21,37 +21,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef CKLED2001_TIMEOUT -# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT -#endif -#ifdef CKLED2001_PERSISTENCE -# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE -#endif -#ifdef PHASE_CHANNEL -# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL -#endif -#ifdef CKLED2001_CURRENT_TUNE -# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE -#endif - -#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL -#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL -#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL -#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL -#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL -#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL -#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL -#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL -#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL -#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL -#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL -#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL - -#define ckled2001_led snled27351_led_t -#define g_ckled2001_leds g_snled27351_leds -// ======== - #define SNLED27351_REG_COMMAND 0xFD #define SNLED27351_COMMAND_LED_CONTROL 0x00 #define SNLED27351_COMMAND_PWM 0x01 @@ -378,209 +347,3 @@ void snled27351_sw_shutdown(uint8_t index); #define CB12_CA14 0xBD #define CB12_CA15 0xBE #define CB12_CA16 0xBF - -// DEPRECATED - DO NOT USE - -#define A_1 CB1_CA1 -#define A_2 CB1_CA2 -#define A_3 CB1_CA3 -#define A_4 CB1_CA4 -#define A_5 CB1_CA5 -#define A_6 CB1_CA6 -#define A_7 CB1_CA7 -#define A_8 CB1_CA8 -#define A_9 CB1_CA9 -#define A_10 CB1_CA10 -#define A_11 CB1_CA11 -#define A_12 CB1_CA12 -#define A_13 CB1_CA13 -#define A_14 CB1_CA14 -#define A_15 CB1_CA15 -#define A_16 CB1_CA16 - -#define B_1 CB2_CA1 -#define B_2 CB2_CA2 -#define B_3 CB2_CA3 -#define B_4 CB2_CA4 -#define B_5 CB2_CA5 -#define B_6 CB2_CA6 -#define B_7 CB2_CA7 -#define B_8 CB2_CA8 -#define B_9 CB2_CA9 -#define B_10 CB2_CA10 -#define B_11 CB2_CA11 -#define B_12 CB2_CA12 -#define B_13 CB2_CA13 -#define B_14 CB2_CA14 -#define B_15 CB2_CA15 -#define B_16 CB2_CA16 - -#define C_1 CB3_CA1 -#define C_2 CB3_CA2 -#define C_3 CB3_CA3 -#define C_4 CB3_CA4 -#define C_5 CB3_CA5 -#define C_6 CB3_CA6 -#define C_7 CB3_CA7 -#define C_8 CB3_CA8 -#define C_9 CB3_CA9 -#define C_10 CB3_CA10 -#define C_11 CB3_CA11 -#define C_12 CB3_CA12 -#define C_13 CB3_CA13 -#define C_14 CB3_CA14 -#define C_15 CB3_CA15 -#define C_16 CB3_CA16 - -#define D_1 CB4_CA1 -#define D_2 CB4_CA2 -#define D_3 CB4_CA3 -#define D_4 CB4_CA4 -#define D_5 CB4_CA5 -#define D_6 CB4_CA6 -#define D_7 CB4_CA7 -#define D_8 CB4_CA8 -#define D_9 CB4_CA9 -#define D_10 CB4_CA10 -#define D_11 CB4_CA11 -#define D_12 CB4_CA12 -#define D_13 CB4_CA13 -#define D_14 CB4_CA14 -#define D_15 CB4_CA15 -#define D_16 CB4_CA16 - -#define E_1 CB5_CA1 -#define E_2 CB5_CA2 -#define E_3 CB5_CA3 -#define E_4 CB5_CA4 -#define E_5 CB5_CA5 -#define E_6 CB5_CA6 -#define E_7 CB5_CA7 -#define E_8 CB5_CA8 -#define E_9 CB5_CA9 -#define E_10 CB5_CA10 -#define E_11 CB5_CA11 -#define E_12 CB5_CA12 -#define E_13 CB5_CA13 -#define E_14 CB5_CA14 -#define E_15 CB5_CA15 -#define E_16 CB5_CA16 - -#define F_1 CB6_CA1 -#define F_2 CB6_CA2 -#define F_3 CB6_CA3 -#define F_4 CB6_CA4 -#define F_5 CB6_CA5 -#define F_6 CB6_CA6 -#define F_7 CB6_CA7 -#define F_8 CB6_CA8 -#define F_9 CB6_CA9 -#define F_10 CB6_CA10 -#define F_11 CB6_CA11 -#define F_12 CB6_CA12 -#define F_13 CB6_CA13 -#define F_14 CB6_CA14 -#define F_15 CB6_CA15 -#define F_16 CB6_CA16 - -#define G_1 CB7_CA1 -#define G_2 CB7_CA2 -#define G_3 CB7_CA3 -#define G_4 CB7_CA4 -#define G_5 CB7_CA5 -#define G_6 CB7_CA6 -#define G_7 CB7_CA7 -#define G_8 CB7_CA8 -#define G_9 CB7_CA9 -#define G_10 CB7_CA10 -#define G_11 CB7_CA11 -#define G_12 CB7_CA12 -#define G_13 CB7_CA13 -#define G_14 CB7_CA14 -#define G_15 CB7_CA15 -#define G_16 CB7_CA16 - -#define H_1 CB8_CA1 -#define H_2 CB8_CA2 -#define H_3 CB8_CA3 -#define H_4 CB8_CA4 -#define H_5 CB8_CA5 -#define H_6 CB8_CA6 -#define H_7 CB8_CA7 -#define H_8 CB8_CA8 -#define H_9 CB8_CA9 -#define H_10 CB8_CA10 -#define H_11 CB8_CA11 -#define H_12 CB8_CA12 -#define H_13 CB8_CA13 -#define H_14 CB8_CA14 -#define H_15 CB8_CA15 -#define H_16 CB8_CA16 - -#define I_1 CB9_CA1 -#define I_2 CB9_CA2 -#define I_3 CB9_CA3 -#define I_4 CB9_CA4 -#define I_5 CB9_CA5 -#define I_6 CB9_CA6 -#define I_7 CB9_CA7 -#define I_8 CB9_CA8 -#define I_9 CB9_CA9 -#define I_10 CB9_CA10 -#define I_11 CB9_CA11 -#define I_12 CB9_CA12 -#define I_13 CB9_CA13 -#define I_14 CB9_CA14 -#define I_15 CB9_CA15 -#define I_16 CB9_CA16 - -#define J_1 CB10_CA1 -#define J_2 CB10_CA2 -#define J_3 CB10_CA3 -#define J_4 CB10_CA4 -#define J_5 CB10_CA5 -#define J_6 CB10_CA6 -#define J_7 CB10_CA7 -#define J_8 CB10_CA8 -#define J_9 CB10_CA9 -#define J_10 CB10_CA10 -#define J_11 CB10_CA11 -#define J_12 CB10_CA12 -#define J_13 CB10_CA13 -#define J_14 CB10_CA14 -#define J_15 CB10_CA15 -#define J_16 CB10_CA16 - -#define K_1 CB11_CA1 -#define K_2 CB11_CA2 -#define K_3 CB11_CA3 -#define K_4 CB11_CA4 -#define K_5 CB11_CA5 -#define K_6 CB11_CA6 -#define K_7 CB11_CA7 -#define K_8 CB11_CA8 -#define K_9 CB11_CA9 -#define K_10 CB11_CA10 -#define K_11 CB11_CA11 -#define K_12 CB11_CA12 -#define K_13 CB11_CA13 -#define K_14 CB11_CA14 -#define K_15 CB11_CA15 -#define K_16 CB11_CA16 - -#define L_1 CB12_CA1 -#define L_2 CB12_CA2 -#define L_3 CB12_CA3 -#define L_4 CB12_CA4 -#define L_5 CB12_CA5 -#define L_6 CB12_CA6 -#define L_7 CB12_CA7 -#define L_8 CB12_CA8 -#define L_9 CB12_CA9 -#define L_10 CB12_CA10 -#define L_11 CB12_CA11 -#define L_12 CB12_CA12 -#define L_13 CB12_CA13 -#define L_14 CB12_CA14 -#define L_15 CB12_CA15 -#define L_16 CB12_CA16 diff --git a/drivers/led/snled27351.h b/drivers/led/snled27351.h index d902744d148a..1b7f05c285f7 100644 --- a/drivers/led/snled27351.h +++ b/drivers/led/snled27351.h @@ -21,49 +21,6 @@ #include "progmem.h" #include "util.h" -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef DRIVER_ADDR_1 -# define SNLED27351_I2C_ADDRESS_1 DRIVER_ADDR_1 -#endif -#ifdef DRIVER_ADDR_2 -# define SNLED27351_I2C_ADDRESS_2 DRIVER_ADDR_2 -#endif -#ifdef DRIVER_ADDR_3 -# define SNLED27351_I2C_ADDRESS_3 DRIVER_ADDR_3 -#endif -#ifdef DRIVER_ADDR_4 -# define SNLED27351_I2C_ADDRESS_4 DRIVER_ADDR_4 -#endif -#ifdef CKLED2001_TIMEOUT -# define SNLED27351_I2C_TIMEOUT CKLED2001_TIMEOUT -#endif -#ifdef CKLED2001_PERSISTENCE -# define SNLED27351_I2C_PERSISTENCE CKLED2001_PERSISTENCE -#endif -#ifdef PHASE_CHANNEL -# define SNLED27351_PHASE_CHANNEL PHASE_CHANNEL -#endif -#ifdef CKLED2001_CURRENT_TUNE -# define SNLED27351_CURRENT_TUNE CKLED2001_CURRENT_TUNE -#endif - -#define MSKPHASE_12CHANNEL SNLED27351_SCAN_PHASE_12_CHANNEL -#define MSKPHASE_11CHANNEL SNLED27351_SCAN_PHASE_11_CHANNEL -#define MSKPHASE_10CHANNEL SNLED27351_SCAN_PHASE_10_CHANNEL -#define MSKPHASE_9CHANNEL SNLED27351_SCAN_PHASE_9_CHANNEL -#define MSKPHASE_8CHANNEL SNLED27351_SCAN_PHASE_8_CHANNEL -#define MSKPHASE_7CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL -#define MSKPHASE_6CHANNEL SNLED27351_SCAN_PHASE_6_CHANNEL -#define MSKPHASE_5CHANNEL SNLED27351_SCAN_PHASE_5_CHANNEL -#define MSKPHASE_4CHANNEL SNLED27351_SCAN_PHASE_4_CHANNEL -#define MSKPHASE_3CHANNEL SNLED27351_SCAN_PHASE_3_CHANNEL -#define MSKPHASE_2CHANNEL SNLED27351_SCAN_PHASE_2_CHANNEL -#define MSKPHASE_1CHANNEL SNLED27351_SCAN_PHASE_1_CHANNEL - -#define ckled2001_led snled27351_led_t -#define g_ckled2001_leds g_snled27351_leds -// ======== - #define SNLED27351_REG_COMMAND 0xFD #define SNLED27351_COMMAND_LED_CONTROL 0x00 #define SNLED27351_COMMAND_PWM 0x01 @@ -392,209 +349,3 @@ void snled27351_sw_shutdown(uint8_t index); #define CB12_CA14 0xBD #define CB12_CA15 0xBE #define CB12_CA16 0xBF - -// DEPRECATED - DO NOT USE - -#define A_1 CB1_CA1 -#define A_2 CB1_CA2 -#define A_3 CB1_CA3 -#define A_4 CB1_CA4 -#define A_5 CB1_CA5 -#define A_6 CB1_CA6 -#define A_7 CB1_CA7 -#define A_8 CB1_CA8 -#define A_9 CB1_CA9 -#define A_10 CB1_CA10 -#define A_11 CB1_CA11 -#define A_12 CB1_CA12 -#define A_13 CB1_CA13 -#define A_14 CB1_CA14 -#define A_15 CB1_CA15 -#define A_16 CB1_CA16 - -#define B_1 CB2_CA1 -#define B_2 CB2_CA2 -#define B_3 CB2_CA3 -#define B_4 CB2_CA4 -#define B_5 CB2_CA5 -#define B_6 CB2_CA6 -#define B_7 CB2_CA7 -#define B_8 CB2_CA8 -#define B_9 CB2_CA9 -#define B_10 CB2_CA10 -#define B_11 CB2_CA11 -#define B_12 CB2_CA12 -#define B_13 CB2_CA13 -#define B_14 CB2_CA14 -#define B_15 CB2_CA15 -#define B_16 CB2_CA16 - -#define C_1 CB3_CA1 -#define C_2 CB3_CA2 -#define C_3 CB3_CA3 -#define C_4 CB3_CA4 -#define C_5 CB3_CA5 -#define C_6 CB3_CA6 -#define C_7 CB3_CA7 -#define C_8 CB3_CA8 -#define C_9 CB3_CA9 -#define C_10 CB3_CA10 -#define C_11 CB3_CA11 -#define C_12 CB3_CA12 -#define C_13 CB3_CA13 -#define C_14 CB3_CA14 -#define C_15 CB3_CA15 -#define C_16 CB3_CA16 - -#define D_1 CB4_CA1 -#define D_2 CB4_CA2 -#define D_3 CB4_CA3 -#define D_4 CB4_CA4 -#define D_5 CB4_CA5 -#define D_6 CB4_CA6 -#define D_7 CB4_CA7 -#define D_8 CB4_CA8 -#define D_9 CB4_CA9 -#define D_10 CB4_CA10 -#define D_11 CB4_CA11 -#define D_12 CB4_CA12 -#define D_13 CB4_CA13 -#define D_14 CB4_CA14 -#define D_15 CB4_CA15 -#define D_16 CB4_CA16 - -#define E_1 CB5_CA1 -#define E_2 CB5_CA2 -#define E_3 CB5_CA3 -#define E_4 CB5_CA4 -#define E_5 CB5_CA5 -#define E_6 CB5_CA6 -#define E_7 CB5_CA7 -#define E_8 CB5_CA8 -#define E_9 CB5_CA9 -#define E_10 CB5_CA10 -#define E_11 CB5_CA11 -#define E_12 CB5_CA12 -#define E_13 CB5_CA13 -#define E_14 CB5_CA14 -#define E_15 CB5_CA15 -#define E_16 CB5_CA16 - -#define F_1 CB6_CA1 -#define F_2 CB6_CA2 -#define F_3 CB6_CA3 -#define F_4 CB6_CA4 -#define F_5 CB6_CA5 -#define F_6 CB6_CA6 -#define F_7 CB6_CA7 -#define F_8 CB6_CA8 -#define F_9 CB6_CA9 -#define F_10 CB6_CA10 -#define F_11 CB6_CA11 -#define F_12 CB6_CA12 -#define F_13 CB6_CA13 -#define F_14 CB6_CA14 -#define F_15 CB6_CA15 -#define F_16 CB6_CA16 - -#define G_1 CB7_CA1 -#define G_2 CB7_CA2 -#define G_3 CB7_CA3 -#define G_4 CB7_CA4 -#define G_5 CB7_CA5 -#define G_6 CB7_CA6 -#define G_7 CB7_CA7 -#define G_8 CB7_CA8 -#define G_9 CB7_CA9 -#define G_10 CB7_CA10 -#define G_11 CB7_CA11 -#define G_12 CB7_CA12 -#define G_13 CB7_CA13 -#define G_14 CB7_CA14 -#define G_15 CB7_CA15 -#define G_16 CB7_CA16 - -#define H_1 CB8_CA1 -#define H_2 CB8_CA2 -#define H_3 CB8_CA3 -#define H_4 CB8_CA4 -#define H_5 CB8_CA5 -#define H_6 CB8_CA6 -#define H_7 CB8_CA7 -#define H_8 CB8_CA8 -#define H_9 CB8_CA9 -#define H_10 CB8_CA10 -#define H_11 CB8_CA11 -#define H_12 CB8_CA12 -#define H_13 CB8_CA13 -#define H_14 CB8_CA14 -#define H_15 CB8_CA15 -#define H_16 CB8_CA16 - -#define I_1 CB9_CA1 -#define I_2 CB9_CA2 -#define I_3 CB9_CA3 -#define I_4 CB9_CA4 -#define I_5 CB9_CA5 -#define I_6 CB9_CA6 -#define I_7 CB9_CA7 -#define I_8 CB9_CA8 -#define I_9 CB9_CA9 -#define I_10 CB9_CA10 -#define I_11 CB9_CA11 -#define I_12 CB9_CA12 -#define I_13 CB9_CA13 -#define I_14 CB9_CA14 -#define I_15 CB9_CA15 -#define I_16 CB9_CA16 - -#define J_1 CB10_CA1 -#define J_2 CB10_CA2 -#define J_3 CB10_CA3 -#define J_4 CB10_CA4 -#define J_5 CB10_CA5 -#define J_6 CB10_CA6 -#define J_7 CB10_CA7 -#define J_8 CB10_CA8 -#define J_9 CB10_CA9 -#define J_10 CB10_CA10 -#define J_11 CB10_CA11 -#define J_12 CB10_CA12 -#define J_13 CB10_CA13 -#define J_14 CB10_CA14 -#define J_15 CB10_CA15 -#define J_16 CB10_CA16 - -#define K_1 CB11_CA1 -#define K_2 CB11_CA2 -#define K_3 CB11_CA3 -#define K_4 CB11_CA4 -#define K_5 CB11_CA5 -#define K_6 CB11_CA6 -#define K_7 CB11_CA7 -#define K_8 CB11_CA8 -#define K_9 CB11_CA9 -#define K_10 CB11_CA10 -#define K_11 CB11_CA11 -#define K_12 CB11_CA12 -#define K_13 CB11_CA13 -#define K_14 CB11_CA14 -#define K_15 CB11_CA15 -#define K_16 CB11_CA16 - -#define L_1 CB12_CA1 -#define L_2 CB12_CA2 -#define L_3 CB12_CA3 -#define L_4 CB12_CA4 -#define L_5 CB12_CA5 -#define L_6 CB12_CA6 -#define L_7 CB12_CA7 -#define L_8 CB12_CA8 -#define L_9 CB12_CA9 -#define L_10 CB12_CA10 -#define L_11 CB12_CA11 -#define L_12 CB12_CA12 -#define L_13 CB12_CA13 -#define L_14 CB12_CA14 -#define L_15 CB12_CA15 -#define L_16 CB12_CA16 diff --git a/keyboards/zsa/voyager/voyager.c b/keyboards/zsa/voyager/voyager.c index 6d4f6c5f26a3..b7ca8f748fd0 100644 --- a/keyboards/zsa/voyager/voyager.c +++ b/keyboards/zsa/voyager/voyager.c @@ -121,7 +121,7 @@ layer_state_t layer_state_set_kb(layer_state_t state) { #ifdef RGB_MATRIX_ENABLE // clang-format off -const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = { +const is31fl3731_led_t PROGMEM g_is31fl3731_leds[RGB_MATRIX_LED_COUNT] = { /* Refer to IS31 manual for these locations * driver * | R location From a6a0dc803908a426c331b698acab663a900c2b10 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 21 Jan 2025 08:24:39 +1100 Subject: [PATCH 07/23] Consolidate send_string implementations. (#24817) --- builddefs/common_features.mk | 4 ++ quantum/dynamic_keymap.c | 66 +++++------------------ quantum/send_string/send_string.c | 88 ++++++++++++++----------------- quantum/send_string/send_string.h | 8 +++ 4 files changed, 64 insertions(+), 102 deletions(-) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index bb272099a67e..989048d71740 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -635,6 +635,10 @@ ifeq ($(strip $(VIA_ENABLE)), yes) TRI_LAYER_ENABLE := yes endif +ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes) + SEND_STRING_ENABLE := yes +endif + VALID_CUSTOM_MATRIX_TYPES:= yes lite no CUSTOM_MATRIX ?= no diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 3c22bbd4457f..beb7f9d18f2c 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -245,6 +245,17 @@ void dynamic_keymap_macro_set_buffer(uint16_t offset, uint16_t size, uint8_t *da } } +typedef struct send_string_eeprom_state_t { + const uint8_t *ptr; +} send_string_eeprom_state_t; + +char send_string_get_next_eeprom(void *arg) { + send_string_eeprom_state_t *state = (send_string_eeprom_state_t *)arg; + char ret = eeprom_read_byte(state->ptr); + state->ptr++; + return ret; +} + void dynamic_keymap_macro_reset(void) { void *p = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); void *end = (void *)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); @@ -284,57 +295,6 @@ void dynamic_keymap_macro_send(uint8_t id) { ++p; } - // Send the macro string by making a temporary string. - char data[8] = {0}; - // We already checked there was a null at the end of - // the buffer, so this cannot go past the end - while (1) { - data[0] = eeprom_read_byte(p++); - data[1] = 0; - // Stop at the null terminator of this macro string - if (data[0] == 0) { - break; - } - if (data[0] == SS_QMK_PREFIX) { - // Get the code - data[1] = eeprom_read_byte(p++); - // Unexpected null, abort. - if (data[1] == 0) { - return; - } - if (data[1] == SS_TAP_CODE || data[1] == SS_DOWN_CODE || data[1] == SS_UP_CODE) { - // Get the keycode - data[2] = eeprom_read_byte(p++); - // Unexpected null, abort. - if (data[2] == 0) { - return; - } - // Null terminate - data[3] = 0; - } else if (data[1] == SS_DELAY_CODE) { - // Get the number and '|' - // At most this is 4 digits plus '|' - uint8_t i = 2; - while (1) { - data[i] = eeprom_read_byte(p++); - // Unexpected null, abort - if (data[i] == 0) { - return; - } - // Found '|', send it - if (data[i] == '|') { - data[i + 1] = 0; - break; - } - // If haven't found '|' by i==6 then - // number too big, abort - if (i == 6) { - return; - } - ++i; - } - } - } - send_string_with_delay(data, DYNAMIC_KEYMAP_MACRO_DELAY); - } + send_string_eeprom_state_t state = {p}; + send_string_with_delay_impl(send_string_get_next_eeprom, &state, DYNAMIC_KEYMAP_MACRO_DELAY); } diff --git a/quantum/send_string/send_string.c b/quantum/send_string/send_string.c index 44c5ec5ab994..602f24dabe38 100644 --- a/quantum/send_string/send_string.c +++ b/quantum/send_string/send_string.c @@ -150,48 +150,65 @@ void send_string(const char *string) { send_string_with_delay(string, TAP_CODE_DELAY); } -void send_string_with_delay(const char *string, uint8_t interval) { +void send_string_with_delay_impl(char (*getter)(void *), void *arg, uint8_t interval) { while (1) { - char ascii_code = *string; + char ascii_code = getter(arg); if (!ascii_code) break; if (ascii_code == SS_QMK_PREFIX) { - ascii_code = *(++string); + ascii_code = getter(arg); if (ascii_code == SS_TAP_CODE) { // tap - uint8_t keycode = *(++string); + uint8_t keycode = getter(arg); tap_code(keycode); } else if (ascii_code == SS_DOWN_CODE) { // down - uint8_t keycode = *(++string); + uint8_t keycode = getter(arg); register_code(keycode); } else if (ascii_code == SS_UP_CODE) { // up - uint8_t keycode = *(++string); + uint8_t keycode = getter(arg); unregister_code(keycode); } else if (ascii_code == SS_DELAY_CODE) { // delay - int ms = 0; - uint8_t keycode = *(++string); + int ms = 0; + ascii_code = getter(arg); - while (isdigit(keycode)) { + while (isdigit(ascii_code)) { ms *= 10; - ms += keycode - '0'; - keycode = *(++string); + ms += ascii_code - '0'; + ascii_code = getter(arg); } wait_ms(ms); } wait_ms(interval); + + // if we had a delay that terminated with a null, we're done + if (ascii_code == 0) break; } else { send_char_with_delay(ascii_code, interval); } - - ++string; } } +typedef struct send_string_memory_state_t { + const char *string; +} send_string_memory_state_t; + +char send_string_get_next_ram(void *arg) { + send_string_memory_state_t *state = (send_string_memory_state_t *)arg; + char ret = *state->string; + state->string++; + return ret; +} + +void send_string_with_delay(const char *string, uint8_t interval) { + send_string_memory_state_t state = {string}; + send_string_with_delay_impl(send_string_get_next_ram, &state, interval); +} + void send_char(char ascii_code) { send_char_with_delay(ascii_code, TAP_CODE_DELAY); } @@ -297,42 +314,15 @@ void send_string_P(const char *string) { send_string_with_delay_P(string, TAP_CODE_DELAY); } -void send_string_with_delay_P(const char *string, uint8_t interval) { - while (1) { - char ascii_code = pgm_read_byte(string); - if (!ascii_code) break; - if (ascii_code == SS_QMK_PREFIX) { - ascii_code = pgm_read_byte(++string); - - if (ascii_code == SS_TAP_CODE) { - // tap - uint8_t keycode = pgm_read_byte(++string); - tap_code(keycode); - } else if (ascii_code == SS_DOWN_CODE) { - // down - uint8_t keycode = pgm_read_byte(++string); - register_code(keycode); - } else if (ascii_code == SS_UP_CODE) { - // up - uint8_t keycode = pgm_read_byte(++string); - unregister_code(keycode); - } else if (ascii_code == SS_DELAY_CODE) { - // delay - int ms = 0; - uint8_t keycode = pgm_read_byte(++string); - - while (isdigit(keycode)) { - ms *= 10; - ms += keycode - '0'; - keycode = pgm_read_byte(++string); - } - wait_ms(ms); - } - } else { - send_char_with_delay(ascii_code, interval); - } +char send_string_get_next_progmem(void *arg) { + send_string_memory_state_t *state = (send_string_memory_state_t *)arg; + char ret = pgm_read_byte(state->string); + state->string++; + return ret; +} - ++string; - } +void send_string_with_delay_P(const char *string, uint8_t interval) { + send_string_memory_state_t state = {string}; + send_string_with_delay_impl(send_string_get_next_progmem, &state, interval); } #endif diff --git a/quantum/send_string/send_string.h b/quantum/send_string/send_string.h index f727ec507da1..4f91252075d2 100644 --- a/quantum/send_string/send_string.h +++ b/quantum/send_string/send_string.h @@ -161,4 +161,12 @@ void send_string_with_delay_P(const char *string, uint8_t interval); */ #define SEND_STRING_DELAY(string, interval) send_string_with_delay_P(PSTR(string), interval) +/** + * \brief Actual implementation function that iterates and sends the string returned by the getter function. + * + * The getter assumes that the next byte is available to be read, and returns it. `arg` is passed in and can be whatever + * makes most sense for the getter -- each invocation of `getter` must advance its position in the source. + */ +void send_string_with_delay_impl(char (*getter)(void *), void *arg, uint8_t interval); + /** \} */ From a573931fef26427e761456698de83e58458df17c Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 21 Jan 2025 08:32:52 +1100 Subject: [PATCH 08/23] License violations updates. (#24831) --- docs/license_violations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/license_violations.md b/docs/license_violations.md index b21bb286ac53..f899deb07c3f 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -20,13 +20,13 @@ If you own a board from one of the following vendors already, consider asking th | Vendor | Reason | |------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | -| Chillkey | | | CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. | | Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. | | Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. | | Ergokbd (IFKB) | At least their crkbd clone ships with QMK+Vial, seemingly refuses to disclose sources despite multiple customers requesting them. | | iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | | KiiBOOM | Seems to use the same OEM as Epomaker, same problems. | +| kprepublic | Makes no attempt to release source code, all boards in QMK are reverse-engineered, created, and supported by the community. New board variants magically appear without telling customers they're incompatible with existing QMK versions, in some cases bricking boards or requiring ISP flashing. | | Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | @@ -36,13 +36,13 @@ If you own a board from one of the following vendors already, consider asking th | Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. | | Shenzhen Hangsheng | PR submissions with crippled firmware, debating with maintainers about wireless despite marketing material clearly stating tri-mode. | -| Shortcut Studio | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Tacworks | Selling tri-mode boards based on QMK, crippled firmware already merged into QMK without wireless without QMK team realising. | | TKD / Vertex | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | WOBKEY | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Weikav | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | | Womier | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Wuque Studio | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | +| XVX | Ambiguity on PRs -- marketing says wireless, PR author said wired-only. Seemingly intentionally deceptive. | | Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. | ::: danger Violations From 7431401116c744e4e3d8e92e5047c9dc3baebb9f Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 21 Jan 2025 08:54:41 +1100 Subject: [PATCH 09/23] Fix up CI with `DEFAULT_FOLDER`. (#24842) --- keyboards/rgbkb/pan/rules.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/rgbkb/pan/rules.mk b/keyboards/rgbkb/pan/rules.mk index b6f1d46a6535..9a696492896d 100644 --- a/keyboards/rgbkb/pan/rules.mk +++ b/keyboards/rgbkb/pan/rules.mk @@ -1,3 +1 @@ WS2812_DRIVER_REQUIRED = yes - -DEFAULT_FOLDER = rgbkb/pan/rev1 From 1a30e2b32b5255ed32d156abe26a897fa86db8a4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 22:26:25 +0000 Subject: [PATCH 10/23] Migrate some DEFAULT_FOLDER to keyboard_aliases.hjson (#24835) --- data/mappings/keyboard_aliases.hjson | 547 ++++++++++++++++++ keyboards/0_sixty/rules.mk | 1 - keyboards/0xcb/splaytoraid/rules.mk | 1 - keyboards/1upkeyboards/pi40/rules.mk | 1 - keyboards/1upkeyboards/pi50/rules.mk | 1 - keyboards/1upkeyboards/sweet16/rules.mk | 1 - keyboards/40percentclub/i75/rules.mk | 1 - keyboards/40percentclub/polyandry/rules.mk | 1 - keyboards/8pack/rules.mk | 1 - keyboards/adkb96/rules.mk | 1 - keyboards/adm42/rules.mk | 1 - keyboards/aeboards/satellite/rules.mk | 1 - keyboards/atreus/rules.mk | 1 - keyboards/atreyu/rules.mk | 1 - keyboards/binepad/bn009/rules.mk | 3 - keyboards/binepad/bnr1/rules.mk | 1 - keyboards/boston_meetup/rules.mk | 1 - keyboards/bpiphany/frosty_flake/rules.mk | 1 - keyboards/buzzard/rules.mk | 1 - keyboards/clickety_split/leeloo/rules.mk | 2 - keyboards/crkbd/rules.mk | 1 - keyboards/dailycraft/bat43/rules.mk | 1 - keyboards/dailycraft/claw44/rules.mk | 1 - keyboards/dailycraft/sandbox/rules.mk | 1 - keyboards/dailycraft/wings42/rules.mk | 1 - keyboards/delikeeb/vanana/rules.mk | 1 - keyboards/delikeeb/waaffle/rev3/rules.mk | 1 - keyboards/deltasplit75/rules.mk | 1 - keyboards/duck/octagon/rules.mk | 1 - keyboards/duck/orion/rules.mk | 1 - keyboards/ducky/one2mini/rules.mk | 1 - keyboards/ducky/one2sf/rules.mk | 1 - keyboards/dumbpad/rules.mk | 1 - keyboards/durgod/galaxy/rules.mk | 1 - keyboards/durgod/venus/rules.mk | 1 - keyboards/dztech/tofu/ii/rules.mk | 1 - keyboards/dztech/tofu/jr/rules.mk | 1 - keyboards/eco/rules.mk | 1 - keyboards/ergoslab/rules.mk | 1 - keyboards/ergotravel/rules.mk | 1 - keyboards/evyd13/atom47/rules.mk | 1 - keyboards/fortitude60/rules.mk | 1 - keyboards/fruitykeeb/fruitbar/r1/rules.mk | 1 - keyboards/ghs/jem/rules.mk | 1 - keyboards/hadron/rules.mk | 1 - keyboards/handwired/bento/rules.mk | 1 - .../handwired/dactyl_manuform/6x6/rules.mk | 1 - keyboards/handwired/ms_sculpt_mobile/rules.mk | 1 - keyboards/handwired/onekey/rules.mk | 1 - keyboards/handwired/pill60/rules.mk | 1 - keyboards/handwired/postageboard/rules.mk | 1 - keyboards/handwired/qc60/rules.mk | 1 - keyboards/handwired/sono1/rules.mk | 1 - keyboards/handwired/splittest/rules.mk | 1 - .../handwired/stef9998/split_5x7/rules.mk | 1 - .../symmetric70_proto/promicro/rules.mk | 1 - .../symmetric70_proto/proton_c/rules.mk | 1 - keyboards/handwired/unk/rules.mk | 1 - keyboards/hillside/46/rules.mk | 1 - keyboards/hillside/48/rules.mk | 1 - keyboards/hillside/52/rules.mk | 1 - keyboards/ibnuda/squiggle/rules.mk | 1 - keyboards/idobao/id80/v1/rules.mk | 2 - keyboards/idobao/id80/v3/rules.mk | 2 - keyboards/inett_studio/sq80/rules.mk | 1 - keyboards/jacky_studio/bear_65/rules.mk | 1 - keyboards/jadookb/jkb65/rules.mk | 1 - keyboards/jian/rules.mk | 1 - keyboards/jiran/rules.mk | 1 - keyboards/jorne/rules.mk | 1 - keyboards/junco/rules.mk | 1 - keyboards/kakunpc/business_card/rules.mk | 1 - keyboards/kakunpc/suihankey/rules.mk | 1 - keyboards/kapcave/paladinpad/rules.mk | 1 - keyboards/kapl/rules.mk | 1 - keyboards/kbdfans/d45/rules.mk | 1 - keyboards/kbdfans/kbd75/rules.mk | 1 - keyboards/keebio/bdn9/rules.mk | 1 - keyboards/keebio/convolution/rules.mk | 1 - keyboards/keebio/foldkb/rules.mk | 1 - keyboards/keebio/kbo5000/rules.mk | 1 - keyboards/keebio/levinson/rules.mk | 1 - keyboards/keebio/quefrency/rules.mk | 1 - keyboards/keebio/rorschach/rules.mk | 1 - keyboards/keebio/sinc/rules.mk | 1 - keyboards/keebio/viterbi/rules.mk | 1 - keyboards/keycapsss/kimiko/rules.mk | 1 - keyboards/kin80/rules.mk | 1 - keyboards/kumaokobo/kudox/rules.mk | 1 - keyboards/kumaokobo/kudox_full/rules.mk | 1 - keyboards/kumaokobo/kudox_game/rules.mk | 1 - keyboards/kumaokobo/pico/rules.mk | 1 - keyboards/lazydesigners/dimple/rules.mk | 1 - keyboards/lets_split/rules.mk | 1 - keyboards/lfkeyboards/lfk87/rules.mk | 1 - keyboards/lily58/rules.mk | 1 - keyboards/lime/rules.mk | 1 - keyboards/maple_computing/ivy/rules.mk | 1 - keyboards/maple_computing/launchpad/rules.mk | 1 - keyboards/maple_computing/minidox/rules.mk | 1 - keyboards/mariorion_v25/rules.mk | 1 - keyboards/marksard/rhymestone/rules.mk | 1 - keyboards/marksard/treadstone48/rules.mk | 1 - keyboards/maxipad/rules.mk | 1 - keyboards/mechkeys/mechmini/rules.mk | 1 - keyboards/mechllama/g35/rules.mk | 1 - keyboards/mechlovin/adelais/rules.mk | 1 - .../adelais/standard_led/arm/rev4/rules.mk | 1 - .../adelais/standard_led/arm/rules.mk | 1 - .../adelais/standard_led/avr/rules.mk | 2 - keyboards/mechlovin/infinity87/rev1/rules.mk | 1 - keyboards/mechlovin/infinity87/rules.mk | 1 - keyboards/mechlovin/mechlovin9/rules.mk | 1 - keyboards/mechlovin/olly/jf/rules.mk | 1 - keyboards/mechlovin/zed1800/rules.mk | 1 - .../mechlovin/zed65/no_backlight/rules.mk | 1 - keyboards/mechlovin/zed65/rules.mk | 1 - keyboards/mechwild/bde/rules.mk | 1 - keyboards/mechwild/mokulua/rules.mk | 1 - keyboards/mechwild/obe/f401/rules.mk | 1 - keyboards/mechwild/obe/f411/rules.mk | 1 - keyboards/mechwild/obe/rules.mk | 1 - keyboards/mechwild/waka60/f401/rules.mk | 1 - keyboards/mechwild/waka60/f411/rules.mk | 1 - keyboards/mechwild/waka60/rules.mk | 1 - keyboards/murcielago/rules.mk | 1 - keyboards/nullbitsco/scramble/rules.mk | 1 - keyboards/omkbd/ergodash/rules.mk | 1 - keyboards/omkbd/runner3680/rules.mk | 1 - keyboards/orthodox/rules.mk | 1 - keyboards/peej/rosaline/rules.mk | 1 - keyboards/peej/tripel/rules.mk | 1 - keyboards/peranekofactory/tone/rules.mk | 1 - keyboards/phase_studio/titan65/rules.mk | 1 - keyboards/pica40/rules.mk | 1 - keyboards/pinky/rules.mk | 1 - keyboards/primekb/meridian/rules.mk | 1 - keyboards/primekb/prime_e/rules.mk | 1 - keyboards/program_yoink/rules.mk | 1 - keyboards/projectcain/vault35/rules.mk | 1 - keyboards/qpockets/space_space/rules.mk | 1 - keyboards/qwertyydox/rules.mk | 1 - keyboards/redox/rev1/rules.mk | 1 - keyboards/rgbkb/mun/rules.mk | 1 - keyboards/rgbkb/sol/rules.mk | 1 - keyboards/rgbkb/sol3/rules.mk | 1 - keyboards/rgbkb/zen/rules.mk | 1 - keyboards/rgbkb/zygomorph/rules.mk | 1 - keyboards/rmi_kb/herringbone/rules.mk | 1 - keyboards/rmi_kb/mona/rules.mk | 1 - keyboards/rmi_kb/tkl_ff/rules.mk | 1 - keyboards/rmi_kb/wete/rules.mk | 1 - keyboards/rookiebwoy/late9/rules.mk | 1 - keyboards/rookiebwoy/neopad/rules.mk | 1 - keyboards/rura66/rules.mk | 1 - keyboards/sawnsprojects/okayu/rules.mk | 1 - keyboards/smoll/lefty/rules.mk | 1 - keyboards/sofle/rules.mk | 1 - keyboards/spacetime/rules.mk | 1 - keyboards/splitkb/aurora/corne/rules.mk | 16 - keyboards/splitkb/aurora/helix/rules.mk | 1 - keyboards/splitkb/aurora/lily58/rules.mk | 16 - keyboards/splitkb/aurora/sofle_v2/rules.mk | 1 - keyboards/splitkb/aurora/sweep/rules.mk | 16 - keyboards/splitkb/kyria/rev1/rules.mk | 1 - keyboards/splitkb/kyria/rev2/rules.mk | 1 - keyboards/splitty/rules.mk | 1 - keyboards/studiokestra/galatea/rules.mk | 1 - keyboards/takashiski/hecomi/rules.mk | 1 - keyboards/themadnoodle/noodlepad/rules.mk | 3 - keyboards/tkw/grandiceps/rules.mk | 1 - keyboards/tominabox1/littlefoot_lx/rules.mk | 1 - keyboards/tominabox1/underscore33/rules.mk | 1 - keyboards/trnthsn/e8ghty/rules.mk | 1 - keyboards/trnthsn/s6xty5neor2/rules.mk | 1 - keyboards/tweetydabird/lotus58/rules.mk | 1 - keyboards/unison/rules.mk | 1 - keyboards/uzu42/rules.mk | 1 - keyboards/vitamins_included/rules.mk | 1 - keyboards/yanghu/unicorne/rules.mk | 1 - keyboards/yosino58/rules.mk | 1 - keyboards/yushakobo/navpad/10/rules.mk | 1 - keyboards/yynmt/acperience12/rules.mk | 1 - 183 files changed, 547 insertions(+), 235 deletions(-) delete mode 100644 keyboards/0_sixty/rules.mk delete mode 100644 keyboards/0xcb/splaytoraid/rules.mk delete mode 100644 keyboards/1upkeyboards/pi40/rules.mk delete mode 100644 keyboards/1upkeyboards/pi50/rules.mk delete mode 100644 keyboards/1upkeyboards/sweet16/rules.mk delete mode 100644 keyboards/40percentclub/i75/rules.mk delete mode 100644 keyboards/40percentclub/polyandry/rules.mk delete mode 100644 keyboards/8pack/rules.mk delete mode 100644 keyboards/adkb96/rules.mk delete mode 100644 keyboards/adm42/rules.mk delete mode 100644 keyboards/aeboards/satellite/rules.mk delete mode 100644 keyboards/atreus/rules.mk delete mode 100644 keyboards/atreyu/rules.mk delete mode 100644 keyboards/binepad/bn009/rules.mk delete mode 100755 keyboards/binepad/bnr1/rules.mk delete mode 100644 keyboards/boston_meetup/rules.mk delete mode 100644 keyboards/bpiphany/frosty_flake/rules.mk delete mode 100644 keyboards/buzzard/rules.mk delete mode 100644 keyboards/clickety_split/leeloo/rules.mk delete mode 100644 keyboards/crkbd/rules.mk delete mode 100644 keyboards/dailycraft/bat43/rules.mk delete mode 100644 keyboards/dailycraft/claw44/rules.mk delete mode 100644 keyboards/dailycraft/sandbox/rules.mk delete mode 100644 keyboards/dailycraft/wings42/rules.mk delete mode 100644 keyboards/delikeeb/vanana/rules.mk delete mode 100644 keyboards/delikeeb/waaffle/rev3/rules.mk delete mode 100644 keyboards/deltasplit75/rules.mk delete mode 100644 keyboards/duck/octagon/rules.mk delete mode 100644 keyboards/duck/orion/rules.mk delete mode 100644 keyboards/ducky/one2mini/rules.mk delete mode 100644 keyboards/ducky/one2sf/rules.mk delete mode 100644 keyboards/dumbpad/rules.mk delete mode 100644 keyboards/durgod/galaxy/rules.mk delete mode 100644 keyboards/durgod/venus/rules.mk delete mode 100644 keyboards/dztech/tofu/ii/rules.mk delete mode 100644 keyboards/dztech/tofu/jr/rules.mk delete mode 100644 keyboards/eco/rules.mk delete mode 100644 keyboards/ergoslab/rules.mk delete mode 100644 keyboards/ergotravel/rules.mk delete mode 100644 keyboards/evyd13/atom47/rules.mk delete mode 100644 keyboards/fortitude60/rules.mk delete mode 100644 keyboards/fruitykeeb/fruitbar/r1/rules.mk delete mode 100644 keyboards/ghs/jem/rules.mk delete mode 100644 keyboards/hadron/rules.mk delete mode 100644 keyboards/handwired/bento/rules.mk delete mode 100644 keyboards/handwired/dactyl_manuform/6x6/rules.mk delete mode 100644 keyboards/handwired/ms_sculpt_mobile/rules.mk delete mode 100644 keyboards/handwired/onekey/rules.mk delete mode 100644 keyboards/handwired/pill60/rules.mk delete mode 100644 keyboards/handwired/postageboard/rules.mk delete mode 100644 keyboards/handwired/qc60/rules.mk delete mode 100644 keyboards/handwired/sono1/rules.mk delete mode 100644 keyboards/handwired/splittest/rules.mk delete mode 100644 keyboards/handwired/stef9998/split_5x7/rules.mk delete mode 100644 keyboards/handwired/symmetric70_proto/promicro/rules.mk delete mode 100644 keyboards/handwired/symmetric70_proto/proton_c/rules.mk delete mode 100644 keyboards/handwired/unk/rules.mk delete mode 100644 keyboards/hillside/46/rules.mk delete mode 100644 keyboards/hillside/48/rules.mk delete mode 100644 keyboards/hillside/52/rules.mk delete mode 100644 keyboards/ibnuda/squiggle/rules.mk delete mode 100644 keyboards/idobao/id80/v1/rules.mk delete mode 100644 keyboards/idobao/id80/v3/rules.mk delete mode 100644 keyboards/inett_studio/sq80/rules.mk delete mode 100644 keyboards/jacky_studio/bear_65/rules.mk delete mode 100644 keyboards/jadookb/jkb65/rules.mk delete mode 100644 keyboards/jian/rules.mk delete mode 100644 keyboards/jiran/rules.mk delete mode 100644 keyboards/jorne/rules.mk delete mode 100644 keyboards/junco/rules.mk delete mode 100644 keyboards/kakunpc/business_card/rules.mk delete mode 100644 keyboards/kakunpc/suihankey/rules.mk delete mode 100644 keyboards/kapcave/paladinpad/rules.mk delete mode 100644 keyboards/kapl/rules.mk delete mode 100644 keyboards/kbdfans/d45/rules.mk delete mode 100644 keyboards/kbdfans/kbd75/rules.mk delete mode 100644 keyboards/keebio/bdn9/rules.mk delete mode 100644 keyboards/keebio/convolution/rules.mk delete mode 100644 keyboards/keebio/foldkb/rules.mk delete mode 100644 keyboards/keebio/kbo5000/rules.mk delete mode 100644 keyboards/keebio/levinson/rules.mk delete mode 100644 keyboards/keebio/quefrency/rules.mk delete mode 100644 keyboards/keebio/rorschach/rules.mk delete mode 100644 keyboards/keebio/sinc/rules.mk delete mode 100644 keyboards/keebio/viterbi/rules.mk delete mode 100644 keyboards/keycapsss/kimiko/rules.mk delete mode 100644 keyboards/kin80/rules.mk delete mode 100644 keyboards/kumaokobo/kudox/rules.mk delete mode 100644 keyboards/kumaokobo/kudox_full/rules.mk delete mode 100644 keyboards/kumaokobo/kudox_game/rules.mk delete mode 100644 keyboards/kumaokobo/pico/rules.mk delete mode 100644 keyboards/lazydesigners/dimple/rules.mk delete mode 100644 keyboards/lets_split/rules.mk delete mode 100644 keyboards/lfkeyboards/lfk87/rules.mk delete mode 100644 keyboards/lily58/rules.mk delete mode 100644 keyboards/lime/rules.mk delete mode 100644 keyboards/maple_computing/ivy/rules.mk delete mode 100644 keyboards/maple_computing/launchpad/rules.mk delete mode 100644 keyboards/maple_computing/minidox/rules.mk delete mode 100644 keyboards/mariorion_v25/rules.mk delete mode 100644 keyboards/marksard/rhymestone/rules.mk delete mode 100644 keyboards/marksard/treadstone48/rules.mk delete mode 100644 keyboards/maxipad/rules.mk delete mode 100644 keyboards/mechkeys/mechmini/rules.mk delete mode 100644 keyboards/mechllama/g35/rules.mk delete mode 100644 keyboards/mechlovin/adelais/rules.mk delete mode 100644 keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk delete mode 100644 keyboards/mechlovin/adelais/standard_led/arm/rules.mk delete mode 100644 keyboards/mechlovin/adelais/standard_led/avr/rules.mk delete mode 100644 keyboards/mechlovin/infinity87/rev1/rules.mk delete mode 100644 keyboards/mechlovin/infinity87/rules.mk delete mode 100644 keyboards/mechlovin/mechlovin9/rules.mk delete mode 100644 keyboards/mechlovin/olly/jf/rules.mk delete mode 100644 keyboards/mechlovin/zed1800/rules.mk delete mode 100644 keyboards/mechlovin/zed65/no_backlight/rules.mk delete mode 100644 keyboards/mechlovin/zed65/rules.mk delete mode 100644 keyboards/mechwild/bde/rules.mk delete mode 100644 keyboards/mechwild/mokulua/rules.mk delete mode 100644 keyboards/mechwild/obe/f401/rules.mk delete mode 100644 keyboards/mechwild/obe/f411/rules.mk delete mode 100644 keyboards/mechwild/obe/rules.mk delete mode 100644 keyboards/mechwild/waka60/f401/rules.mk delete mode 100644 keyboards/mechwild/waka60/f411/rules.mk delete mode 100644 keyboards/mechwild/waka60/rules.mk delete mode 100644 keyboards/murcielago/rules.mk delete mode 100644 keyboards/nullbitsco/scramble/rules.mk delete mode 100644 keyboards/omkbd/ergodash/rules.mk delete mode 100644 keyboards/omkbd/runner3680/rules.mk delete mode 100644 keyboards/orthodox/rules.mk delete mode 100644 keyboards/peej/rosaline/rules.mk delete mode 100644 keyboards/peej/tripel/rules.mk delete mode 100644 keyboards/peranekofactory/tone/rules.mk delete mode 100644 keyboards/phase_studio/titan65/rules.mk delete mode 100644 keyboards/pica40/rules.mk delete mode 100644 keyboards/pinky/rules.mk delete mode 100644 keyboards/primekb/meridian/rules.mk delete mode 100644 keyboards/primekb/prime_e/rules.mk delete mode 100644 keyboards/program_yoink/rules.mk delete mode 100644 keyboards/projectcain/vault35/rules.mk delete mode 100644 keyboards/qpockets/space_space/rules.mk delete mode 100644 keyboards/qwertyydox/rules.mk delete mode 100644 keyboards/redox/rev1/rules.mk delete mode 100644 keyboards/rgbkb/mun/rules.mk delete mode 100644 keyboards/rgbkb/sol/rules.mk delete mode 100644 keyboards/rgbkb/sol3/rules.mk delete mode 100644 keyboards/rgbkb/zen/rules.mk delete mode 100644 keyboards/rgbkb/zygomorph/rules.mk delete mode 100644 keyboards/rmi_kb/herringbone/rules.mk delete mode 100644 keyboards/rmi_kb/mona/rules.mk delete mode 100644 keyboards/rmi_kb/tkl_ff/rules.mk delete mode 100644 keyboards/rmi_kb/wete/rules.mk delete mode 100755 keyboards/rookiebwoy/late9/rules.mk delete mode 100755 keyboards/rookiebwoy/neopad/rules.mk delete mode 100644 keyboards/rura66/rules.mk delete mode 100644 keyboards/sawnsprojects/okayu/rules.mk delete mode 100644 keyboards/smoll/lefty/rules.mk delete mode 100644 keyboards/sofle/rules.mk delete mode 100644 keyboards/spacetime/rules.mk delete mode 100644 keyboards/splitkb/aurora/corne/rules.mk delete mode 100644 keyboards/splitkb/aurora/helix/rules.mk delete mode 100644 keyboards/splitkb/aurora/lily58/rules.mk delete mode 100644 keyboards/splitkb/aurora/sofle_v2/rules.mk delete mode 100644 keyboards/splitkb/aurora/sweep/rules.mk delete mode 100644 keyboards/splitkb/kyria/rev1/rules.mk delete mode 100644 keyboards/splitkb/kyria/rev2/rules.mk delete mode 100644 keyboards/splitty/rules.mk delete mode 100644 keyboards/studiokestra/galatea/rules.mk delete mode 100644 keyboards/takashiski/hecomi/rules.mk delete mode 100644 keyboards/themadnoodle/noodlepad/rules.mk delete mode 100644 keyboards/tkw/grandiceps/rules.mk delete mode 100644 keyboards/tominabox1/littlefoot_lx/rules.mk delete mode 100644 keyboards/tominabox1/underscore33/rules.mk delete mode 100644 keyboards/trnthsn/e8ghty/rules.mk delete mode 100644 keyboards/trnthsn/s6xty5neor2/rules.mk delete mode 100644 keyboards/tweetydabird/lotus58/rules.mk delete mode 100644 keyboards/unison/rules.mk delete mode 100644 keyboards/uzu42/rules.mk delete mode 100644 keyboards/vitamins_included/rules.mk delete mode 100644 keyboards/yanghu/unicorne/rules.mk delete mode 100644 keyboards/yosino58/rules.mk delete mode 100644 keyboards/yushakobo/navpad/10/rules.mk delete mode 100644 keyboards/yynmt/acperience12/rules.mk diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 4fd959c4eb2e..745faee80139 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1558,5 +1558,552 @@ }, "dnworks/9973": { "target": "dnworks/tkl87" + }, + // DEFAULT_FOLDER removed during 2025 Q1 cycle + "0_sixty": { + "target": "0_sixty/base" + }, + "0xcb/splaytoraid": { + "target": "0xcb/splaytoraid/rp2040_ce" + }, + "1upkeyboards/pi40": { + "target": "1upkeyboards/pi40/mit_v1_0" + }, + "1upkeyboards/pi50": { + "target": "1upkeyboards/pi50/grid" + }, + "1upkeyboards/sweet16": { + "target": "1upkeyboards/sweet16/v1" + }, + "40percentclub/i75": { + "target": "40percentclub/i75/promicro" + }, + "40percentclub/polyandry": { + "target": "40percentclub/polyandry/promicro" + }, + "8pack": { + "target": "8pack/rev12" + }, + "adkb96": { + "target": "adkb96/rev1" + }, + "adm42": { + "target": "adm42/rev4" + }, + "aeboards/satellite": { + "target": "aeboards/satellite/rev1" + }, + "atreus": { + "target": "atreus/astar" + }, + "atreyu": { + "target": "atreyu/rev1" + }, + "binepad/bn009": { + "target": "binepad/bn009/r2" + }, + "binepad/bnr1": { + "target": "binepad/bnr1/v2" + }, + "boston_meetup": { + "target": "boston_meetup/2019" + }, + "bpiphany/frosty_flake": { + "target": "bpiphany/frosty_flake/20140521" + }, + "buzzard": { + "target": "buzzard/rev1" + }, + "clickety_split/leeloo": { + "target": "clickety_split/leeloo/rev3" + }, + "crkbd": { + "target": "crkbd/rev1" + }, + "dailycraft/bat43": { + "target": "dailycraft/bat43/rev2" + }, + "dailycraft/claw44": { + "target": "dailycraft/claw44/rev1" + }, + "dailycraft/sandbox": { + "target": "dailycraft/sandbox/rev2" + }, + "dailycraft/wings42": { + "target": "dailycraft/wings42/rev2" + }, + "delikeeb/vanana": { + "target": "delikeeb/vanana/rev2" + }, + "delikeeb/waaffle/rev3": { + "target": "delikeeb/waaffle/rev3/pro_micro" + }, + "deltasplit75": { + "target": "deltasplit75/v2" + }, + "duck/octagon": { + "target": "duck/octagon/v2" + }, + "duck/orion": { + "target": "duck/orion/v3" + }, + "ducky/one2mini": { + "target": "ducky/one2mini/1861st" + }, + "ducky/one2sf": { + "target": "ducky/one2sf/1967st" + }, + "dumbpad": { + "target": "dumbpad/v0x" + }, + "durgod/galaxy": { + "target": "durgod/dgk6x/galaxy" + }, + "durgod/venus": { + "target": "durgod/dgk6x/venus" + }, + "dztech/tofu/ii": { + "target": "dztech/tofu/ii/v1" + }, + "dztech/tofu/jr": { + "target": "dztech/tofu/jr/v1" + }, + "eco": { + "target": "eco/rev2" + }, + "ergoslab": { + "target": "ergoslab/rev1" + }, + "ergotravel": { + "target": "ergotravel/rev1" + }, + "evyd13/atom47": { + "target": "evyd13/atom47/rev4" + }, + "fortitude60": { + "target": "fortitude60/rev1" + }, + "fruitykeeb/fruitbar/r1": { + "target": "fruitykeeb/fruitbar/r1/promicro" + }, + "ghs/jem": { + "target": "ghs/jem/soldered" + }, + "hadron": { + "target": "hadron/ver2" + }, + "handwired/bento": { + "target": "handwired/bento/rev1" + }, + "handwired/dactyl_manuform/6x6": { + "target": "handwired/dactyl_manuform/6x6/promicro" + }, + "handwired/ms_sculpt_mobile": { + "target": "handwired/ms_sculpt_mobile/teensy2pp" + }, + "handwired/onekey": { + "target": "handwired/onekey/promicro" + }, + "handwired/pill60": { + "target": "handwired/pill60/bluepill" + }, + "handwired/postageboard": { + "target": "handwired/postageboard/mini" + }, + "handwired/qc60": { + "target": "handwired/qc60/proto" + }, + "handwired/sono1": { + "target": "handwired/sono1/t2pp" + }, + "handwired/splittest": { + "target": "handwired/splittest/promicro" + }, + "handwired/stef9998/split_5x7": { + "target": "handwired/stef9998/split_5x7/rev1" + }, + "handwired/symmetric70_proto/promicro": { + "target": "handwired/symmetric70_proto/promicro/base" + }, + "handwired/symmetric70_proto/proton_c": { + "target": "handwired/symmetric70_proto/proton_c/base" + }, + "handwired/unk": { + "target": "handwired/unk/rev1" + }, + "hillside/46": { + "target": "hillside/46/0_1" + }, + "hillside/48": { + "target": "hillside/48/0_1" + }, + "hillside/52": { + "target": "hillside/52/0_1" + }, + "ibnuda/squiggle": { + "target": "ibnuda/squiggle/rev1" + }, + "idobao/id80/v1": { + "target": "idobao/id80/v2/ansi" + }, + "idobao/id80/v3": { + "target": "idobao/id80/v3/ansi" + }, + "inett_studio/sq80": { + "target": "inett_studio/sq80/hotswap_layout_i" + }, + "jacky_studio/bear_65": { + "target": "jacky_studio/bear_65/rev1" + }, + "jadookb/jkb65": { + "target": "jadookb/jkb65/r1" + }, + "jian": { + "target": "jian/rev2" + }, + "jiran": { + "target": "jiran/rev1" + }, + "jorne": { + "target": "jorne/rev1" + }, + "junco": { + "target": "junco/rev1" + }, + "kakunpc/business_card": { + "target": "kakunpc/business_card/beta" + }, + "kakunpc/suihankey": { + "target": "kakunpc/suihankey/rev1" + }, + "kapcave/paladinpad": { + "target": "kapcave/paladinpad/rev2" + }, + "kapl": { + "target": "kapl/rev1" + }, + "kbdfans/d45": { + "target": "kbdfans/d45/v2" + }, + "kbdfans/kbd75": { + "target": "kbdfans/kbd75/rev1" + }, + "keebio/bdn9": { + "target": "keebio/bdn9/rev1" + }, + "keebio/convolution": { + "target": "keebio/convolution/rev1" + }, + "keebio/foldkb": { + "target": "keebio/foldkb/rev1" + }, + "keebio/kbo5000": { + "target": "keebio/kbo5000/rev1" + }, + "keebio/levinson": { + "target": "keebio/levinson/rev2" + }, + "keebio/quefrency": { + "target": "keebio/quefrency/rev1" + }, + "keebio/rorschach": { + "target": "keebio/rorschach/rev1" + }, + "keebio/sinc": { + "target": "keebio/sinc/rev1" + }, + "keebio/viterbi": { + "target": "keebio/viterbi/rev2" + }, + "keycapsss/kimiko": { + "target": "keycapsss/kimiko/rev2" + }, + "kin80": { + "target": "kin80/blackpill401" + }, + "kumaokobo/kudox_full": { + "target": "kumaokobo/kudox_full/rev1" + }, + "kumaokobo/kudox_game": { + "target": "kumaokobo/kudox_game/rev2" + }, + "kumaokobo/kudox": { + "target": "kumaokobo/kudox/rev3" + }, + "kumaokobo/pico": { + "target": "kumaokobo/pico/65keys" + }, + "lazydesigners/dimple": { + "target": "lazydesigners/dimple/staggered/rev1" + }, + "lets_split": { + "target": "lets_split/rev2" + }, + "lfkeyboards/lfk87": { + "target": "lfkeyboards/lfk78/revc" + }, + "lily58": { + "target": "lily58/rev1" + }, + "lime": { + "target": "lime/rev1" + }, + "maple_computing/ivy": { + "target": "maple_computing/ivy/rev1" + }, + "maple_computing/launchpad": { + "target": "maple_computing/launchpad/rev1" + }, + "maple_computing/minidox": { + "target": "maple_computing/minidox/rev1" + }, + "mariorion_v25": { + "target": "mariorion_v25/prod" + }, + "marksard/rhymestone": { + "target": "marksard/rhymestone/rev1" + }, + "marksard/treadstone48": { + "target": "marksard/treadstone48/rev1" + }, + "maxipad": { + "target": "maxipad/promicro" + }, + "mechkeys/mechmini": { + "target": "mechkeys/mechmini/v2" + }, + "mechllama/g35": { + "target": "mechllama/g35/v2" + }, + "mechlovin/adelais": { + "target": "mechlovin/adelais/standard_led/arm/rev2" + }, + "mechlovin/adelais/standard_led/arm/rev4": { + "target": "mechlovin/adelais/standard_led/arm/rev4/stm32f303" + }, + "mechlovin/adelais/standard_led/arm": { + "target": "mechlovin/adelais/standard_led/arm/rev2" + }, + "mechlovin/adelais/standard_led/avr": { + "target": "mechlovin/adelais/standard_led/avr/rev1" + }, + "mechlovin/infinity87/rev1": { + "target": "mechlovin/infinity87/rev1/standard" + }, + "mechlovin/infinity87": { + "target": "mechlovin/infinity87/rgb_rev1" + }, + "mechlovin/mechlovin9": { + "target": "mechlovin/mechlovin9/rev1" + }, + "mechlovin/olly/jf": { + "target": "mechlovin/olly/jf/rev1" + }, + "mechlovin/zed1800": { + "target": "mechlovin/zed1800/saber" + }, + "mechlovin/zed65/no_backlight": { + "target": "mechlovin/zed65/no_backlight/wearhaus66" + }, + "mechlovin/zed65": { + "target": "mechlovin/zed65/no_backlight/wearhaus66" + }, + "mechwild/bde": { + "target": "mechwild/bde/rev2" + }, + "mechwild/mokulua": { + "target": "mechwild/mokulua/standard" + }, + "mechwild/obe/f401": { + "target": "mechwild/obe/f401/base" + }, + "mechwild/obe/f411": { + "target": "mechwild/obe/f411/base" + }, + "mechwild/obe": { + "target": "mechwild/obe/f401/base" + }, + "mechwild/waka60/f401": { + "target": "mechwild/waka60/f401/base" + }, + "mechwild/waka60/f411": { + "target": "mechwild/waka60/f411/base" + }, + "mechwild/waka60": { + "target": "mechwild/waka60/f401/base" + }, + "murcielago": { + "target": "murcielago/rev1" + }, + "nullbitsco/scramble": { + "target": "nullbitsco/scramble/v2" + }, + "omkbd/ergodash": { + "target": "omkbd/ergodash/rev1" + }, + "omkbd/runner3680": { + "target": "omkbd/runner3680/5x8" + }, + "orthodox": { + "target": "orthodox/rev3" + }, + "peej/rosaline": { + "target": "peej/rosaline/staggered" + }, + "peej/tripel": { + "target": "peej/tripel/left" + }, + "peranekofactory/tone": { + "target": "peranekofactory/tone/rev2" + }, + "phase_studio/titan65": { + "target": "phase_studio/titan65/hotswap" + }, + "pica40": { + "target": "pica40/rev2" + }, + "pinky": { + "target": "pinky/3" + }, + "primekb/meridian": { + "target": "primekb/meridian/ktr1010" + }, + "primekb/prime_e": { + "target": "primekb/prime_e/std" + }, + "program_yoink": { + "target": "program_yoink/staggered" + }, + "projectcain/vault35": { + "target": "projectcain/vault35/atmega32u4" + }, + "qpockets/space_space": { + "target": "qpockets/space_space/rev2" + }, + "qwertyydox": { + "target": "qwertyydox/rev1" + }, + "redox/rev1": { + "target": "redox/rev1/base" + }, + "rgbkb/mun": { + "target": "rgbkb/mun/rev1" + }, + "rgbkb/sol3": { + "target": "rgbkb/sol3/rev1" + }, + "rgbkb/sol": { + "target": "rgbkb/sol/rev2" + }, + "rgbkb/zen": { + "target": "rgbkb/zen/rev2" + }, + "rgbkb/zygomorph": { + "target": "rgbkb/zygomorph/rev1" + }, + "rmi_kb/herringbone": { + "target": "rmi_kb/herringbone/v1" + }, + "rmi_kb/mona": { + "target": "rmi_kb/mona/v1_1" + }, + "rmi_kb/tkl_ff": { + "target": "rmi_kb/tkl_ff/v1" + }, + "rmi_kb/wete": { + "target": "rmi_kb/wete/v2" + }, + "rookiebwoy/late9": { + "target": "rookiebwoy/late9/rev1" + }, + "rookiebwoy/neopad": { + "target": "rookiebwoy/neopad/rev1" + }, + "rura66": { + "target": "rura66/rev1" + }, + "sawnsprojects/okayu": { + "target": "sawnsprojects/okayu/stm32f072" + }, + "smoll/lefty": { + "target": "smoll/lefty/rev2" + }, + "sofle": { + "target": "sofle/rev1" + }, + "spacetime": { + "target": "spacetime/rev1" + }, + "splitkb/aurora/corne": { + "target": "splitkb/aurora/corne/rev1" + }, + "splitkb/aurora/helix": { + "target": "splitkb/aurora/helix/rev1" + }, + "splitkb/aurora/lily58": { + "target": "splitkb/aurora/lily58/rev1" + }, + "splitkb/aurora/sofle_v2": { + "target": "splitkb/aurora/sofle_v2/rev1" + }, + "splitkb/aurora/sweep": { + "target": "splitkb/aurora/sweep/rev1" + }, + "splitkb/kyria/rev1": { + "target": "splitkb/kyria/rev1/base" + }, + "splitkb/kyria/rev2": { + "target": "splitkb/kyria/rev2/base" + }, + "splitty": { + "target": "splitty/rev1" + }, + "studiokestra/galatea": { + "target": "studiokestra/galatea/rev1" + }, + "takashiski/hecomi": { + "target": "takashiski/hecomi/alpha" + }, + "themadnoodle/noodlepad": { + "target": "themadnoodle/noodlepad/v1" + }, + "tkw/grandiceps": { + "target": "tkw/grandiceps/rev1" + }, + "tominabox1/littlefoot_lx": { + "target": "tominabox1/littlefoot_lx/rev1" + }, + "tominabox1/underscore33": { + "target": "tominabox1/underscore33/rev1" + }, + "trnthsn/e8ghty": { + "target": "trnthsn/e8ghty/stm32f103" + }, + "trnthsn/s6xty5neor2": { + "target": "trnthsn/s6xty5neor2/stm32f103" + }, + "tweetydabird/lotus58": { + "target": "tweetydabird/lotus58/promicro" + }, + "unison": { + "target": "unison/v04" + }, + "uzu42": { + "target": "uzu42/rev1" + }, + "vitamins_included": { + "target": "vitamins_included/rev2" + }, + "yanghu/unicorne": { + "target": "yanghu/unicorne/f411" + }, + "yosino58": { + "target": "yosino58/rev1" + }, + "yushakobo/navpad/10": { + "target": "yushakobo/navpad/10/rev1" + }, + "yynmt/acperience12": { + "target": "yynmt/acperience12/rev1" } } diff --git a/keyboards/0_sixty/rules.mk b/keyboards/0_sixty/rules.mk deleted file mode 100644 index a0d06a89dd78..000000000000 --- a/keyboards/0_sixty/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 0_sixty/base diff --git a/keyboards/0xcb/splaytoraid/rules.mk b/keyboards/0xcb/splaytoraid/rules.mk deleted file mode 100644 index 65884dec4f94..000000000000 --- a/keyboards/0xcb/splaytoraid/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 0xcb/splaytoraid/rp2040_ce diff --git a/keyboards/1upkeyboards/pi40/rules.mk b/keyboards/1upkeyboards/pi40/rules.mk deleted file mode 100644 index 48aea570e019..000000000000 --- a/keyboards/1upkeyboards/pi40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 1upkeyboards/pi40/mit_v1_0 diff --git a/keyboards/1upkeyboards/pi50/rules.mk b/keyboards/1upkeyboards/pi50/rules.mk deleted file mode 100644 index a9660074af57..000000000000 --- a/keyboards/1upkeyboards/pi50/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 1upkeyboards/pi50/grid diff --git a/keyboards/1upkeyboards/sweet16/rules.mk b/keyboards/1upkeyboards/sweet16/rules.mk deleted file mode 100644 index 7d269ac93f55..000000000000 --- a/keyboards/1upkeyboards/sweet16/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 1upkeyboards/sweet16/v1 diff --git a/keyboards/40percentclub/i75/rules.mk b/keyboards/40percentclub/i75/rules.mk deleted file mode 100644 index 48b04275501f..000000000000 --- a/keyboards/40percentclub/i75/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 40percentclub/i75/promicro diff --git a/keyboards/40percentclub/polyandry/rules.mk b/keyboards/40percentclub/polyandry/rules.mk deleted file mode 100644 index 3064c8202cb3..000000000000 --- a/keyboards/40percentclub/polyandry/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 40percentclub/polyandry/promicro diff --git a/keyboards/8pack/rules.mk b/keyboards/8pack/rules.mk deleted file mode 100644 index 81024a71199b..000000000000 --- a/keyboards/8pack/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = 8pack/rev12 diff --git a/keyboards/adkb96/rules.mk b/keyboards/adkb96/rules.mk deleted file mode 100644 index ac7561b21dde..000000000000 --- a/keyboards/adkb96/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = adkb96/rev1 diff --git a/keyboards/adm42/rules.mk b/keyboards/adm42/rules.mk deleted file mode 100644 index 06fc88e9f6c6..000000000000 --- a/keyboards/adm42/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = adm42/rev4 \ No newline at end of file diff --git a/keyboards/aeboards/satellite/rules.mk b/keyboards/aeboards/satellite/rules.mk deleted file mode 100644 index bc32615d2b97..000000000000 --- a/keyboards/aeboards/satellite/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = aeboards/satellite/rev1 diff --git a/keyboards/atreus/rules.mk b/keyboards/atreus/rules.mk deleted file mode 100644 index d933cb327d6d..000000000000 --- a/keyboards/atreus/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = atreus/astar diff --git a/keyboards/atreyu/rules.mk b/keyboards/atreyu/rules.mk deleted file mode 100644 index 4daffe6b9d4b..000000000000 --- a/keyboards/atreyu/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = atreyu/rev1 diff --git a/keyboards/binepad/bn009/rules.mk b/keyboards/binepad/bn009/rules.mk deleted file mode 100644 index 74214d60ed03..000000000000 --- a/keyboards/binepad/bn009/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# This file is mostly left blank - -DEFAULT_FOLDER = binepad/bn009/r2 diff --git a/keyboards/binepad/bnr1/rules.mk b/keyboards/binepad/bnr1/rules.mk deleted file mode 100755 index ce85c5740460..000000000000 --- a/keyboards/binepad/bnr1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = binepad/bnr1/v2 diff --git a/keyboards/boston_meetup/rules.mk b/keyboards/boston_meetup/rules.mk deleted file mode 100644 index 6d6745a0e579..000000000000 --- a/keyboards/boston_meetup/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = boston_meetup/2019 diff --git a/keyboards/bpiphany/frosty_flake/rules.mk b/keyboards/bpiphany/frosty_flake/rules.mk deleted file mode 100644 index e5402b32f7b7..000000000000 --- a/keyboards/bpiphany/frosty_flake/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=bpiphany/frosty_flake/20140521 diff --git a/keyboards/buzzard/rules.mk b/keyboards/buzzard/rules.mk deleted file mode 100644 index 2f66720b774d..000000000000 --- a/keyboards/buzzard/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = buzzard/rev1 diff --git a/keyboards/clickety_split/leeloo/rules.mk b/keyboards/clickety_split/leeloo/rules.mk deleted file mode 100644 index 9d35960f7cf6..000000000000 --- a/keyboards/clickety_split/leeloo/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Default Folder -DEFAULT_FOLDER = clickety_split/leeloo/rev3 diff --git a/keyboards/crkbd/rules.mk b/keyboards/crkbd/rules.mk deleted file mode 100644 index 836587e45e68..000000000000 --- a/keyboards/crkbd/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = crkbd/rev1 diff --git a/keyboards/dailycraft/bat43/rules.mk b/keyboards/dailycraft/bat43/rules.mk deleted file mode 100644 index b15285194829..000000000000 --- a/keyboards/dailycraft/bat43/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dailycraft/bat43/rev2 diff --git a/keyboards/dailycraft/claw44/rules.mk b/keyboards/dailycraft/claw44/rules.mk deleted file mode 100644 index 0344b3ee2856..000000000000 --- a/keyboards/dailycraft/claw44/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dailycraft/claw44/rev1 diff --git a/keyboards/dailycraft/sandbox/rules.mk b/keyboards/dailycraft/sandbox/rules.mk deleted file mode 100644 index c62f01e18f5e..000000000000 --- a/keyboards/dailycraft/sandbox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dailycraft/sandbox/rev2 diff --git a/keyboards/dailycraft/wings42/rules.mk b/keyboards/dailycraft/wings42/rules.mk deleted file mode 100644 index b027fec9b975..000000000000 --- a/keyboards/dailycraft/wings42/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dailycraft/wings42/rev2 diff --git a/keyboards/delikeeb/vanana/rules.mk b/keyboards/delikeeb/vanana/rules.mk deleted file mode 100644 index ff3dc1df6154..000000000000 --- a/keyboards/delikeeb/vanana/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = delikeeb/vanana/rev2 diff --git a/keyboards/delikeeb/waaffle/rev3/rules.mk b/keyboards/delikeeb/waaffle/rev3/rules.mk deleted file mode 100644 index dbd58ca5bfa4..000000000000 --- a/keyboards/delikeeb/waaffle/rev3/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = delikeeb/waaffle/rev3/pro_micro diff --git a/keyboards/deltasplit75/rules.mk b/keyboards/deltasplit75/rules.mk deleted file mode 100644 index ee888337e5ed..000000000000 --- a/keyboards/deltasplit75/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = deltasplit75/v2 diff --git a/keyboards/duck/octagon/rules.mk b/keyboards/duck/octagon/rules.mk deleted file mode 100644 index 46bd457bb70d..000000000000 --- a/keyboards/duck/octagon/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = duck/octagon/v2 \ No newline at end of file diff --git a/keyboards/duck/orion/rules.mk b/keyboards/duck/orion/rules.mk deleted file mode 100644 index 3788e0fbfb76..000000000000 --- a/keyboards/duck/orion/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = duck/orion/v3 diff --git a/keyboards/ducky/one2mini/rules.mk b/keyboards/ducky/one2mini/rules.mk deleted file mode 100644 index 628be832eeb6..000000000000 --- a/keyboards/ducky/one2mini/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ducky/one2mini/1861st diff --git a/keyboards/ducky/one2sf/rules.mk b/keyboards/ducky/one2sf/rules.mk deleted file mode 100644 index 0c9ddb957f88..000000000000 --- a/keyboards/ducky/one2sf/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ducky/one2sf/1967st diff --git a/keyboards/dumbpad/rules.mk b/keyboards/dumbpad/rules.mk deleted file mode 100644 index 87ec1ab01b4e..000000000000 --- a/keyboards/dumbpad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dumbpad/v0x diff --git a/keyboards/durgod/galaxy/rules.mk b/keyboards/durgod/galaxy/rules.mk deleted file mode 100644 index ff1e1ff2050c..000000000000 --- a/keyboards/durgod/galaxy/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=durgod/dgk6x/galaxy diff --git a/keyboards/durgod/venus/rules.mk b/keyboards/durgod/venus/rules.mk deleted file mode 100644 index 57acf2a48cfe..000000000000 --- a/keyboards/durgod/venus/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=durgod/dgk6x/venus diff --git a/keyboards/dztech/tofu/ii/rules.mk b/keyboards/dztech/tofu/ii/rules.mk deleted file mode 100644 index c08cfdaae907..000000000000 --- a/keyboards/dztech/tofu/ii/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dztech/tofu/ii/v1 diff --git a/keyboards/dztech/tofu/jr/rules.mk b/keyboards/dztech/tofu/jr/rules.mk deleted file mode 100644 index 7333c613fd2d..000000000000 --- a/keyboards/dztech/tofu/jr/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = dztech/tofu/jr/v1 diff --git a/keyboards/eco/rules.mk b/keyboards/eco/rules.mk deleted file mode 100644 index a3d419658b89..000000000000 --- a/keyboards/eco/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = eco/rev2 diff --git a/keyboards/ergoslab/rules.mk b/keyboards/ergoslab/rules.mk deleted file mode 100644 index 8eb40c77d5ab..000000000000 --- a/keyboards/ergoslab/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ergoslab/rev1 diff --git a/keyboards/ergotravel/rules.mk b/keyboards/ergotravel/rules.mk deleted file mode 100644 index 3f30277bb56a..000000000000 --- a/keyboards/ergotravel/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ergotravel/rev1 diff --git a/keyboards/evyd13/atom47/rules.mk b/keyboards/evyd13/atom47/rules.mk deleted file mode 100644 index 9d5b75307775..000000000000 --- a/keyboards/evyd13/atom47/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = evyd13/atom47/rev4 diff --git a/keyboards/fortitude60/rules.mk b/keyboards/fortitude60/rules.mk deleted file mode 100644 index ef158b8cf08a..000000000000 --- a/keyboards/fortitude60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = fortitude60/rev1 diff --git a/keyboards/fruitykeeb/fruitbar/r1/rules.mk b/keyboards/fruitykeeb/fruitbar/r1/rules.mk deleted file mode 100644 index 3328de6095a6..000000000000 --- a/keyboards/fruitykeeb/fruitbar/r1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = fruitykeeb/fruitbar/r1/promicro diff --git a/keyboards/ghs/jem/rules.mk b/keyboards/ghs/jem/rules.mk deleted file mode 100644 index e96c00e5c0ab..000000000000 --- a/keyboards/ghs/jem/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ghs/jem/soldered diff --git a/keyboards/hadron/rules.mk b/keyboards/hadron/rules.mk deleted file mode 100644 index 8498675750e4..000000000000 --- a/keyboards/hadron/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = hadron/ver2 diff --git a/keyboards/handwired/bento/rules.mk b/keyboards/handwired/bento/rules.mk deleted file mode 100644 index e160faab83c4..000000000000 --- a/keyboards/handwired/bento/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/bento/rev1 diff --git a/keyboards/handwired/dactyl_manuform/6x6/rules.mk b/keyboards/handwired/dactyl_manuform/6x6/rules.mk deleted file mode 100644 index 29194b429efd..000000000000 --- a/keyboards/handwired/dactyl_manuform/6x6/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/dactyl_manuform/6x6/promicro diff --git a/keyboards/handwired/ms_sculpt_mobile/rules.mk b/keyboards/handwired/ms_sculpt_mobile/rules.mk deleted file mode 100644 index 8a3cc6858c2d..000000000000 --- a/keyboards/handwired/ms_sculpt_mobile/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/ms_sculpt_mobile/teensy2pp diff --git a/keyboards/handwired/onekey/rules.mk b/keyboards/handwired/onekey/rules.mk deleted file mode 100644 index 2094801ed913..000000000000 --- a/keyboards/handwired/onekey/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/onekey/promicro diff --git a/keyboards/handwired/pill60/rules.mk b/keyboards/handwired/pill60/rules.mk deleted file mode 100644 index 9299a64d612c..000000000000 --- a/keyboards/handwired/pill60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/pill60/bluepill diff --git a/keyboards/handwired/postageboard/rules.mk b/keyboards/handwired/postageboard/rules.mk deleted file mode 100644 index a7fcf6bea67b..000000000000 --- a/keyboards/handwired/postageboard/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER=handwired/postageboard/mini diff --git a/keyboards/handwired/qc60/rules.mk b/keyboards/handwired/qc60/rules.mk deleted file mode 100644 index 4905848cf91c..000000000000 --- a/keyboards/handwired/qc60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/qc60/proto diff --git a/keyboards/handwired/sono1/rules.mk b/keyboards/handwired/sono1/rules.mk deleted file mode 100644 index 9b472f28f2b5..000000000000 --- a/keyboards/handwired/sono1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/sono1/t2pp diff --git a/keyboards/handwired/splittest/rules.mk b/keyboards/handwired/splittest/rules.mk deleted file mode 100644 index ae4d823b53ef..000000000000 --- a/keyboards/handwired/splittest/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/splittest/promicro diff --git a/keyboards/handwired/stef9998/split_5x7/rules.mk b/keyboards/handwired/stef9998/split_5x7/rules.mk deleted file mode 100644 index f06c490f000b..000000000000 --- a/keyboards/handwired/stef9998/split_5x7/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/stef9998/split_5x7/rev1 diff --git a/keyboards/handwired/symmetric70_proto/promicro/rules.mk b/keyboards/handwired/symmetric70_proto/promicro/rules.mk deleted file mode 100644 index 7aa985b3f1d4..000000000000 --- a/keyboards/handwired/symmetric70_proto/promicro/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/symmetric70_proto/promicro/base diff --git a/keyboards/handwired/symmetric70_proto/proton_c/rules.mk b/keyboards/handwired/symmetric70_proto/proton_c/rules.mk deleted file mode 100644 index 28c4536e4bf3..000000000000 --- a/keyboards/handwired/symmetric70_proto/proton_c/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/symmetric70_proto/proton_c/base diff --git a/keyboards/handwired/unk/rules.mk b/keyboards/handwired/unk/rules.mk deleted file mode 100644 index d4536e0cbb68..000000000000 --- a/keyboards/handwired/unk/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = handwired/unk/rev1 diff --git a/keyboards/hillside/46/rules.mk b/keyboards/hillside/46/rules.mk deleted file mode 100644 index f3e926a8dc0b..000000000000 --- a/keyboards/hillside/46/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = hillside/46/0_1 \ No newline at end of file diff --git a/keyboards/hillside/48/rules.mk b/keyboards/hillside/48/rules.mk deleted file mode 100644 index d8d69d9ec1d3..000000000000 --- a/keyboards/hillside/48/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = hillside/48/0_1 diff --git a/keyboards/hillside/52/rules.mk b/keyboards/hillside/52/rules.mk deleted file mode 100644 index 402bc6bb9595..000000000000 --- a/keyboards/hillside/52/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = hillside/52/0_1 diff --git a/keyboards/ibnuda/squiggle/rules.mk b/keyboards/ibnuda/squiggle/rules.mk deleted file mode 100644 index 0214333999bd..000000000000 --- a/keyboards/ibnuda/squiggle/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = ibnuda/squiggle/rev1 diff --git a/keyboards/idobao/id80/v1/rules.mk b/keyboards/idobao/id80/v1/rules.mk deleted file mode 100644 index 20283f04be5f..000000000000 --- a/keyboards/idobao/id80/v1/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Defalt to the ansi version -DEFAULT_FOLDER = idobao/id80/v2/ansi diff --git a/keyboards/idobao/id80/v3/rules.mk b/keyboards/idobao/id80/v3/rules.mk deleted file mode 100644 index 218fc0553998..000000000000 --- a/keyboards/idobao/id80/v3/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -# Defalt to the ansi version -DEFAULT_FOLDER = idobao/id80/v3/ansi diff --git a/keyboards/inett_studio/sq80/rules.mk b/keyboards/inett_studio/sq80/rules.mk deleted file mode 100644 index d4f8260d939a..000000000000 --- a/keyboards/inett_studio/sq80/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = inett_studio/sq80/hotswap_layout_i diff --git a/keyboards/jacky_studio/bear_65/rules.mk b/keyboards/jacky_studio/bear_65/rules.mk deleted file mode 100644 index 91bb6f74b98d..000000000000 --- a/keyboards/jacky_studio/bear_65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jacky_studio/bear_65/rev1 diff --git a/keyboards/jadookb/jkb65/rules.mk b/keyboards/jadookb/jkb65/rules.mk deleted file mode 100644 index 2bbb2a41cea3..000000000000 --- a/keyboards/jadookb/jkb65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jadookb/jkb65/r1 diff --git a/keyboards/jian/rules.mk b/keyboards/jian/rules.mk deleted file mode 100644 index c19fa00b5cb9..000000000000 --- a/keyboards/jian/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jian/rev2 diff --git a/keyboards/jiran/rules.mk b/keyboards/jiran/rules.mk deleted file mode 100644 index 3ffe13302d35..000000000000 --- a/keyboards/jiran/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jiran/rev1 diff --git a/keyboards/jorne/rules.mk b/keyboards/jorne/rules.mk deleted file mode 100644 index c43649b3486e..000000000000 --- a/keyboards/jorne/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = jorne/rev1 diff --git a/keyboards/junco/rules.mk b/keyboards/junco/rules.mk deleted file mode 100644 index bb94741e5ad8..000000000000 --- a/keyboards/junco/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = junco/rev1 diff --git a/keyboards/kakunpc/business_card/rules.mk b/keyboards/kakunpc/business_card/rules.mk deleted file mode 100644 index 4525d52332a0..000000000000 --- a/keyboards/kakunpc/business_card/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kakunpc/business_card/beta diff --git a/keyboards/kakunpc/suihankey/rules.mk b/keyboards/kakunpc/suihankey/rules.mk deleted file mode 100644 index 46a0114bd576..000000000000 --- a/keyboards/kakunpc/suihankey/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kakunpc/suihankey/rev1 diff --git a/keyboards/kapcave/paladinpad/rules.mk b/keyboards/kapcave/paladinpad/rules.mk deleted file mode 100644 index 02685414e3bd..000000000000 --- a/keyboards/kapcave/paladinpad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kapcave/paladinpad/rev2 diff --git a/keyboards/kapl/rules.mk b/keyboards/kapl/rules.mk deleted file mode 100644 index a5dd22ce1c8e..000000000000 --- a/keyboards/kapl/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kapl/rev1 diff --git a/keyboards/kbdfans/d45/rules.mk b/keyboards/kbdfans/d45/rules.mk deleted file mode 100644 index 041e632f65ee..000000000000 --- a/keyboards/kbdfans/d45/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kbdfans/d45/v2 diff --git a/keyboards/kbdfans/kbd75/rules.mk b/keyboards/kbdfans/kbd75/rules.mk deleted file mode 100644 index 5c4617131612..000000000000 --- a/keyboards/kbdfans/kbd75/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kbdfans/kbd75/rev1 diff --git a/keyboards/keebio/bdn9/rules.mk b/keyboards/keebio/bdn9/rules.mk deleted file mode 100644 index 431a8ad02751..000000000000 --- a/keyboards/keebio/bdn9/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/bdn9/rev1 diff --git a/keyboards/keebio/convolution/rules.mk b/keyboards/keebio/convolution/rules.mk deleted file mode 100644 index 9df8bd1c4735..000000000000 --- a/keyboards/keebio/convolution/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/convolution/rev1 diff --git a/keyboards/keebio/foldkb/rules.mk b/keyboards/keebio/foldkb/rules.mk deleted file mode 100644 index 6a0522a902b1..000000000000 --- a/keyboards/keebio/foldkb/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/foldkb/rev1 diff --git a/keyboards/keebio/kbo5000/rules.mk b/keyboards/keebio/kbo5000/rules.mk deleted file mode 100644 index 06d2f2f41238..000000000000 --- a/keyboards/keebio/kbo5000/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/kbo5000/rev1 diff --git a/keyboards/keebio/levinson/rules.mk b/keyboards/keebio/levinson/rules.mk deleted file mode 100644 index 44cdce9d12d2..000000000000 --- a/keyboards/keebio/levinson/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/levinson/rev2 diff --git a/keyboards/keebio/quefrency/rules.mk b/keyboards/keebio/quefrency/rules.mk deleted file mode 100644 index fb40fc8a56fd..000000000000 --- a/keyboards/keebio/quefrency/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/quefrency/rev1 diff --git a/keyboards/keebio/rorschach/rules.mk b/keyboards/keebio/rorschach/rules.mk deleted file mode 100644 index 6cdac68a4e0e..000000000000 --- a/keyboards/keebio/rorschach/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/rorschach/rev1 diff --git a/keyboards/keebio/sinc/rules.mk b/keyboards/keebio/sinc/rules.mk deleted file mode 100644 index 141995747985..000000000000 --- a/keyboards/keebio/sinc/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/sinc/rev1 diff --git a/keyboards/keebio/viterbi/rules.mk b/keyboards/keebio/viterbi/rules.mk deleted file mode 100644 index ecf6a3fa8755..000000000000 --- a/keyboards/keebio/viterbi/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keebio/viterbi/rev2 diff --git a/keyboards/keycapsss/kimiko/rules.mk b/keyboards/keycapsss/kimiko/rules.mk deleted file mode 100644 index cb9f69d6bbed..000000000000 --- a/keyboards/keycapsss/kimiko/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = keycapsss/kimiko/rev2 diff --git a/keyboards/kin80/rules.mk b/keyboards/kin80/rules.mk deleted file mode 100644 index b264c9cfc5c7..000000000000 --- a/keyboards/kin80/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kin80/blackpill401 diff --git a/keyboards/kumaokobo/kudox/rules.mk b/keyboards/kumaokobo/kudox/rules.mk deleted file mode 100644 index 16c27e7c3b24..000000000000 --- a/keyboards/kumaokobo/kudox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kumaokobo/kudox/rev3 diff --git a/keyboards/kumaokobo/kudox_full/rules.mk b/keyboards/kumaokobo/kudox_full/rules.mk deleted file mode 100644 index c912dcd2e5c8..000000000000 --- a/keyboards/kumaokobo/kudox_full/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kumaokobo/kudox_full/rev1 diff --git a/keyboards/kumaokobo/kudox_game/rules.mk b/keyboards/kumaokobo/kudox_game/rules.mk deleted file mode 100644 index 28918ca489f5..000000000000 --- a/keyboards/kumaokobo/kudox_game/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kumaokobo/kudox_game/rev2 diff --git a/keyboards/kumaokobo/pico/rules.mk b/keyboards/kumaokobo/pico/rules.mk deleted file mode 100644 index df859afa0fa6..000000000000 --- a/keyboards/kumaokobo/pico/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = kumaokobo/pico/65keys diff --git a/keyboards/lazydesigners/dimple/rules.mk b/keyboards/lazydesigners/dimple/rules.mk deleted file mode 100644 index cd05623d8417..000000000000 --- a/keyboards/lazydesigners/dimple/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lazydesigners/dimple/staggered/rev1 diff --git a/keyboards/lets_split/rules.mk b/keyboards/lets_split/rules.mk deleted file mode 100644 index 0fb6d362043e..000000000000 --- a/keyboards/lets_split/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lets_split/rev2 diff --git a/keyboards/lfkeyboards/lfk87/rules.mk b/keyboards/lfkeyboards/lfk87/rules.mk deleted file mode 100644 index 05b80ac74add..000000000000 --- a/keyboards/lfkeyboards/lfk87/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lfkeyboards/lfk78/revc diff --git a/keyboards/lily58/rules.mk b/keyboards/lily58/rules.mk deleted file mode 100644 index a63bd42ad37d..000000000000 --- a/keyboards/lily58/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lily58/rev1 diff --git a/keyboards/lime/rules.mk b/keyboards/lime/rules.mk deleted file mode 100644 index 4643abab9371..000000000000 --- a/keyboards/lime/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = lime/rev1 diff --git a/keyboards/maple_computing/ivy/rules.mk b/keyboards/maple_computing/ivy/rules.mk deleted file mode 100644 index 2665d44abd70..000000000000 --- a/keyboards/maple_computing/ivy/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maple_computing/ivy/rev1 diff --git a/keyboards/maple_computing/launchpad/rules.mk b/keyboards/maple_computing/launchpad/rules.mk deleted file mode 100644 index 8c35a608a6a8..000000000000 --- a/keyboards/maple_computing/launchpad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maple_computing/launchpad/rev1 diff --git a/keyboards/maple_computing/minidox/rules.mk b/keyboards/maple_computing/minidox/rules.mk deleted file mode 100644 index d5a7f49e4022..000000000000 --- a/keyboards/maple_computing/minidox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maple_computing/minidox/rev1 diff --git a/keyboards/mariorion_v25/rules.mk b/keyboards/mariorion_v25/rules.mk deleted file mode 100644 index f0bfa47284c0..000000000000 --- a/keyboards/mariorion_v25/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mariorion_v25/prod diff --git a/keyboards/marksard/rhymestone/rules.mk b/keyboards/marksard/rhymestone/rules.mk deleted file mode 100644 index 183388870810..000000000000 --- a/keyboards/marksard/rhymestone/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = marksard/rhymestone/rev1 diff --git a/keyboards/marksard/treadstone48/rules.mk b/keyboards/marksard/treadstone48/rules.mk deleted file mode 100644 index 23865d27e63e..000000000000 --- a/keyboards/marksard/treadstone48/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = marksard/treadstone48/rev1 diff --git a/keyboards/maxipad/rules.mk b/keyboards/maxipad/rules.mk deleted file mode 100644 index 98a712a7b888..000000000000 --- a/keyboards/maxipad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = maxipad/promicro diff --git a/keyboards/mechkeys/mechmini/rules.mk b/keyboards/mechkeys/mechmini/rules.mk deleted file mode 100644 index 9d63d875ebe8..000000000000 --- a/keyboards/mechkeys/mechmini/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechkeys/mechmini/v2 diff --git a/keyboards/mechllama/g35/rules.mk b/keyboards/mechllama/g35/rules.mk deleted file mode 100644 index 36acf8d17f80..000000000000 --- a/keyboards/mechllama/g35/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechllama/g35/v2 diff --git a/keyboards/mechlovin/adelais/rules.mk b/keyboards/mechlovin/adelais/rules.mk deleted file mode 100644 index a1d2ba038de2..000000000000 --- a/keyboards/mechlovin/adelais/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk b/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk deleted file mode 100644 index d348ae660f71..000000000000 --- a/keyboards/mechlovin/adelais/standard_led/arm/rev4/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev4/stm32f303 diff --git a/keyboards/mechlovin/adelais/standard_led/arm/rules.mk b/keyboards/mechlovin/adelais/standard_led/arm/rules.mk deleted file mode 100644 index 16a636a342ba..000000000000 --- a/keyboards/mechlovin/adelais/standard_led/arm/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/adelais/standard_led/arm/rev2 \ No newline at end of file diff --git a/keyboards/mechlovin/adelais/standard_led/avr/rules.mk b/keyboards/mechlovin/adelais/standard_led/avr/rules.mk deleted file mode 100644 index f33198890dde..000000000000 --- a/keyboards/mechlovin/adelais/standard_led/avr/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ - -DEFAULT_FOLDER = mechlovin/adelais/standard_led/avr/rev1 \ No newline at end of file diff --git a/keyboards/mechlovin/infinity87/rev1/rules.mk b/keyboards/mechlovin/infinity87/rev1/rules.mk deleted file mode 100644 index 101153f240d0..000000000000 --- a/keyboards/mechlovin/infinity87/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/infinity87/rev1/standard diff --git a/keyboards/mechlovin/infinity87/rules.mk b/keyboards/mechlovin/infinity87/rules.mk deleted file mode 100644 index 4aa072cae752..000000000000 --- a/keyboards/mechlovin/infinity87/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/infinity87/rgb_rev1 diff --git a/keyboards/mechlovin/mechlovin9/rules.mk b/keyboards/mechlovin/mechlovin9/rules.mk deleted file mode 100644 index 79de7c7d316a..000000000000 --- a/keyboards/mechlovin/mechlovin9/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/mechlovin9/rev1 diff --git a/keyboards/mechlovin/olly/jf/rules.mk b/keyboards/mechlovin/olly/jf/rules.mk deleted file mode 100644 index fa0eceeb8a7d..000000000000 --- a/keyboards/mechlovin/olly/jf/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/olly/jf/rev1 diff --git a/keyboards/mechlovin/zed1800/rules.mk b/keyboards/mechlovin/zed1800/rules.mk deleted file mode 100644 index e0088c95c39e..000000000000 --- a/keyboards/mechlovin/zed1800/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/zed1800/saber diff --git a/keyboards/mechlovin/zed65/no_backlight/rules.mk b/keyboards/mechlovin/zed65/no_backlight/rules.mk deleted file mode 100644 index a699765498bb..000000000000 --- a/keyboards/mechlovin/zed65/no_backlight/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/zed65/no_backlight/wearhaus66 diff --git a/keyboards/mechlovin/zed65/rules.mk b/keyboards/mechlovin/zed65/rules.mk deleted file mode 100644 index a699765498bb..000000000000 --- a/keyboards/mechlovin/zed65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechlovin/zed65/no_backlight/wearhaus66 diff --git a/keyboards/mechwild/bde/rules.mk b/keyboards/mechwild/bde/rules.mk deleted file mode 100644 index 138a2919162a..000000000000 --- a/keyboards/mechwild/bde/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/bde/rev2 diff --git a/keyboards/mechwild/mokulua/rules.mk b/keyboards/mechwild/mokulua/rules.mk deleted file mode 100644 index 3a87a143e51f..000000000000 --- a/keyboards/mechwild/mokulua/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/mokulua/standard \ No newline at end of file diff --git a/keyboards/mechwild/obe/f401/rules.mk b/keyboards/mechwild/obe/f401/rules.mk deleted file mode 100644 index 8709dbb4de30..000000000000 --- a/keyboards/mechwild/obe/f401/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/obe/f401/base diff --git a/keyboards/mechwild/obe/f411/rules.mk b/keyboards/mechwild/obe/f411/rules.mk deleted file mode 100644 index e24fe6050948..000000000000 --- a/keyboards/mechwild/obe/f411/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/obe/f411/base diff --git a/keyboards/mechwild/obe/rules.mk b/keyboards/mechwild/obe/rules.mk deleted file mode 100644 index 8709dbb4de30..000000000000 --- a/keyboards/mechwild/obe/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/obe/f401/base diff --git a/keyboards/mechwild/waka60/f401/rules.mk b/keyboards/mechwild/waka60/f401/rules.mk deleted file mode 100644 index a0d74c14eb1c..000000000000 --- a/keyboards/mechwild/waka60/f401/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/waka60/f401/base diff --git a/keyboards/mechwild/waka60/f411/rules.mk b/keyboards/mechwild/waka60/f411/rules.mk deleted file mode 100644 index 0dd69ff65f7b..000000000000 --- a/keyboards/mechwild/waka60/f411/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/waka60/f411/base diff --git a/keyboards/mechwild/waka60/rules.mk b/keyboards/mechwild/waka60/rules.mk deleted file mode 100644 index a0d74c14eb1c..000000000000 --- a/keyboards/mechwild/waka60/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = mechwild/waka60/f401/base diff --git a/keyboards/murcielago/rules.mk b/keyboards/murcielago/rules.mk deleted file mode 100644 index 661563697a64..000000000000 --- a/keyboards/murcielago/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = murcielago/rev1 \ No newline at end of file diff --git a/keyboards/nullbitsco/scramble/rules.mk b/keyboards/nullbitsco/scramble/rules.mk deleted file mode 100644 index 5753f7786dbd..000000000000 --- a/keyboards/nullbitsco/scramble/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = nullbitsco/scramble/v2 diff --git a/keyboards/omkbd/ergodash/rules.mk b/keyboards/omkbd/ergodash/rules.mk deleted file mode 100644 index 492cdde65d78..000000000000 --- a/keyboards/omkbd/ergodash/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = omkbd/ergodash/rev1 diff --git a/keyboards/omkbd/runner3680/rules.mk b/keyboards/omkbd/runner3680/rules.mk deleted file mode 100644 index 3460ad89640b..000000000000 --- a/keyboards/omkbd/runner3680/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = omkbd/runner3680/5x8 diff --git a/keyboards/orthodox/rules.mk b/keyboards/orthodox/rules.mk deleted file mode 100644 index fd71b6c8fb11..000000000000 --- a/keyboards/orthodox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = orthodox/rev3 diff --git a/keyboards/peej/rosaline/rules.mk b/keyboards/peej/rosaline/rules.mk deleted file mode 100644 index 928164362a39..000000000000 --- a/keyboards/peej/rosaline/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = peej/rosaline/staggered diff --git a/keyboards/peej/tripel/rules.mk b/keyboards/peej/tripel/rules.mk deleted file mode 100644 index 8d8970045655..000000000000 --- a/keyboards/peej/tripel/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = peej/tripel/left diff --git a/keyboards/peranekofactory/tone/rules.mk b/keyboards/peranekofactory/tone/rules.mk deleted file mode 100644 index e87862a9f6e7..000000000000 --- a/keyboards/peranekofactory/tone/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = peranekofactory/tone/rev2 diff --git a/keyboards/phase_studio/titan65/rules.mk b/keyboards/phase_studio/titan65/rules.mk deleted file mode 100644 index d55ca35d7a1b..000000000000 --- a/keyboards/phase_studio/titan65/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = phase_studio/titan65/hotswap diff --git a/keyboards/pica40/rules.mk b/keyboards/pica40/rules.mk deleted file mode 100644 index 967088971285..000000000000 --- a/keyboards/pica40/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = pica40/rev2 diff --git a/keyboards/pinky/rules.mk b/keyboards/pinky/rules.mk deleted file mode 100644 index 89b708f68f7e..000000000000 --- a/keyboards/pinky/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = pinky/3 diff --git a/keyboards/primekb/meridian/rules.mk b/keyboards/primekb/meridian/rules.mk deleted file mode 100644 index 585a04ad2873..000000000000 --- a/keyboards/primekb/meridian/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = primekb/meridian/ktr1010 diff --git a/keyboards/primekb/prime_e/rules.mk b/keyboards/primekb/prime_e/rules.mk deleted file mode 100644 index debb966e0d10..000000000000 --- a/keyboards/primekb/prime_e/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = primekb/prime_e/std diff --git a/keyboards/program_yoink/rules.mk b/keyboards/program_yoink/rules.mk deleted file mode 100644 index a7cc1a2dbf25..000000000000 --- a/keyboards/program_yoink/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = program_yoink/staggered diff --git a/keyboards/projectcain/vault35/rules.mk b/keyboards/projectcain/vault35/rules.mk deleted file mode 100644 index 3cf3a331d8d4..000000000000 --- a/keyboards/projectcain/vault35/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = projectcain/vault35/atmega32u4 diff --git a/keyboards/qpockets/space_space/rules.mk b/keyboards/qpockets/space_space/rules.mk deleted file mode 100644 index 0ffe2efbf25e..000000000000 --- a/keyboards/qpockets/space_space/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = qpockets/space_space/rev2 diff --git a/keyboards/qwertyydox/rules.mk b/keyboards/qwertyydox/rules.mk deleted file mode 100644 index 688444b56638..000000000000 --- a/keyboards/qwertyydox/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = qwertyydox/rev1 diff --git a/keyboards/redox/rev1/rules.mk b/keyboards/redox/rev1/rules.mk deleted file mode 100644 index c971da1680bc..000000000000 --- a/keyboards/redox/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = redox/rev1/base diff --git a/keyboards/rgbkb/mun/rules.mk b/keyboards/rgbkb/mun/rules.mk deleted file mode 100644 index 317c4d5a870a..000000000000 --- a/keyboards/rgbkb/mun/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/mun/rev1 diff --git a/keyboards/rgbkb/sol/rules.mk b/keyboards/rgbkb/sol/rules.mk deleted file mode 100644 index f8325017f98b..000000000000 --- a/keyboards/rgbkb/sol/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/sol/rev2 diff --git a/keyboards/rgbkb/sol3/rules.mk b/keyboards/rgbkb/sol3/rules.mk deleted file mode 100644 index 74804682a260..000000000000 --- a/keyboards/rgbkb/sol3/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/sol3/rev1 diff --git a/keyboards/rgbkb/zen/rules.mk b/keyboards/rgbkb/zen/rules.mk deleted file mode 100644 index ee94832d4d25..000000000000 --- a/keyboards/rgbkb/zen/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/zen/rev2 diff --git a/keyboards/rgbkb/zygomorph/rules.mk b/keyboards/rgbkb/zygomorph/rules.mk deleted file mode 100644 index 8544e8767d50..000000000000 --- a/keyboards/rgbkb/zygomorph/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rgbkb/zygomorph/rev1 diff --git a/keyboards/rmi_kb/herringbone/rules.mk b/keyboards/rmi_kb/herringbone/rules.mk deleted file mode 100644 index 1efe9fa4f5eb..000000000000 --- a/keyboards/rmi_kb/herringbone/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rmi_kb/herringbone/v1 diff --git a/keyboards/rmi_kb/mona/rules.mk b/keyboards/rmi_kb/mona/rules.mk deleted file mode 100644 index 54aa705d96d5..000000000000 --- a/keyboards/rmi_kb/mona/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rmi_kb/mona/v1_1 diff --git a/keyboards/rmi_kb/tkl_ff/rules.mk b/keyboards/rmi_kb/tkl_ff/rules.mk deleted file mode 100644 index c8847cc266c1..000000000000 --- a/keyboards/rmi_kb/tkl_ff/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rmi_kb/tkl_ff/v1 diff --git a/keyboards/rmi_kb/wete/rules.mk b/keyboards/rmi_kb/wete/rules.mk deleted file mode 100644 index cda6fbfbe496..000000000000 --- a/keyboards/rmi_kb/wete/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rmi_kb/wete/v2 diff --git a/keyboards/rookiebwoy/late9/rules.mk b/keyboards/rookiebwoy/late9/rules.mk deleted file mode 100755 index 358facb3caad..000000000000 --- a/keyboards/rookiebwoy/late9/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rookiebwoy/late9/rev1 diff --git a/keyboards/rookiebwoy/neopad/rules.mk b/keyboards/rookiebwoy/neopad/rules.mk deleted file mode 100755 index c34c04435e37..000000000000 --- a/keyboards/rookiebwoy/neopad/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rookiebwoy/neopad/rev1 diff --git a/keyboards/rura66/rules.mk b/keyboards/rura66/rules.mk deleted file mode 100644 index 556ec1765591..000000000000 --- a/keyboards/rura66/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = rura66/rev1 diff --git a/keyboards/sawnsprojects/okayu/rules.mk b/keyboards/sawnsprojects/okayu/rules.mk deleted file mode 100644 index 59655554eb2c..000000000000 --- a/keyboards/sawnsprojects/okayu/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = sawnsprojects/okayu/stm32f072 \ No newline at end of file diff --git a/keyboards/smoll/lefty/rules.mk b/keyboards/smoll/lefty/rules.mk deleted file mode 100644 index 6bc5abbdc556..000000000000 --- a/keyboards/smoll/lefty/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = smoll/lefty/rev2 diff --git a/keyboards/sofle/rules.mk b/keyboards/sofle/rules.mk deleted file mode 100644 index a7307c3499e3..000000000000 --- a/keyboards/sofle/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = sofle/rev1 diff --git a/keyboards/spacetime/rules.mk b/keyboards/spacetime/rules.mk deleted file mode 100644 index ac339c2cefb0..000000000000 --- a/keyboards/spacetime/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = spacetime/rev1 diff --git a/keyboards/splitkb/aurora/corne/rules.mk b/keyboards/splitkb/aurora/corne/rules.mk deleted file mode 100644 index 9b4b90e97244..000000000000 --- a/keyboards/splitkb/aurora/corne/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 2022 splitkb.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -DEFAULT_FOLDER = splitkb/aurora/corne/rev1 diff --git a/keyboards/splitkb/aurora/helix/rules.mk b/keyboards/splitkb/aurora/helix/rules.mk deleted file mode 100644 index 8130273c1f9c..000000000000 --- a/keyboards/splitkb/aurora/helix/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/aurora/helix/rev1 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/lily58/rules.mk b/keyboards/splitkb/aurora/lily58/rules.mk deleted file mode 100644 index 1f5b922836fa..000000000000 --- a/keyboards/splitkb/aurora/lily58/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 2022 splitkb.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -DEFAULT_FOLDER = splitkb/aurora/lily58/rev1 diff --git a/keyboards/splitkb/aurora/sofle_v2/rules.mk b/keyboards/splitkb/aurora/sofle_v2/rules.mk deleted file mode 100644 index 4a50c4dbb13d..000000000000 --- a/keyboards/splitkb/aurora/sofle_v2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/aurora/sofle_v2/rev1 \ No newline at end of file diff --git a/keyboards/splitkb/aurora/sweep/rules.mk b/keyboards/splitkb/aurora/sweep/rules.mk deleted file mode 100644 index ec1e102039d5..000000000000 --- a/keyboards/splitkb/aurora/sweep/rules.mk +++ /dev/null @@ -1,16 +0,0 @@ -# Copyright 2022 splitkb.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -DEFAULT_FOLDER = splitkb/aurora/sweep/rev1 diff --git a/keyboards/splitkb/kyria/rev1/rules.mk b/keyboards/splitkb/kyria/rev1/rules.mk deleted file mode 100644 index 3a8bfbe08963..000000000000 --- a/keyboards/splitkb/kyria/rev1/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/kyria/rev1/base diff --git a/keyboards/splitkb/kyria/rev2/rules.mk b/keyboards/splitkb/kyria/rev2/rules.mk deleted file mode 100644 index fb808070bf89..000000000000 --- a/keyboards/splitkb/kyria/rev2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitkb/kyria/rev2/base diff --git a/keyboards/splitty/rules.mk b/keyboards/splitty/rules.mk deleted file mode 100644 index 68b3198bfba0..000000000000 --- a/keyboards/splitty/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = splitty/rev1 diff --git a/keyboards/studiokestra/galatea/rules.mk b/keyboards/studiokestra/galatea/rules.mk deleted file mode 100644 index b5b1db42388c..000000000000 --- a/keyboards/studiokestra/galatea/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = studiokestra/galatea/rev1 \ No newline at end of file diff --git a/keyboards/takashiski/hecomi/rules.mk b/keyboards/takashiski/hecomi/rules.mk deleted file mode 100644 index 41002fe272f1..000000000000 --- a/keyboards/takashiski/hecomi/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = takashiski/hecomi/alpha diff --git a/keyboards/themadnoodle/noodlepad/rules.mk b/keyboards/themadnoodle/noodlepad/rules.mk deleted file mode 100644 index 318832e12190..000000000000 --- a/keyboards/themadnoodle/noodlepad/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# Default folder for noodlepad -DEFAULT_FOLDER = themadnoodle/noodlepad/v1 - diff --git a/keyboards/tkw/grandiceps/rules.mk b/keyboards/tkw/grandiceps/rules.mk deleted file mode 100644 index ab8aeff26884..000000000000 --- a/keyboards/tkw/grandiceps/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tkw/grandiceps/rev1 diff --git a/keyboards/tominabox1/littlefoot_lx/rules.mk b/keyboards/tominabox1/littlefoot_lx/rules.mk deleted file mode 100644 index 4756f7600ff0..000000000000 --- a/keyboards/tominabox1/littlefoot_lx/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tominabox1/littlefoot_lx/rev1 diff --git a/keyboards/tominabox1/underscore33/rules.mk b/keyboards/tominabox1/underscore33/rules.mk deleted file mode 100644 index b5e13fd4208d..000000000000 --- a/keyboards/tominabox1/underscore33/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tominabox1/underscore33/rev1 diff --git a/keyboards/trnthsn/e8ghty/rules.mk b/keyboards/trnthsn/e8ghty/rules.mk deleted file mode 100644 index e06e8fe182d0..000000000000 --- a/keyboards/trnthsn/e8ghty/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = trnthsn/e8ghty/stm32f103 diff --git a/keyboards/trnthsn/s6xty5neor2/rules.mk b/keyboards/trnthsn/s6xty5neor2/rules.mk deleted file mode 100644 index 1fc77fba7289..000000000000 --- a/keyboards/trnthsn/s6xty5neor2/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = trnthsn/s6xty5neor2/stm32f103 diff --git a/keyboards/tweetydabird/lotus58/rules.mk b/keyboards/tweetydabird/lotus58/rules.mk deleted file mode 100644 index 4cd2262cc775..000000000000 --- a/keyboards/tweetydabird/lotus58/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = tweetydabird/lotus58/promicro \ No newline at end of file diff --git a/keyboards/unison/rules.mk b/keyboards/unison/rules.mk deleted file mode 100644 index 69c33d71a281..000000000000 --- a/keyboards/unison/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = unison/v04 diff --git a/keyboards/uzu42/rules.mk b/keyboards/uzu42/rules.mk deleted file mode 100644 index 277e74b7153d..000000000000 --- a/keyboards/uzu42/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = uzu42/rev1 diff --git a/keyboards/vitamins_included/rules.mk b/keyboards/vitamins_included/rules.mk deleted file mode 100644 index e3452d41db93..000000000000 --- a/keyboards/vitamins_included/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = vitamins_included/rev2 diff --git a/keyboards/yanghu/unicorne/rules.mk b/keyboards/yanghu/unicorne/rules.mk deleted file mode 100644 index 96852c8abfe2..000000000000 --- a/keyboards/yanghu/unicorne/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = yanghu/unicorne/f411 diff --git a/keyboards/yosino58/rules.mk b/keyboards/yosino58/rules.mk deleted file mode 100644 index c700b6f5b519..000000000000 --- a/keyboards/yosino58/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = yosino58/rev1 diff --git a/keyboards/yushakobo/navpad/10/rules.mk b/keyboards/yushakobo/navpad/10/rules.mk deleted file mode 100644 index 32daeef814d7..000000000000 --- a/keyboards/yushakobo/navpad/10/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = yushakobo/navpad/10/rev1 diff --git a/keyboards/yynmt/acperience12/rules.mk b/keyboards/yynmt/acperience12/rules.mk deleted file mode 100644 index cfe8b8ac18f0..000000000000 --- a/keyboards/yynmt/acperience12/rules.mk +++ /dev/null @@ -1 +0,0 @@ -DEFAULT_FOLDER = yynmt/acperience12/rev1 From 207dc01d49be315a1bbe77dbb9b48d49e54c1b9e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 20 Jan 2025 22:47:42 +0000 Subject: [PATCH 11/23] rgbkb/pan - Remove invalid build target (#24844) --- keyboards/rgbkb/pan/rev1/32a/rules.mk | 2 ++ keyboards/rgbkb/pan/{ => rev1/proton_c}/rules.mk | 0 2 files changed, 2 insertions(+) rename keyboards/rgbkb/pan/{ => rev1/proton_c}/rules.mk (100%) diff --git a/keyboards/rgbkb/pan/rev1/32a/rules.mk b/keyboards/rgbkb/pan/rev1/32a/rules.mk index c2ee0bc86f97..f54ef3e9878a 100644 --- a/keyboards/rgbkb/pan/rev1/32a/rules.mk +++ b/keyboards/rgbkb/pan/rev1/32a/rules.mk @@ -1,2 +1,4 @@ # Processor frequency F_CPU = 16000000 + +WS2812_DRIVER_REQUIRED = yes diff --git a/keyboards/rgbkb/pan/rules.mk b/keyboards/rgbkb/pan/rev1/proton_c/rules.mk similarity index 100% rename from keyboards/rgbkb/pan/rules.mk rename to keyboards/rgbkb/pan/rev1/proton_c/rules.mk From a98070f21288fae025c6ffa2e08b775fb661bb4b Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 21 Jan 2025 09:53:35 +1100 Subject: [PATCH 12/23] [Docs] Correct I2C API reference (#24840) --- docs/drivers/i2c.md | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md index c806a090c56e..2ef7afccc9d3 100644 --- a/docs/drivers/i2c.md +++ b/docs/drivers/i2c.md @@ -147,7 +147,7 @@ void i2c_init(void) { --- -### `i2c_status_t i2c_transmit(uint8_t address, uint8_t *data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit} +### `i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit} Send multiple bytes to the selected I2C device. @@ -155,7 +155,7 @@ Send multiple bytes to the selected I2C device. - `uint8_t address` The 7-bit I2C address of the device. - - `uint8_t *data` + - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` The number of bytes to write. Take care not to overrun the length of `data`. @@ -176,7 +176,7 @@ Receive multiple bytes from the selected I2C device. - `uint8_t address` The 7-bit I2C address of the device. - - `uint8_t *data` + - `uint8_t* data` A pointer to the buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. @@ -189,7 +189,7 @@ Receive multiple bytes from the selected I2C device. --- -### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} +### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} Writes to a register with an 8-bit address on the I2C device. @@ -199,7 +199,7 @@ Writes to a register with an 8-bit address on the I2C device. The 7-bit I2C address of the device. - `uint8_t regaddr` The register address to write to. - - `uint8_t *data` + - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` The number of bytes to write. Take care not to overrun the length of `data`. @@ -212,7 +212,7 @@ Writes to a register with an 8-bit address on the I2C device. --- -### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16} +### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16} Writes to a register with a 16-bit address (big endian) on the I2C device. @@ -222,10 +222,10 @@ Writes to a register with a 16-bit address (big endian) on the I2C device. The 7-bit I2C address of the device. - `uint16_t regaddr` The register address to write to. - - `uint8_t *data` + - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -245,8 +245,10 @@ Reads from a register with an 8-bit address on the I2C device. The 7-bit I2C address of the device. - `uint8_t regaddr` The register address to read from. + - `uint8_t data` + A pointer to a buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -266,8 +268,10 @@ Reads from a register with a 16-bit address (big endian) on the I2C device. The 7-bit I2C address of the device. - `uint16_t regaddr` The register address to read from. + - `uint8_t* data` + A pointer to a buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -279,19 +283,19 @@ Reads from a register with a 16-bit address (big endian) on the I2C device. ### `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout)` {#api-i2c-ping-address} -Pings the I2C bus for a specific address. +Pings the I2C bus for a specific address. -On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsucessful response to ping attempt). +On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). -This function is weakly defined, meaning it can be overridden if necessary for your particular use case: +This function is weakly defined, meaning it can be overridden if necessary for your particular use case. -#### Arguments +#### Arguments {#api-i2c-ping-address-arguments} - `uint8_t address` The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically). - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. -#### Return Value +#### Return Value {#api-i2c-ping-address-return} `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. From 68130cc8a5557ac997a4aa6c95c7f4c67d07229b Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 21 Jan 2025 09:53:46 +1100 Subject: [PATCH 13/23] `ferris/0_1`: update I2C API usage (#24839) --- keyboards/ferris/0_1/matrix.c | 45 +++++++++++++----------------- keyboards/ferris/0_2/matrix.c | 3 +- platforms/avr/drivers/i2c_master.h | 3 -- 3 files changed, 21 insertions(+), 30 deletions(-) diff --git a/keyboards/ferris/0_1/matrix.c b/keyboards/ferris/0_1/matrix.c index a3e2bebba6c4..c05b193c1a0b 100644 --- a/keyboards/ferris/0_1/matrix.c +++ b/keyboards/ferris/0_1/matrix.c @@ -29,7 +29,7 @@ along with this program. If not, see . #include "i2c_master.h" extern i2c_status_t mcp23017_status; -#define I2C_TIMEOUT 1000 +#define MCP23017_I2C_TIMEOUT 1000 // For a better understanding of the i2c protocol, this is a good read: // https://www.robot-electronics.co.uk/i2c-tutorial @@ -41,9 +41,7 @@ extern i2c_status_t mcp23017_status; // All address pins of the mcp23017 are connected to the ground on the ferris // | 0 | 1 | 0 | 0 | A2 | A1 | A0 | // | 0 | 1 | 0 | 0 | 0 | 0 | 0 | -#define I2C_ADDR 0b0100000 -#define I2C_ADDR_WRITE ((I2C_ADDR << 1) | I2C_WRITE) -#define I2C_ADDR_READ ((I2C_ADDR << 1) | I2C_READ) +#define I2C_ADDR (0b0100000 << 1) // Register addresses // See https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library/blob/master/Adafruit_MCP23017.h @@ -51,8 +49,8 @@ extern i2c_status_t mcp23017_status; #define IODIRB 0x01 #define GPPUA 0x0C // GPIO pull-up resistor register #define GPPUB 0x0D -#define GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) -#define GPIOB 0x13 +#define MCP23017_GPIOA 0x12 // general purpose i/o port register (write modifies OLAT) +#define MCP23017_GPIOB 0x13 #define OLATA 0x14 // output latch register #define OLATB 0x15 @@ -60,14 +58,14 @@ bool i2c_initialized = 0; i2c_status_t mcp23017_status = I2C_ADDR; uint8_t init_mcp23017(void) { - print("starting init"); + print("init mcp23017\n"); mcp23017_status = I2C_ADDR; // I2C subsystem if (i2c_initialized == 0) { i2c_init(); // on pins D(1,0) i2c_initialized = true; - wait_ms(I2C_TIMEOUT); + wait_ms(MCP23017_I2C_TIMEOUT); } // set pin direction @@ -76,8 +74,10 @@ uint8_t init_mcp23017(void) { // - driving : output : 0 // This means: we will read all the bits on GPIOA // This means: we will write to the pins 0-4 on GPIOB (in select_rows) - uint8_t buf[] = {IODIRA, 0b11111111, 0b11110000}; - mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); + uint8_t buf[] = {0b11111111, 0b11110000}; + print("before transmit\n"); + mcp23017_status = i2c_write_register(I2C_ADDR, IODIRA, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); + uprintf("after transmit %i\n", mcp23017_status); if (!mcp23017_status) { // set pull-up // - unused : on : 1 @@ -85,8 +85,8 @@ uint8_t init_mcp23017(void) { // - driving : off : 0 // This means: we will read all the bits on GPIOA // This means: we will write to the pins 0-4 on GPIOB (in select_rows) - uint8_t pullup_buf[] = {GPPUA, 0b11111111, 0b11110000}; - mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, pullup_buf, sizeof(pullup_buf), I2C_TIMEOUT); + mcp23017_status = i2c_write_register(I2C_ADDR, GPPUA, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); + uprintf("after transmit2 %i\n", mcp23017_status); } return mcp23017_status; } @@ -144,12 +144,12 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { // if (++mcp23017_reset_loop >= 1300) { // since mcp23017_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans // this will be approx bit more frequent than once per second - dprint("trying to reset mcp23017\n"); + print("trying to reset mcp23017\n"); mcp23017_status = init_mcp23017(); if (mcp23017_status) { - dprint("right side not responding\n"); + print("right side not responding\n"); } else { - dprint("right side attached\n"); + print("right side attached\n"); } } } @@ -204,18 +204,13 @@ static matrix_row_t read_cols(uint8_t row) { if (mcp23017_status) { // if there was an error return 0; } else { - uint8_t buf[] = {GPIOA}; - mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); // We read all the pins on GPIOA. // The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero. // The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys. // Since the pins connected to eact columns are sequential, and counting from zero up (col 5 -> GPIOA0, col 6 -> GPIOA1 and so on), the only transformation needed is a bitwise not to swap all zeroes and ones. uint8_t data[] = {0}; - if (!mcp23017_status) { - mcp23017_status = i2c_receive(I2C_ADDR_READ, data, sizeof(data), I2C_TIMEOUT); - data[0] = ~(data[0]); - } - return data[0]; + mcp23017_status = i2c_read_register(I2C_ADDR, MCP23017_GPIOA, data, sizeof(data), MCP23017_I2C_TIMEOUT); + return ~data[0]; } } } @@ -236,7 +231,7 @@ static void unselect_rows(void) { static void select_row(uint8_t row) { if (row < MATRIX_ROWS_PER_SIDE) { - // select on atmega32u4 + // select on MCU pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_MCU; pin_t pin = matrix_row_pins_mcu[row]; gpio_set_pin_output(pin); @@ -248,8 +243,8 @@ static void select_row(uint8_t row) { } else { // Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one. // Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus. - uint8_t buf[] = {GPIOB, 0xFF & ~(1 << (row - MATRIX_ROWS_PER_SIDE))}; - mcp23017_status = i2c_transmit(I2C_ADDR_WRITE, buf, sizeof(buf), I2C_TIMEOUT); + uint8_t buf[] = {0xFF & ~(1 << (row - MATRIX_ROWS_PER_SIDE))}; + mcp23017_status = i2c_write_register(I2C_ADDR, MCP23017_GPIOB, buf, sizeof(buf), MCP23017_I2C_TIMEOUT); } } } diff --git a/keyboards/ferris/0_2/matrix.c b/keyboards/ferris/0_2/matrix.c index 74fab717a1a1..76bbcaf7b5ff 100644 --- a/keyboards/ferris/0_2/matrix.c +++ b/keyboards/ferris/0_2/matrix.c @@ -30,8 +30,7 @@ along with this program. If not, see . extern i2c_status_t mcp23017_status; #define MCP23017_I2C_TIMEOUT 1000 -#define I2C_WRITE 0x00 -#define I2C_READ 0x01 + // For a better understanding of the i2c protocol, this is a good read: // https://www.robot-electronics.co.uk/i2c-tutorial diff --git a/platforms/avr/drivers/i2c_master.h b/platforms/avr/drivers/i2c_master.h index 258bb2b9bf22..ad92caa55aa0 100644 --- a/platforms/avr/drivers/i2c_master.h +++ b/platforms/avr/drivers/i2c_master.h @@ -21,9 +21,6 @@ #include -#define I2C_READ 0x01 -#define I2C_WRITE 0x00 - typedef int16_t i2c_status_t; #define I2C_STATUS_SUCCESS (0) From 163b894b97a5c8cf9ab80179b4d59999077ad8d5 Mon Sep 17 00:00:00 2001 From: Rory Chatterton Date: Tue, 21 Jan 2025 11:01:02 +1100 Subject: [PATCH 14/23] Updated Licence Violations for Chosfox L75 (#24833) Co-authored-by: Joel Challis --- docs/license_violations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/license_violations.md b/docs/license_violations.md index f899deb07c3f..3cb0f29efdd9 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -20,6 +20,7 @@ If you own a board from one of the following vendors already, consider asking th | Vendor | Reason | |------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | +| Chosfox | Selling L75 wired/wireless boards based on QMK without sources, just `via.json` provided. Raised on discord over multiple weeks without response. | | CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. | | Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. | | Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. | From 5650894c2047a0cf5e77456ba7e62763dd8ba04f Mon Sep 17 00:00:00 2001 From: Brian Hill <51302710+TrojanPinata@users.noreply.github.com> Date: Fri, 24 Jan 2025 12:33:38 -0500 Subject: [PATCH 15/23] Add Model-B keyboard (#24681) * Add Model-B keyboard * PR changes for Model-B * Update to OLED on Model-B * added license to pass lint check * update virtual eeprom for Model-B * eeconfig_read_kb() update on Model-B * cleanup changes for Model B * implementing Model B suggestions --- keyboards/trojan_pinata/model_b/readme.md | 32 ++ keyboards/trojan_pinata/model_b/rev0/config.h | 14 + .../trojan_pinata/model_b/rev0/keyboard.json | 122 ++++++ .../model_b/rev0/keymaps/default/keymap.c | 47 +++ .../trojan_pinata/model_b/rev0/mcuconf.h | 24 ++ keyboards/trojan_pinata/model_b/rev0/rev0.c | 397 ++++++++++++++++++ keyboards/trojan_pinata/model_b/rev0/rev0.h | 21 + 7 files changed, 657 insertions(+) create mode 100644 keyboards/trojan_pinata/model_b/readme.md create mode 100644 keyboards/trojan_pinata/model_b/rev0/config.h create mode 100644 keyboards/trojan_pinata/model_b/rev0/keyboard.json create mode 100644 keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c create mode 100644 keyboards/trojan_pinata/model_b/rev0/mcuconf.h create mode 100644 keyboards/trojan_pinata/model_b/rev0/rev0.c create mode 100644 keyboards/trojan_pinata/model_b/rev0/rev0.h diff --git a/keyboards/trojan_pinata/model_b/readme.md b/keyboards/trojan_pinata/model_b/readme.md new file mode 100644 index 000000000000..3d6ac2199dee --- /dev/null +++ b/keyboards/trojan_pinata/model_b/readme.md @@ -0,0 +1,32 @@ +# Model-B + +A 75% keyboard based on the RP2040. + +* Keyboard Maintainer: [Brian Hill](https://github.com/TrojanPinata) +* Hardware Supported: [GitHub](https://github.com/TrojanPinata/Model-B) + +## Revisions + +At the current moment there is only one variant of the Model-B, the rev-0 (aka the prototype board). Any others are clones and may not have the exact firmware requirements. + +## Building and Flashing + +Make example for this keyboard (after setting up your build environment): + + make trojan_pinata/model-b/rev0:default + +Flashing example for this keyboard: + + make trojan_pinata/model-b/rev0:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear the emulated EEPROM, so it is a good first step if the keyboard is misbehaving. +* **Physical reset button**: Hold down the `BOOTSEL` button on the Pi Pico, then either plug the board in or press the `RESET` button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, replacing the Esc key. + +After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `RPI-RP2`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded. diff --git a/keyboards/trojan_pinata/model_b/rev0/config.h b/keyboards/trojan_pinata/model_b/rev0/config.h new file mode 100644 index 000000000000..df905919280b --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/config.h @@ -0,0 +1,14 @@ +// Copyright 2022 Stefan Kerkmann +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +// settings for the oled keyboard demo with Adafruit 0.91" OLED display on the Stemma QT port +#define I2C_DRIVER I2CD0 +#define I2C1_SDA_PIN GP0 +#define I2C1_SCL_PIN GP1 + +#define OLED_TIMEOUT 3000000 // 5 minutes before oled turns off diff --git a/keyboards/trojan_pinata/model_b/rev0/keyboard.json b/keyboards/trojan_pinata/model_b/rev0/keyboard.json new file mode 100644 index 000000000000..82d712d6fcc1 --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/keyboard.json @@ -0,0 +1,122 @@ +{ + "manufacturer": "Trojan_Pinata", + "keyboard_name": "Model-B", + "maintainer": "Trojan_Pinata", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "GP27", "pin_b": "GP26"} + ] + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": true, + "encoder": true + }, + "matrix_pins": { + "cols": ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22"], + "rows": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"] + }, + "processor": "RP2040", + "url": "https://github.com/TrojanPinata/Model-B", + "usb": { + "device_version": "1.0.0", + "pid": "0xA500", + "vid": "0xE739" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 2], "x": 1.25, "y": 0}, + {"matrix": [0, 3], "x": 2.25, "y": 0}, + {"matrix": [0, 4], "x": 3.25, "y": 0}, + {"matrix": [0, 5], "x": 4.25, "y": 0}, + {"matrix": [0, 6], "x": 5.5, "y": 0}, + {"matrix": [0, 7], "x": 6.5, "y": 0}, + {"matrix": [0, 8], "x": 7.5, "y": 0}, + {"matrix": [0, 9], "x": 8.5, "y": 0}, + {"matrix": [0, 10], "x": 9.75, "y": 0}, + {"matrix": [0, 11], "x": 10.75, "y": 0}, + {"matrix": [0, 12], "x": 11.75, "y": 0}, + {"matrix": [0, 13], "x": 12.75, "y": 0}, + {"matrix": [0, 14], "x": 15.75, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 12], "x": 14, "y": 0}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + {"matrix": [3, 14], "x": 16.25, "y": 1.5}, + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 1], "x": 2.25, "y": 4.5}, + {"matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"matrix": [4, 3], "x": 4.25, "y": 4.5}, + {"matrix": [4, 4], "x": 5.25, "y": 4.5}, + {"matrix": [4, 5], "x": 6.25, "y": 4.5}, + {"matrix": [4, 6], "x": 7.25, "y": 4.5}, + {"matrix": [4, 7], "x": 8.25, "y": 4.5}, + {"matrix": [4, 8], "x": 9.25, "y": 4.5}, + {"matrix": [4, 9], "x": 10.25, "y": 4.5}, + {"matrix": [4, 10], "x": 11.25, "y": 4.5}, + {"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75}, + {"matrix": [4, 13], "x": 14.3, "y": 4.6}, + {"matrix": [4, 14], "x": 16.25, "y": 2.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 9], "x": 10, "y": 5.5}, + {"matrix": [5, 10], "x": 11, "y": 5.5}, + {"matrix": [5, 11], "x": 12, "y": 5.5}, + {"matrix": [5, 12], "x": 13.3, "y": 5.6}, + {"matrix": [5, 13], "x": 14.3, "y": 5.6}, + {"matrix": [5, 14], "x": 15.3, "y": 5.6} + ] + } + } +} diff --git a/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c b/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c new file mode 100644 index 000000000000..56c4657e7ba9 --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2024 Brian H (@Trojan_Pinata) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +// keymaps +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, QK_KB, KC_ENT, KC_HOME, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + QK_BOOT, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE, + + EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + DB_TOGG, _______, _______, KC_MYCM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP, + _______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, KC_EXEC, _______, _______ + ) +}; + +// encoder handling +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/trojan_pinata/model_b/rev0/mcuconf.h b/keyboards/trojan_pinata/model_b/rev0/mcuconf.h new file mode 100644 index 000000000000..57e58e14d78a --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/mcuconf.h @@ -0,0 +1,24 @@ +/* Copyright 2020 QMK + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#define RP_I2C_USE_I2C0 TRUE + +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/trojan_pinata/model_b/rev0/rev0.c b/keyboards/trojan_pinata/model_b/rev0/rev0.c new file mode 100644 index 000000000000..02cd92f0da3f --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/rev0.c @@ -0,0 +1,397 @@ +/* Copyright 2024 Brian H (@Trojan_Pinata) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "rev0.h" + +// NUM_MODES stays last to indicate the number of different screens possible +enum oled_modes { + MTNS, INFO, LOGO, MEW, CEL, RAY, NUM_MODES +}; + +// define the key that switches the display +enum keeb_codes { + OLED_MOD = QK_KB, +}; + +// virtual eeprom for storing last layer +typedef union { + uint32_t raw; + struct { + uint8_t display_mode_saved : 3; + }; +} keyboard_config_t; +keyboard_config_t keyboard_config; + +void keyboard_pre_init_kb(void) { + keyboard_config.raw = eeconfig_read_kb(); + keyboard_pre_init_user(); +} + +void eeconfig_init_kb(void) { + keyboard_config.raw = 0; + keyboard_config.display_mode_saved = INFO; + eeconfig_update_kb(keyboard_config.raw); + eeconfig_init_user(); +} + +// oled stuff below +#ifdef OLED_ENABLE + +// hold only let me just drop all of my embedded images rq +static const char PROGMEM bootscreen[] = { + // 'modelb-oled', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x7f, 0xfe, + 0xf0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfe, 0x3f, 0x07, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0xf0, 0xfc, 0xfe, 0x3f, 0x0f, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x1f, + 0x3f, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07, + 0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe1, + 0xe1, 0xe1, 0xe3, 0xff, 0xff, 0xbf, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x03, + 0x1f, 0x7f, 0xfc, 0xf0, 0xfe, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x07, 0x1f, 0x3f, 0x7e, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0x7c, + 0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, + 0xf8, 0x7c, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, + 0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, + 0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, + 0xc1, 0xc1, 0xc1, 0xe1, 0xff, 0xff, 0x7f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM mnts_l0[] = { + // 'base', 128x32px + 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xa0, 0xb0, 0xf0, 0xd0, 0xd0, 0xf8, 0xfc, 0xdc, 0xfe, + 0xff, 0xff, 0xff, 0xdf, 0xde, 0xde, 0x9c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0x90, 0xa0, 0x40, + 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x40, 0x40, 0x20, 0x20, 0x20, 0x90, 0xd0, 0xd0, 0xc8, 0xe8, 0xec, 0xe4, 0xfc, 0xfa, 0xfa, 0xfa, + 0xf4, 0xe4, 0xe4, 0xc8, 0xc8, 0xd8, 0x90, 0x90, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x40, 0x60, + 0x30, 0x10, 0xf8, 0x0c, 0x06, 0x02, 0x00, 0x10, 0x08, 0x18, 0x3f, 0xe8, 0x08, 0x24, 0x3c, 0x0c, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x04, 0xfe, 0x00, 0x00, + 0xb9, 0x3d, 0x3d, 0x7c, 0x3e, 0x3f, 0x3f, 0x1d, 0x0d, 0x0f, 0x0b, 0x1f, 0x1f, 0x1f, 0x1f, 0x0b, + 0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x03, 0x05, 0x07, 0x0f, 0x0b, 0x0b, 0x13, 0x13, 0x37, 0x7f, 0xf7, + 0xf7, 0xf8, 0xf0, 0xf8, 0xf8, 0xf1, 0xe1, 0xf3, 0x12, 0xd2, 0xd1, 0xd1, 0x11, 0x00, 0xc0, 0xc0, + 0xe0, 0xf0, 0x78, 0x78, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x1f, + 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x1e, 0x1f, 0x1c, 0x39, 0x39, 0x3a, 0x3c, + 0x79, 0x79, 0xf2, 0xe2, 0xe4, 0xe5, 0x85, 0x49, 0x48, 0x08, 0xd0, 0xd0, 0x90, 0x20, 0x20, 0x40, + 0x40, 0x40, 0xc1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, + 0x0b, 0x0f, 0x0f, 0x1f, 0x2f, 0x7c, 0x7c, 0xf8, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x0f, 0x0f, 0x0f, + 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x7e, 0x7f, 0xff, 0x78, 0xf8, 0xe0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, + 0x0e, 0x0e, 0x0c, 0x0c, 0x00, 0x03, 0x47, 0x46, 0xc6, 0x8c, 0x8c, 0x0c, 0x18, 0x30, 0x63, 0x4c, + 0x50, 0xcc, 0x83, 0x00, 0x00, 0x12, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x0e, 0x15, 0x13, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x70, 0x70, 0x30, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0x07, 0x0f, 0x1f, + 0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x10, 0x30, 0x30, + 0x30, 0x30, 0x38, 0x38, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, + 0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x80, 0x80, 0x40, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x60, 0x20, 0x20, 0x60, 0x20, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x0c, 0x08, 0x08, 0x10, 0x30, 0x20, 0x20, 0x60 +}; + +static const char PROGMEM mnts_l1[] = { + // 'alt', 128x32px + 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xa0, 0xb0, 0xf0, 0xd0, 0xd0, 0xf8, 0xfc, 0xdc, 0xfe, + 0xff, 0xff, 0xff, 0xdf, 0xde, 0xde, 0x9c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0x90, 0xa0, 0x40, + 0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, + 0x40, 0x40, 0x20, 0x20, 0x20, 0x90, 0xd0, 0xd0, 0xc8, 0xe8, 0xec, 0xe4, 0xfc, 0xfa, 0xfa, 0xfa, + 0xf4, 0xe4, 0xe4, 0xc8, 0xc8, 0xd8, 0x90, 0x90, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x40, 0x60, + 0x30, 0x10, 0xf8, 0x0c, 0x06, 0x02, 0x00, 0x10, 0x08, 0x18, 0x3f, 0xe8, 0x08, 0x24, 0x3c, 0x0c, + 0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x04, 0x82, 0x42, 0x22, 0x1c, 0x00, + 0xb9, 0x3d, 0x3d, 0x7c, 0x3e, 0x3f, 0x3f, 0x1d, 0x0d, 0x0f, 0x0b, 0x1f, 0x1f, 0x1f, 0x1f, 0x0b, + 0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x03, 0x05, 0x07, 0x0f, 0x0b, 0x0b, 0x13, 0x13, 0x37, 0x7f, 0xf7, + 0xf7, 0xf8, 0xf0, 0xf8, 0xf8, 0xf1, 0xe1, 0xf3, 0x12, 0xd2, 0xd1, 0xd1, 0x11, 0x00, 0xc0, 0xc0, + 0xe0, 0xf0, 0x78, 0x78, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x1f, + 0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x1e, 0x1f, 0x1c, 0x39, 0x39, 0x3a, 0x3c, + 0x79, 0x79, 0xf2, 0xe2, 0xe4, 0xe5, 0x85, 0x49, 0x48, 0x08, 0xd0, 0xd0, 0x90, 0x20, 0x20, 0x40, + 0x40, 0x40, 0xc1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x00, + 0x0b, 0x0f, 0x0f, 0x1f, 0x2f, 0x7c, 0x7c, 0xf8, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x0f, 0x0f, 0x0f, + 0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x7e, 0x7f, 0xff, 0x78, 0xf8, 0xe0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x06, + 0x0e, 0x0e, 0x0c, 0x0c, 0x00, 0x03, 0x47, 0x46, 0xc6, 0x8c, 0x8c, 0x0c, 0x18, 0x30, 0x63, 0x4c, + 0x50, 0xcc, 0x83, 0x00, 0x00, 0x12, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x0e, 0x15, 0x13, 0x0e, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x70, 0x70, 0x30, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0x07, 0x0f, 0x1f, + 0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x10, 0x30, 0x30, + 0x30, 0x30, 0x38, 0x38, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0x60, + 0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x80, 0x80, 0x40, 0x60, + 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x60, 0x20, 0x20, 0x60, 0x20, 0x60, 0x60, 0x60, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x0c, 0x08, 0x08, 0x10, 0x30, 0x20, 0x20, 0x60 +}; + +static const char PROGMEM mew_disp[] = { + // 'mewl2', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, + 0x60, 0x50, 0x10, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08, + 0x04, 0xc4, 0xf2, 0xfa, 0x7e, 0x3e, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0xa0, 0x20, 0x00, 0x10, + 0x10, 0x10, 0x10, 0x0c, 0x02, 0x22, 0x42, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xf2, 0xf2, 0xc2, 0x01, 0x00, 0xc0, 0xa0, 0xe0, 0x28, + 0x50, 0x00, 0x00, 0x00, 0x01, 0x1a, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0xe0, + 0xff, 0xff, 0xc7, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0x78, 0x78, 0x3c, 0x3c, 0x1c, 0x1c, 0x3c, 0x38, + 0x78, 0xf0, 0xe0, 0xc0, 0x00, 0x01, 0x06, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x41, 0xc0, 0x80, + 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x61, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x8c, 0xd9, 0x7b, 0x53, 0x10, + 0x08, 0x18, 0x38, 0x3c, 0x36, 0x2f, 0x6b, 0x75, 0x92, 0xee, 0x18, 0xe4, 0xfc, 0x78, 0x00, 0xc1, + 0xb7, 0xcf, 0xf3, 0xfc, 0xfd, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfe, 0xf9, + 0xf0, 0xf9, 0xff, 0x7f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x90, + 0x08, 0x09, 0x9f, 0xff, 0xff, 0xf8, 0x00, 0x38, 0xc6, 0x81, 0x8e, 0x70, 0x50, 0x50, 0x53, 0xe2, + 0x83, 0x01, 0x62, 0xab, 0xa8, 0xa8, 0x50, 0x54, 0x50, 0x89, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0x0d, 0x0c, 0x04, 0x06, 0x1e, 0x6e, + 0x80, 0x00, 0x00, 0x38, 0x08, 0x84, 0xc4, 0xfe, 0x07, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x3e, 0x7f, + 0x7f, 0x3f, 0x0f, 0x01, 0x83, 0x7c, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xc8, 0x84, 0x86, 0xcf, + 0xb7, 0x81, 0x80, 0x41, 0x43, 0x8c, 0x92, 0xe1, 0x61, 0x53, 0x2e, 0x11, 0x11, 0x19, 0x2c, 0xd0, + 0x20, 0x41, 0x40, 0x40, 0x24, 0x30, 0x20, 0x20, 0xf0, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM cel_disp[] = { + // 'celebi1', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0x20, 0xc0, 0xe0, 0xe0, 0xf0, 0xdc, 0xee, 0xf0, 0xbe, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x60, 0xc0, 0x81, 0x80, 0x80, 0xc0, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x80, 0xc0, 0xc0, 0xc0, + 0x60, 0xb0, 0xcc, 0xf0, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfc, 0xfb, + 0xf4, 0xff, 0xff, 0x7f, 0x1f, 0xcf, 0x67, 0xe3, 0xc7, 0x0f, 0x9f, 0xff, 0x3e, 0xc0, 0xf0, 0x78, + 0x90, 0xe0, 0xf2, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, + 0x3f, 0x3b, 0x3e, 0x79, 0xfe, 0xfe, 0xff, 0xfe, 0x7c, 0xfc, 0xf8, 0xd8, 0xf0, 0xf0, 0xb0, 0xa0, + 0xa0, 0xa0, 0xe0, 0xe0, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0e, 0x31, 0x40, 0xf0, 0xf8, 0xfc, 0xfe, 0xf0, 0xff, 0xf0, 0xff, 0x7f, 0x3f, 0xbf, 0x9f, + 0x9f, 0x1f, 0x3f, 0xfe, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x87, 0x8f, 0x9f, + 0x9f, 0x9f, 0xc7, 0xcc, 0xd8, 0xd8, 0x98, 0x3c, 0xfc, 0xf7, 0xfb, 0x1c, 0x1d, 0x1e, 0x1e, 0x1f, + 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x87, 0xcf, 0x6d, 0xf8, 0x72, 0xf4, + 0xf4, 0x90, 0x20, 0x20, 0xa7, 0x6f, 0x6f, 0x6b, 0x0b, 0x06, 0x06, 0x05, 0x05, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, + 0xc0, 0xc0, 0xc0, 0xc0, 0x83, 0x8f, 0x9f, 0x3f, 0x7f, 0x5f, 0xff, 0x71, 0xe0, 0xe1, 0x60, 0x62, + 0x27, 0x30, 0x18, 0x9f, 0xcf, 0xc3, 0xc0, 0xc0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03, + 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0xe0, 0xe0, 0xc8, 0x9c, 0xf8, 0x60, 0x28, 0x3c, 0x7e, 0x7e, 0xfe, 0xff, 0xfc, 0xe1, + 0x07, 0x1f, 0x3f, 0x3e, 0x7d, 0x7b, 0x73, 0x72, 0xe2, 0xe0, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03, + 0x01, 0x01, 0xc1, 0xc1, 0x03, 0x03, 0x03, 0x23, 0x01, 0x0d, 0x06, 0x07, 0x37, 0x33, 0x01, 0x01, + 0x07, 0x0e, 0x3c, 0x39, 0x79, 0x71, 0x71, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const char PROGMEM rayq_disp[] = { + // 'rayquaza1', 128x32px + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, + 0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x70, 0x70, 0x71, 0x50, 0x60, 0x60, 0x60, 0x40, 0x80, 0x80, + 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0x80, 0x00, 0xc0, 0x60, 0x00, 0x00, 0x80, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0, + 0xe0, 0x60, 0x70, 0x70, 0x7b, 0x7b, 0xfb, 0xfb, 0xf8, 0xb0, 0xb0, 0xd0, 0x60, 0x30, 0x10, 0x08, + 0x0c, 0x84, 0x86, 0x83, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x30, 0x1c, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0x11, 0x12, 0x10, 0x10, 0x0e, 0x0e, 0x0c, 0x0c, 0x07, + 0x07, 0x0f, 0x0f, 0x03, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x9f, 0xf3, 0x3e, 0xe7, 0xfc, 0x7f, 0x3f, 0x0f, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3c, 0x2e, 0x57, 0x17, 0x1b, 0x1d, 0x36, + 0x36, 0x3d, 0x31, 0x31, 0x39, 0x3d, 0x3d, 0x1d, 0x1f, 0x1f, 0xcf, 0x3f, 0x07, 0x00, 0x00, 0x81, + 0x83, 0x83, 0x83, 0x03, 0x07, 0x07, 0x07, 0x0f, 0x0e, 0x1e, 0x1c, 0x3c, 0x78, 0xf8, 0xf0, 0xe0, + 0x00, 0x40, 0xc0, 0x00, 0x60, 0x38, 0x38, 0x20, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x7f, 0xfe, 0xec, 0xf8, 0x7c, 0x3c, + 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xcf, 0x80, 0x07, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x08, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc1, + 0x07, 0x0f, 0x9f, 0xbe, 0x78, 0xf0, 0xc0, 0x00, 0x80, 0x00, 0x80, 0x30, 0x30, 0x30, 0x11, 0x19, + 0x18, 0x02, 0x07, 0x1f, 0x1f, 0x3c, 0x73, 0xcf, 0x0f, 0x0f, 0x0f, 0x17, 0x2f, 0x56, 0x20, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1d, 0x3b, 0xff, 0xff, 0xfc, 0xf8, 0xf0, + 0x60, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x68, 0x78, 0x10, 0x00, 0x18, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xfc, 0xf8, 0xe0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, + 0xf0, 0xf0, 0xf0, 0xf1, 0xe1, 0x41, 0x04, 0x1e, 0xcf, 0xc7, 0x44, 0x63, 0x59, 0x6d, 0x0a, 0x03, + 0x03, 0x0c, 0x0e, 0x05, 0x03, 0x02, 0x02, 0x1b, 0xec, 0x67, 0x5b, 0x1c, 0x8c, 0xcc, 0xdc, 0x30, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xc0, 0x3f, 0xfc, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +// invert display based on layer +static void inv_display(void) { + switch (get_highest_layer(layer_state)) { + case 1: + oled_invert(true); + break; + default: + oled_invert(false); + break; + } +} + +// MTNS +static void mountains(void) { + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_raw_P(mnts_l0, sizeof(mnts_l0)); + break; + case 1: + oled_write_raw_P(mnts_l1, sizeof(mnts_l1)); + break; + default: + oled_write_raw_P(mnts_l0, sizeof(mnts_l0)); + break; + } +} + +// INFO +static void info(void) { + // get layer the board is on + oled_write_P(PSTR("LAYER "), false); + oled_write_P(PSTR(" "), true); + oled_write_char(get_highest_layer(layer_state) + 0x30, true); + oled_write_P(PSTR(" "), true); + + // here we do a bit of trickery + oled_write_P(PSTR(" ENC "), false); + oled_write_P(PSTR(" VOL "), true); + + // lock key statuses + led_t led_state = host_keyboard_led_state(); + oled_set_cursor(9, 1); + oled_write_P(PSTR(" CAP "), led_state.caps_lock); + oled_set_cursor(14, 1); + oled_write_P(PSTR(" SCR "), led_state.scroll_lock); + + // write model B here in invert text + oled_set_cursor(0, 3); + oled_write_P(PSTR(" MODEL-B "), true); + + // mod masks - if you don't know what these do, don't worry about them + uint8_t mod_state = get_mods(); + oled_advance_char(); + oled_advance_char(); + oled_write_P(PSTR("S"), mod_state & MOD_MASK_SHIFT); + oled_advance_char(); + oled_write_P(PSTR("C"), mod_state & MOD_MASK_CTRL); + oled_advance_char(); + oled_write_P(PSTR("A"), mod_state & MOD_MASK_ALT); + oled_advance_char(); + oled_write_P(PSTR("G"), mod_state & MOD_MASK_GUI); + oled_advance_char(); +} + +// display logo - used on boot and exception state +static void logo(void) { + oled_write_raw_P(bootscreen, sizeof(bootscreen)); +} + +// run this whenever the oled needs to update +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + switch (keyboard_config.display_mode_saved) { + case MTNS: + mountains(); + break; + case INFO: + info(); + break; + case LOGO: + oled_write_raw_P(bootscreen, sizeof(bootscreen)); // write image to screen + inv_display(); // invert image if necessary - remove if layer differs + break; + case MEW: + oled_write_raw_P(mew_disp, sizeof(mew_disp)); + inv_display(); + break; + case CEL: + oled_write_raw_P(cel_disp, sizeof(cel_disp)); + inv_display(); + break; + case RAY: + oled_write_raw_P(rayq_disp, sizeof(rayq_disp)); + inv_display(); + break; + default: + logo(); + } + return false; +} + +// render this on boot/reset +void oled_render_boot(bool bootloader) { + oled_clear(); + logo(); + oled_render_dirty(true); +} + +// change depending on if OLED_MOD is pressed +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { + return false; + } + if (keycode == OLED_MOD && record->event.pressed) { + oled_clear(); + keyboard_config.display_mode_saved++; + if (keyboard_config.display_mode_saved == NUM_MODES) { + keyboard_config.display_mode_saved = 0; + } + eeconfig_update_kb(keyboard_config.raw); + } + return true; +} + +#endif diff --git a/keyboards/trojan_pinata/model_b/rev0/rev0.h b/keyboards/trojan_pinata/model_b/rev0/rev0.h new file mode 100644 index 000000000000..18906806c984 --- /dev/null +++ b/keyboards/trojan_pinata/model_b/rev0/rev0.h @@ -0,0 +1,21 @@ +/* Copyright 2024 Brian H (@Trojan_Pinata) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +void oled_render_boot(bool bootloader); From 6a9ccae18d6a9cd39dbbd5c0fb9aa26f4742c2f7 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Fri, 24 Jan 2025 19:11:38 -0800 Subject: [PATCH 16/23] Fix missing wait.h include in Dip Switch Map (#24863) --- quantum/dip_switch.c | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index 69cf6652919f..65ae21175b4b 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -64,6 +64,7 @@ __attribute__((weak)) bool dip_switch_update_mask_kb(uint32_t state) { #ifdef DIP_SWITCH_MAP_ENABLE # include "keymap_introspection.h" # include "action.h" +# include "wait.h" # ifndef DIP_SWITCH_MAP_KEY_DELAY # define DIP_SWITCH_MAP_KEY_DELAY TAP_CODE_DELAY From a6e931400ead19d3d34ca4a57785d1512dc2d12b Mon Sep 17 00:00:00 2001 From: Ryan Date: Sat, 25 Jan 2025 17:38:12 +1100 Subject: [PATCH 17/23] Relocate base WS2812 code (#24850) --- builddefs/common_features.mk | 2 ++ drivers/{ => led}/ws2812.c | 0 drivers/{ => led}/ws2812.h | 0 keyboards/ibm/model_m/mschwingen/mschwingen.c | 5 ++++- 4 files changed, 6 insertions(+), 1 deletion(-) rename drivers/{ => led}/ws2812.c (100%) rename drivers/{ => led}/ws2812.h (100%) diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 989048d71740..c88ce36011c8 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -944,6 +944,8 @@ ifeq ($(strip $(WS2812_DRIVER_REQUIRED)), yes) OPT_DEFS += -DWS2812_$(strip $(shell echo $(WS2812_DRIVER) | tr '[:lower:]' '[:upper:]')) + COMMON_VPATH += $(DRIVER_PATH)/led + SRC += ws2812.c ws2812_$(strip $(WS2812_DRIVER)).c ifeq ($(strip $(PLATFORM)), CHIBIOS) diff --git a/drivers/ws2812.c b/drivers/led/ws2812.c similarity index 100% rename from drivers/ws2812.c rename to drivers/led/ws2812.c diff --git a/drivers/ws2812.h b/drivers/led/ws2812.h similarity index 100% rename from drivers/ws2812.h rename to drivers/led/ws2812.h diff --git a/keyboards/ibm/model_m/mschwingen/mschwingen.c b/keyboards/ibm/model_m/mschwingen/mschwingen.c index cb4854d8d1a3..34a878c76998 100644 --- a/keyboards/ibm/model_m/mschwingen/mschwingen.c +++ b/keyboards/ibm/model_m/mschwingen/mschwingen.c @@ -19,9 +19,12 @@ #include "uart.h" #include "print.h" #include "sendchar.h" -#include "ws2812.h" #include "sleep_led.h" +#ifdef KEYBOARD_ibm_model_m_mschwingen_led_ws2812 +#include "ws2812.h" +#endif + #ifdef UART_DEBUG # undef sendchar static int8_t capture_sendchar(uint8_t c) { From 0a049163f148cd07cf2f58ce31b5809bfbacee18 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 26 Jan 2025 02:58:38 +1100 Subject: [PATCH 18/23] [License Violation] add pressplayid (#24869) add pressplayid lic viol Co-authored-by: Xelus22 <> --- docs/license_violations.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/license_violations.md b/docs/license_violations.md index 3cb0f29efdd9..81a6ba517f76 100644 --- a/docs/license_violations.md +++ b/docs/license_violations.md @@ -33,6 +33,7 @@ If you own a board from one of the following vendors already, consider asking th | mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. | | MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. | | owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. | +| pressplayid | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided | | qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. | | Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. | | Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. | From 5f711f04f163deaa4b781fc0ff5a13b6b81024c1 Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Sun, 26 Jan 2025 00:06:29 +0700 Subject: [PATCH 19/23] [Keyboard] Add Support E8ghtyNeo (#24859) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update support S6xty5 * Delete chconf.h * Update manufacturer, community layout for hhkb * Update layout * fix row index * Update tyson60s * Update community layout and layout name * Update remove rgb test mode * Update capslock led * Apply suggestions from code review Co-authored-by: Duncan Sutherland * Remove deprecated s6xty5 * handle init e8ghtyneo firmware * Update qk boot firmware * Update firmware e8ghtyNeo * Update matrix * update manufacture * Update copyright --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/e8ghtyneo/config.h | 23 + keyboards/trnthsn/e8ghtyneo/halconf.h | 21 + keyboards/trnthsn/e8ghtyneo/info.json | 992 ++++++++++++++++++ .../e8ghtyneo/keymaps/default/keymap.c | 39 + keyboards/trnthsn/e8ghtyneo/mcuconf.h | 22 + keyboards/trnthsn/e8ghtyneo/readme.md | 27 + .../trnthsn/e8ghtyneo/stm32f072/keyboard.json | 4 + .../trnthsn/e8ghtyneo/stm32f103/keyboard.json | 4 + 8 files changed, 1132 insertions(+) create mode 100644 keyboards/trnthsn/e8ghtyneo/config.h create mode 100644 keyboards/trnthsn/e8ghtyneo/halconf.h create mode 100644 keyboards/trnthsn/e8ghtyneo/info.json create mode 100644 keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/e8ghtyneo/mcuconf.h create mode 100644 keyboards/trnthsn/e8ghtyneo/readme.md create mode 100644 keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/e8ghtyneo/config.h b/keyboards/trnthsn/e8ghtyneo/config.h new file mode 100644 index 000000000000..5e5c1eb155c3 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2025 Tyson.Keebs + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#define WS2812_SPI_DRIVER SPID2 +#define WS2812_SPI_MOSI_PAL_MODE 0 +#define WS2812_SPI_SCK_PAL_MODE 0 +#define WS2812_SPI_SCK_PIN B13 diff --git a/keyboards/trnthsn/e8ghtyneo/halconf.h b/keyboards/trnthsn/e8ghtyneo/halconf.h new file mode 100644 index 000000000000..75fea51332ed --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2025 Tyson.Keebs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next diff --git a/keyboards/trnthsn/e8ghtyneo/info.json b/keyboards/trnthsn/e8ghtyneo/info.json new file mode 100644 index 000000000000..fef6259d2410 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/info.json @@ -0,0 +1,992 @@ +{ + "manufacturer": "Tyson.Keebs", + "keyboard_name": "E8ghtyNeo", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["A9", "A8", "B14", "B12", "B11", "B10", "B0", "A7", "A6", "A4", "A3", "A2", "A1", "A0", "C13", "B9", "B7"], + "rows": ["B8", "A10", "B1", "A5", "C15", "C14"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "default": { + "animation": "rainbow_mood" + }, + "led_count": 4, + "sleep": true + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "indicators": { + "caps_lock": "B3" + }, + "url": "", + "usb": { + "vid": "0x5453", + "pid": "0x3845", + "device_version": "0.0.1" + }, + "community_layouts": [ + "tkl_ansi_tsangan", + "tkl_ansi_tsangan_split_bs_rshift", + "tkl_iso_tsangan", + "tkl_iso_tsangan_split_bs_rshift" + ], + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_ansi_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + {"label": "\\", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_wkl": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + }, + "LAYOUT_tkl_iso_wkl_split_bs_rshift": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + + {"label": "F1", "matrix": [0, 1], "x": 2, "y": 0}, + {"label": "F2", "matrix": [0, 2], "x": 3, "y": 0}, + {"label": "F3", "matrix": [0, 3], "x": 4, "y": 0}, + {"label": "F4", "matrix": [0, 4], "x": 5, "y": 0}, + + {"label": "F5", "matrix": [0, 5], "x": 6.5, "y": 0}, + {"label": "F6", "matrix": [0, 6], "x": 7.5, "y": 0}, + {"label": "F7", "matrix": [0, 7], "x": 8.5, "y": 0}, + {"label": "F8", "matrix": [0, 8], "x": 9.5, "y": 0}, + + {"label": "F9", "matrix": [0, 9], "x": 11, "y": 0}, + {"label": "F10", "matrix": [0, 10], "x": 12, "y": 0}, + {"label": "F11", "matrix": [0, 11], "x": 13, "y": 0}, + {"label": "F12", "matrix": [0, 12], "x": 14, "y": 0}, + + {"label": "Print Screen", "matrix": [0, 14], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [0, 16], "x": 17.25, "y": 0}, + + {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25}, + {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25}, + {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25}, + {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25}, + {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25}, + {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25}, + {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25}, + {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25}, + {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25}, + {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25}, + {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25}, + {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25}, + {"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 1.25}, + {"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25}, + + {"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"label": "Page Up", "matrix": [1, 16], "x": 17.25, "y": 1.25}, + + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25}, + {"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25}, + {"label": "E", "matrix": [2, 3], "x": 3.5, "y": 2.25}, + {"label": "R", "matrix": [2, 4], "x": 4.5, "y": 2.25}, + {"label": "T", "matrix": [2, 5], "x": 5.5, "y": 2.25}, + {"label": "Y", "matrix": [2, 6], "x": 6.5, "y": 2.25}, + {"label": "U", "matrix": [2, 7], "x": 7.5, "y": 2.25}, + {"label": "I", "matrix": [2, 8], "x": 8.5, "y": 2.25}, + {"label": "O", "matrix": [2, 9], "x": 9.5, "y": 2.25}, + {"label": "P", "matrix": [2, 10], "x": 10.5, "y": 2.25}, + {"label": "[", "matrix": [2, 11], "x": 11.5, "y": 2.25}, + {"label": "]", "matrix": [2, 12], "x": 12.5, "y": 2.25}, + + {"label": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25}, + {"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25}, + {"label": "Page Down", "matrix": [2, 16], "x": 17.25, "y": 2.25}, + + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25}, + {"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25}, + {"label": "D", "matrix": [3, 3], "x": 3.75, "y": 3.25}, + {"label": "F", "matrix": [3, 4], "x": 4.75, "y": 3.25}, + {"label": "G", "matrix": [3, 5], "x": 5.75, "y": 3.25}, + {"label": "H", "matrix": [3, 6], "x": 6.75, "y": 3.25}, + {"label": "J", "matrix": [3, 7], "x": 7.75, "y": 3.25}, + {"label": "K", "matrix": [3, 8], "x": 8.75, "y": 3.25}, + {"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25}, + {"label": ";", "matrix": [3, 10], "x": 10.75, "y": 3.25}, + {"label": "'", "matrix": [3, 11], "x": 11.75, "y": 3.25}, + {"label": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2}, + + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25}, + {"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.25}, + {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25}, + {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25}, + {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25}, + {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25}, + {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25}, + {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25}, + {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25}, + {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25}, + {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25}, + {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25}, + {"label": "Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75}, + {"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25}, + + {"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25}, + + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5}, + {"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5}, + {"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7}, + {"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5}, + {"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5}, + + {"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25}, + {"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25}, + {"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c b/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c new file mode 100644 index 000000000000..31f1b5208a65 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + // │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │Prs│Srk│Ps │ + // └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + // ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ + // │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ │Ins│Hm │PgU│ + // ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ + // │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│ + // ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘ + // │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │ + // ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐ + // │Sft │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │ + // ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐ + // │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │ + // └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, + KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLD, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/e8ghtyneo/mcuconf.h b/keyboards/trnthsn/e8ghtyneo/mcuconf.h new file mode 100644 index 000000000000..e96308a9a17f --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2025 Tyson.Keebs + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include_next + +#undef STM32_SPI_USE_SPI2 +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/trnthsn/e8ghtyneo/readme.md b/keyboards/trnthsn/e8ghtyneo/readme.md new file mode 100644 index 000000000000..7c7419e773c2 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/readme.md @@ -0,0 +1,27 @@ +# E8ghtyNeo + +![E8ghtyNeo](https://imgur.com/YXYfqzZ.png) + +A TKL keyboard PCB compatible with Neo80. Supports Neo80 keyboard like an out-of-the-box PCB without any modification. + +* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) +* Hardware Supported: STM32, E8ghtyNeo, Neo80 +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/e8ghtyneo/stm32f072:default + +Flashing example for this keyboard: + + make trnthsn/e8ghtyneo/stm32f072:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json b/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json new file mode 100644 index 000000000000..b5d728b1cdf1 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu", +} diff --git a/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json b/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json new file mode 100644 index 000000000000..5b2b6bc7d930 --- /dev/null +++ b/keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot", +} From 291d154d7b13efb83f24c76df26277f32b9f0a58 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 26 Jan 2025 23:46:46 +1100 Subject: [PATCH 20/23] Unify UART headers (#24855) * Remove deprecated defines * Move default config to .c files * Unify UART headers * Clean up docs * Reorganise PAL mode defaults --- docs/drivers/uart.md | 26 +-- drivers/uart.h | 62 ++++++++ platforms/avr/drivers/uart.h | 39 ----- platforms/chibios/drivers/uart.h | 200 ------------------------ platforms/chibios/drivers/uart_serial.c | 83 ++++++++++ platforms/chibios/drivers/uart_sio.c | 67 ++++++++ 6 files changed, 225 insertions(+), 252 deletions(-) create mode 100644 drivers/uart.h delete mode 100644 platforms/avr/drivers/uart.h delete mode 100644 platforms/chibios/drivers/uart.h diff --git a/docs/drivers/uart.md b/docs/drivers/uart.md index 7cc68727eec1..b895266cab27 100644 --- a/docs/drivers/uart.md +++ b/docs/drivers/uart.md @@ -45,17 +45,17 @@ To enable UART, modify your board's `mcuconf.h` to enable the peripheral you've Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. -| `config.h` override | Description | Default Value | -| --------------------------- | --------------------------------------------------------------- | ------------- | -| `#define UART_DRIVER` | USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc. | `SD1` | -| `#define UART_TX_PIN` | The pin to use for TX | `A9` | -| `#define UART_TX_PAL_MODE` | The alternate function mode for TX | `7` | -| `#define UART_RX_PIN` | The pin to use for RX | `A10` | -| `#define UART_RX_PAL_MODE` | The alternate function mode for RX | `7` | -| `#define UART_CTS_PIN` | The pin to use for CTS | `A11` | -| `#define UART_CTS_PAL_MODE` | The alternate function mode for CTS | `7` | -| `#define UART_RTS_PIN` | The pin to use for RTS | `A12` | -| `#define UART_RTS_PAL_MODE` | The alternate function mode for RTS | `7` | +|`config.h` Override|Description |Default| +|-------------------|---------------------------------------------------------------|-------| +|`UART_DRIVER` |USART peripheral to use - USART1 -> `SD1`, USART2 -> `SD2` etc.|`SD1` | +|`UART_TX_PIN` |The pin to use for TX |`A9` | +|`UART_TX_PAL_MODE` |The alternate function mode for TX |`7` | +|`UART_RX_PIN` |The pin to use for RX |`A10` | +|`UART_RX_PAL_MODE` |The alternate function mode for RX |`7` | +|`UART_CTS_PIN` |The pin to use for CTS |`A11` | +|`UART_CTS_PAL_MODE`|The alternate function mode for CTS |`7` | +|`UART_RTS_PIN` |The pin to use for RTS |`A12` | +|`UART_RTS_PAL_MODE`|The alternate function mode for RTS |`7` | ## API {#api} @@ -111,7 +111,7 @@ Receive multiple bytes. #### Arguments {#api-uart-receive-arguments} - `uint8_t *data` - A pointer to the buffer to read into. + A pointer to a buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. @@ -123,4 +123,4 @@ Return whether the receive buffer contains data. Call this function to determine #### Return Value {#api-uart-available-return} -`true` if the receive buffer length is non-zero. +`true` if there is data available to read. diff --git a/drivers/uart.h b/drivers/uart.h new file mode 100644 index 000000000000..c5068c86e1c4 --- /dev/null +++ b/drivers/uart.h @@ -0,0 +1,62 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include + +/** + * \file + * + * \defgroup uart UART API + * + * \brief API to communicate with UART devices. + * \{ + */ + +/** + * \brief Initialize the UART driver. This function must be called only once, before any of the below functions can be called. + * + * \param baud The baud rate to transmit and receive at. This may depend on the device you are communicating with. Common values are 1200, 2400, 4800, 9600, 19200, 38400, 57600, and 115200. + */ +void uart_init(uint32_t baud); + +/** + * \brief Transmit a single byte. + * + * \param data The byte to write. + */ +void uart_write(uint8_t data); + +/** + * \brief Receive a single byte. + * + * \return The byte read from the receive buffer. This function will block if the buffer is empty (ie. no data to read). + */ +uint8_t uart_read(void); + +/** + * \brief Transmit multiple bytes. + * + * \param data A pointer to the data to write from. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + */ +void uart_transmit(const uint8_t *data, uint16_t length); + +/** + * \brief Receive multiple bytes. + * + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + */ +void uart_receive(uint8_t *data, uint16_t length); + +/** + * \brief Return whether the receive buffer contains data. Call this function to determine if `uart_read()` will return data immediately. + * + * \return true if there is data available to read. + */ +bool uart_available(void); + +/** \} */ diff --git a/platforms/avr/drivers/uart.h b/platforms/avr/drivers/uart.h deleted file mode 100644 index e2dc664eda57..000000000000 --- a/platforms/avr/drivers/uart.h +++ /dev/null @@ -1,39 +0,0 @@ -/* UART Example for Teensy USB Development Board - * http://www.pjrc.com/teensy/ - * Copyright (c) 2009 PJRC.COM, LLC - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -#pragma once - -#include -#include - -void uart_init(uint32_t baud); - -void uart_write(uint8_t data); - -uint8_t uart_read(void); - -void uart_transmit(const uint8_t *data, uint16_t length); - -void uart_receive(uint8_t *data, uint16_t length); - -bool uart_available(void); diff --git a/platforms/chibios/drivers/uart.h b/platforms/chibios/drivers/uart.h deleted file mode 100644 index c1945575f133..000000000000 --- a/platforms/chibios/drivers/uart.h +++ /dev/null @@ -1,200 +0,0 @@ -// Copyright 2024 Stefan Kerkmann -// Copyright 2021 QMK -// Copyright 2024 Stefan Kerkmann -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#include -#include - -#include - -#include "gpio.h" -#include "chibios_config.h" - -// ======== DEPRECATED DEFINES - DO NOT USE ======== -#ifdef SERIAL_DRIVER -# define UART_DRIVER SERIAL_DRIVER -#endif -#ifdef SD1_TX_PIN -# define UART_TX_PIN SD1_TX_PIN -#endif -#ifdef SD1_RX_PIN -# define UART_RX_PIN SD1_RX_PIN -#endif -#ifdef SD1_CTS_PIN -# define UART_CTS_PIN SD1_CTS_PIN -#endif -#ifdef SD1_RTS_PIN -# define UART_RTS_PIN SD1_RTS_PIN -#endif -#ifdef SD1_TX_PAL_MODE -# define UART_TX_PAL_MODE SD1_TX_PAL_MODE -#endif -#ifdef SD1_RX_PAL_MODE -# define UART_RX_PAL_MODE SD1_RX_PAL_MODE -#endif -#ifdef SD1_CTS_PAL_MODE -# define UART_RTS_PAL_MODE SD1_CTS_PAL_MODE -#endif -#ifdef SD1_RTS_PAL_MODE -# define UART_TX_PAL_MODE SD1_RTS_PAL_MODE -#endif -#ifdef SD1_CR1 -# define UART_CR1 SD1_CR1 -#endif -#ifdef SD1_CR2 -# define UART_CR2 SD1_CR2 -#endif -#ifdef SD1_CR3 -# define UART_CR3 SD1_CR3 -#endif -#ifdef SD1_WRDLEN -# define UART_WRDLEN SD1_WRDLEN -#endif -#ifdef SD1_STPBIT -# define UART_STPBIT SD1_STPBIT -#endif -#ifdef SD1_PARITY -# define UART_PARITY SD1_PARITY -#endif -#ifdef SD1_ATFLCT -# define UART_ATFLCT SD1_ATFLCT -#endif -// ======== - -#ifndef UART_DRIVER -# if (HAL_USE_SERIAL == TRUE) -# define UART_DRIVER SD1 -# elif (HAL_USE_SIO == TRUE) -# define UART_DRIVER SIOD1 -# endif -#endif - -#ifndef UART_TX_PIN -# define UART_TX_PIN A9 -#endif - -#ifndef UART_RX_PIN -# define UART_RX_PIN A10 -#endif - -#ifndef UART_CTS_PIN -# define UART_CTS_PIN A11 -#endif - -#ifndef UART_RTS_PIN -# define UART_RTS_PIN A12 -#endif - -#ifdef USE_GPIOV1 -# ifndef UART_TX_PAL_MODE -# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# endif -# ifndef UART_RX_PAL_MODE -# define UART_RX_PAL_MODE PAL_MODE_INPUT -# endif -# ifndef UART_CTS_PAL_MODE -# define UART_CTS_PAL_MODE PAL_MODE_INPUT -# endif -# ifndef UART_RTS_PAL_MODE -# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# endif -#else -# ifndef UART_TX_PAL_MODE -# define UART_TX_PAL_MODE 7 -# endif - -# ifndef UART_RX_PAL_MODE -# define UART_RX_PAL_MODE 7 -# endif - -# ifndef UART_CTS_PAL_MODE -# define UART_CTS_PAL_MODE 7 -# endif - -# ifndef UART_RTS_PAL_MODE -# define UART_RTS_PAL_MODE 7 -# endif -#endif - -#ifndef UART_CR1 -# define UART_CR1 0 -#endif - -#ifndef UART_CR2 -# define UART_CR2 0 -#endif - -#ifndef UART_CR3 -# define UART_CR3 0 -#endif - -#ifndef UART_WRDLEN -# define UART_WRDLEN 3 -#endif - -#ifndef UART_STPBIT -# define UART_STPBIT 0 -#endif - -#ifndef UART_PARITY -# define UART_PARITY 0 -#endif - -#ifndef UART_ATFLCT -# define UART_ATFLCT 0 -#endif - -/** - * @brief Initialize the UART driver. This function must be called only once, - * before any of the below functions can be called. - * - * @param baud The baud rate to transmit and receive at. This may depend on the - * device you are communicating with. Common values are 1200, 2400, 4800, 9600, - * 19200, 38400, 57600, and 115200. - */ -void uart_init(uint32_t baud); - -/** - * @brief Transmit a single byte. - * - * @param data The byte to transmit. - */ -void uart_write(uint8_t data); - -/** - * @brief Receive a single byte. - * - * @return uint8_t The byte read from the receive buffer. This function will - * block if the buffer is empty (ie. no data to read). - */ -uint8_t uart_read(void); - -/** - * @brief Transmit multiple bytes. - * - * @param data A pointer to the data to write from. - * @param length The number of bytes to write. Take care not to overrun the - * length of `data`. - */ -void uart_transmit(const uint8_t *data, uint16_t length); - -/** - * @brief Receive multiple bytes. - * - * @param data A pointer to the buffer to read into. - * @param length The number of bytes to read. Take care not to overrun the - * length of `data`. - */ -void uart_receive(uint8_t *data, uint16_t length); - -/** - * @brief Return whether the receive buffer contains data. Call this function - * to determine if `uart_read()` will return data immediately. - * - * @return true If there is data available to read. - * @return false If there is no data available to read. - */ -bool uart_available(void); diff --git a/platforms/chibios/drivers/uart_serial.c b/platforms/chibios/drivers/uart_serial.c index 6aff4eae47a2..e0afb9768a1d 100644 --- a/platforms/chibios/drivers/uart_serial.c +++ b/platforms/chibios/drivers/uart_serial.c @@ -3,6 +3,89 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "uart.h" +#include "gpio.h" +#include "chibios_config.h" +#include + +#ifndef UART_DRIVER +# define UART_DRIVER SD1 +#endif + +#ifndef UART_TX_PIN +# define UART_TX_PIN A9 +#endif + +#ifndef UART_TX_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define UART_TX_PAL_MODE 7 +# endif +#endif + +#ifndef UART_RX_PIN +# define UART_RX_PIN A10 +#endif + +#ifndef UART_RX_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_RX_PAL_MODE PAL_MODE_INPUT +# else +# define UART_RX_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CTS_PIN +# define UART_CTS_PIN A11 +#endif + +#ifndef UART_CTS_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_CTS_PAL_MODE PAL_MODE_INPUT +# else +# define UART_CTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_RTS_PIN +# define UART_RTS_PIN A12 +#endif + +#ifndef UART_RTS_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define UART_RTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CR1 +# define UART_CR1 0 +#endif + +#ifndef UART_CR2 +# define UART_CR2 0 +#endif + +#ifndef UART_CR3 +# define UART_CR3 0 +#endif + +#ifndef UART_WRDLEN +# define UART_WRDLEN 3 +#endif + +#ifndef UART_STPBIT +# define UART_STPBIT 0 +#endif + +#ifndef UART_PARITY +# define UART_PARITY 0 +#endif + +#ifndef UART_ATFLCT +# define UART_ATFLCT 0 +#endif #if defined(MCU_KINETIS) static SerialConfig serialConfig = {SERIAL_DEFAULT_BITRATE}; diff --git a/platforms/chibios/drivers/uart_sio.c b/platforms/chibios/drivers/uart_sio.c index 442df1c54d82..fc12f0abed98 100644 --- a/platforms/chibios/drivers/uart_sio.c +++ b/platforms/chibios/drivers/uart_sio.c @@ -3,6 +3,73 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "uart.h" +#include "gpio.h" +#include "chibios_config.h" +#include + +#ifndef UART_DRIVER +# define UART_DRIVER SIOD1 +#endif + +#ifndef UART_TX_PIN +# define UART_TX_PIN A9 +#endif + +#ifndef UART_TX_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_TX_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define UART_TX_PAL_MODE 7 +# endif +#endif + +#ifndef UART_RX_PIN +# define UART_RX_PIN A10 +#endif + +#ifndef UART_RX_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_RX_PAL_MODE PAL_MODE_INPUT +# else +# define UART_RX_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CTS_PIN +# define UART_CTS_PIN A11 +#endif + +#ifndef UART_CTS_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_CTS_PAL_MODE PAL_MODE_INPUT +# else +# define UART_CTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_RTS_PIN +# define UART_RTS_PIN A12 +#endif + +#ifndef UART_RTS_PAL_MODE +# ifdef USE_GPIOV1 +# define UART_RTS_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define UART_RTS_PAL_MODE 7 +# endif +#endif + +#ifndef UART_CR1 +# define UART_CR1 0 +#endif + +#ifndef UART_CR2 +# define UART_CR2 0 +#endif + +#ifndef UART_CR3 +# define UART_CR3 0 +#endif #if defined(MCU_RP) // 38400 baud, 8 data bits, 1 stop bit, no parity, no flow control From ef29a46c87e3a82459b3af4158f7888d55c0b22b Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 26 Jan 2025 23:48:46 +1100 Subject: [PATCH 21/23] Unify i2c_master headers (#24846) * Unify i2c_master headers * More documentation improvements * Reorganise PAL mode defaults --- docs/drivers/i2c.md | 94 +++++++++++------ drivers/i2c_master.h | 141 +++++++++++++++++++++++++ platforms/avr/drivers/i2c_master.h | 41 ------- platforms/chibios/drivers/i2c_master.c | 43 ++++---- platforms/chibios/drivers/i2c_master.h | 42 -------- 5 files changed, 225 insertions(+), 136 deletions(-) create mode 100644 drivers/i2c_master.h delete mode 100644 platforms/avr/drivers/i2c_master.h delete mode 100644 platforms/chibios/drivers/i2c_master.h diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md index 2ef7afccc9d3..ad74d0e481d1 100644 --- a/docs/drivers/i2c.md +++ b/docs/drivers/i2c.md @@ -16,17 +16,22 @@ You can then call the I2C API by including `i2c_master.h` in your code. ## I2C Addressing {#note-on-i2c-addresses} -All of the addresses expected by this driver should be pushed to the upper 7 bits of the address byte. Setting -the lower bit (indicating read/write) will be done by the respective functions. Almost all I2C addresses listed -on datasheets and the internet will be represented as 7 bits occupying the lower 7 bits and will need to be -shifted to the left (more significant) by one bit. This is easy to do via the bitwise shift operator `<< 1`. +I2C addresses listed on datasheets and the internet are usually represented as a 7-bit value. The eighth bit (the least significant bit) controls whether the operation is a read or a write. -You can either do this on each call to the functions below, or once in your definition of the address. For example, if your device has an address of `0x18`: +All of the address parameters expected by the driver API should therefore be pushed to the upper 7 bits of the address byte; the driver will take care of setting the read/write bit as appropriate. + +This is easy to do via the bitwise left shift operator. For example, if your device has an address of `0x18` you might create a define for convenience: ```c #define MY_I2C_ADDRESS (0x18 << 1) ``` +Or, you can shift the address ahead of time: + +```c +#define MY_I2C_ADDRESS 0x30 +``` + See https://www.robot-electronics.co.uk/i2c-tutorial for more information about I2C addressing and other technical details. ## AVR Configuration {#avr-configuration} @@ -39,12 +44,12 @@ The following defines can be used to configure the I2C master driver: No further setup is required - just connect the `SDA` and `SCL` pins of your I2C devices to the matching pins on the MCU: -|MCU |`SCL`|`SDA`| -|------------------|-----|-----| -|ATmega16/32U4 |`D0` |`D1` | -|AT90USB64/128 |`D0` |`D1` | -|ATmega32A |`C0` |`C1` | -|ATmega328/P |`C5` |`C4` | +|MCU |`SCL`|`SDA`| +|-------------|-----|-----| +|ATmega16/32U4|`D0` |`D1` | +|AT90USB64/128|`D0` |`D1` | +|ATmega32A |`C0` |`C1` | +|ATmega328/P |`C5` |`C4` | ::: tip The ATmega16/32U2 does not possess I2C functionality, and so cannot use this driver. @@ -52,7 +57,7 @@ The ATmega16/32U2 does not possess I2C functionality, and so cannot use this dri ## ChibiOS/ARM Configuration {#arm-configuration} -You'll need to determine which pins can be used for I2C -- a an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc. +You'll need to determine which pins can be used for I2C -- as an example, STM32 parts generally have multiple I2C peripherals, labeled I2C1, I2C2, I2C3 etc. To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your board's `mcuconf.h` to enable the peripheral you've chosen: @@ -83,15 +88,19 @@ To enable I2C, modify your board's `halconf.h` to enable I2C, then modify your b Configuration-wise, you'll need to set up the peripheral as per your MCU's datasheet -- the defaults match the pins for a Proton-C, i.e. STM32F303. -|`config.h` Overrride |Description |Default| -|------------------------|--------------------------------------------------------------|-------| -|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc. |`I2CD1`| -|`I2C1_SCL_PIN` |The pin definition for SCL |`B6` | -|`I2C1_SCL_PAL_MODE` |The alternate function mode for SCL |`4` | -|`I2C1_SDA_PIN` |The pin definition for SDA |`B7` | -|`I2C1_SDA_PAL_MODE` |The alternate function mode for SDA |`4` | +|`config.h` Override|Description |Default| +|-------------------|-------------------------------------------------------------|-------| +|`I2C_DRIVER` |I2C peripheral to use - I2C1 -> `I2CD1`, I2C2 -> `I2CD2` etc.|`I2CD1`| +|`I2C1_SCL_PIN` |The pin to use for SCL |`B6` | +|`I2C1_SCL_PAL_MODE`|The alternate function mode for SCL |`4` | +|`I2C1_SDA_PIN` |The pin to use for SDA |`B7` | +|`I2C1_SDA_PAL_MODE`|The alternate function mode for SDA |`4` | + +::: tip +Currently only a single I2C peripheral is supported, therefore the `I2C1_*` defines are used for configuration regardless of the selected peripheral. +::: -The following configuration values depend on the specific MCU in use. +The following configuration values are dependent on the ChibiOS I2C LLD, which is dictated by the microcontroller. ### I2Cv1 {#arm-configuration-i2cv1} @@ -158,7 +167,7 @@ Send multiple bytes to the selected I2C device. - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -168,6 +177,29 @@ Send multiple bytes to the selected I2C device. --- +### `i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-transmit-p} + +Send multiple bytes from PROGMEM to the selected I2C device. + +On ARM devices, this function is simply an alias for `i2c_transmit(address, data, length, timeout)`. + +#### Arguments {#api-i2c-transmit-p-arguments} + + - `uint8_t address` + The 7-bit I2C address of the device. + - `const uint8_t* data` + A pointer to the data to transmit. + - `uint16_t length` + The number of bytes to write. Take care not to overrun the length of `data`. + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value {#api-i2c-transmit-p-return} + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + ### `i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-receive} Receive multiple bytes from the selected I2C device. @@ -177,9 +209,9 @@ Receive multiple bytes from the selected I2C device. - `uint8_t address` The 7-bit I2C address of the device. - `uint8_t* data` - A pointer to the buffer to read into. + A pointer to a buffer to read into. - `uint16_t length` - The number of bytes to read. Take care not to overrun the length of `data`. + The number of bytes to read. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -191,7 +223,7 @@ Receive multiple bytes from the selected I2C device. ### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} -Writes to a register with an 8-bit address on the I2C device. +Write to a register with an 8-bit address on the I2C device. #### Arguments {#api-i2c-write-register-arguments} @@ -202,7 +234,7 @@ Writes to a register with an 8-bit address on the I2C device. - `const uint8_t* data` A pointer to the data to transmit. - `uint16_t length` - The number of bytes to write. Take care not to overrun the length of `data`. + The number of bytes to write. Take care not to overrun the length of `data`. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. @@ -214,7 +246,7 @@ Writes to a register with an 8-bit address on the I2C device. ### `i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register16} -Writes to a register with a 16-bit address (big endian) on the I2C device. +Write to a register with a 16-bit address (big endian) on the I2C device. #### Arguments {#api-i2c-write-register16-arguments} @@ -237,7 +269,7 @@ Writes to a register with a 16-bit address (big endian) on the I2C device. ### `i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register} -Reads from a register with an 8-bit address on the I2C device. +Read from a register with an 8-bit address on the I2C device. #### Arguments {#api-i2c-read-register-arguments} @@ -260,7 +292,7 @@ Reads from a register with an 8-bit address on the I2C device. ### `i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-read-register16} -Reads from a register with a 16-bit address (big endian) on the I2C device. +Read from a register with a 16-bit address (big endian) on the I2C device. #### Arguments {#api-i2c-read-register16-arguments} @@ -283,16 +315,16 @@ Reads from a register with a 16-bit address (big endian) on the I2C device. ### `i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout)` {#api-i2c-ping-address} -Pings the I2C bus for a specific address. +Ping the I2C bus for a specific address. -On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the requested address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). +On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). This function is weakly defined, meaning it can be overridden if necessary for your particular use case. #### Arguments {#api-i2c-ping-address-arguments} - `uint8_t address` - The 7-bit I2C address of the device (ie. without the read/write bit - this will be set automatically). + The 7-bit I2C address of the device. - `uint16_t timeout` The time in milliseconds to wait for a response from the target device. diff --git a/drivers/i2c_master.h b/drivers/i2c_master.h new file mode 100644 index 000000000000..dbe1cd42faa4 --- /dev/null +++ b/drivers/i2c_master.h @@ -0,0 +1,141 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include + +/** + * \file + * + * \defgroup i2c_master I2C Master API + * + * \brief API to communicate with I2C devices. + * \{ + */ + +typedef int16_t i2c_status_t; + +#define I2C_STATUS_SUCCESS (0) +#define I2C_STATUS_ERROR (-1) +#define I2C_STATUS_TIMEOUT (-2) + +#define I2C_TIMEOUT_IMMEDIATE (0) +#define I2C_TIMEOUT_INFINITE (0xFFFF) + +/** + * \brief Initialize the I2C driver. This function must be called only once, before any of the below functions can be called. + * + * This function is weakly defined, meaning it can be overridden if necessary for your particular use case. + */ +void i2c_init(void); + +/** + * \brief Send multiple bytes to the selected I2C device. + * + * \param address The 7-bit I2C address of the device. + * \param data A pointer to the data to transmit. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); + +#if defined(__AVR__) || defined(__DOXYGEN__) +/** + * \brief Send multiple bytes from PROGMEM to the selected I2C device. + * + * On ARM devices, this function is simply an alias for i2c_transmit(address, data, length, timeout). + * + * \param address The 7-bit I2C address of the device. + * \param data A pointer to the data to transmit. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); +#else +# define i2c_transmit_P(address, data, length, timeout) i2c_transmit(address, data, length, timeout) +#endif + +/** + * \brief Receive multiple bytes from the selected I2C device. + * + * \param address The 7-bit I2C address of the device. + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Write to a register with an 8-bit address on the I2C device. + * + * \param devaddr The 7-bit I2C address of the device. + * \param regaddr The register address to write to. + * \param data A pointer to the data to transmit. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Write to a register with a 16-bit address (big endian) on the I2C device. + * + * \param devaddr The 7-bit I2C address of the device. + * \param regaddr The register address to write to. + * \param data A pointer to the data to transmit. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Read from a register with an 8-bit address on the I2C device. + * + * \param devaddr The 7-bit I2C address of the device. + * \param regaddr The register address to read from. + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Read from a register with a 16-bit address (big endian) on the I2C device. + * + * \param devaddr The 7-bit I2C address of the device. + * \param regaddr The register address to read from. + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); + +/** + * \brief Ping the I2C bus for a specific address. + * + * On ChibiOS a "best effort" attempt is made by reading a single byte from register 0 at the given address. This should generally work except for I2C devices that do not not respond to a register 0 read request, which will result in a false negative result (unsuccessful response to ping attempt). + * + * This function is weakly defined, meaning it can be overridden if necessary for your particular use case. + * + * \param address The 7-bit I2C address of the device. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ +i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); + +/** \} */ diff --git a/platforms/avr/drivers/i2c_master.h b/platforms/avr/drivers/i2c_master.h deleted file mode 100644 index ad92caa55aa0..000000000000 --- a/platforms/avr/drivers/i2c_master.h +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright (C) 2019 Elia Ritterbusch - + - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -/* Library made by: g4lvanix - * GitHub repository: https://github.com/g4lvanix/I2C-master-lib - */ - -#pragma once - -#include - -typedef int16_t i2c_status_t; - -#define I2C_STATUS_SUCCESS (0) -#define I2C_STATUS_ERROR (-1) -#define I2C_STATUS_TIMEOUT (-2) - -#define I2C_TIMEOUT_IMMEDIATE (0) -#define I2C_TIMEOUT_INFINITE (0xFFFF) - -void i2c_init(void); -i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c index 0d5fb1e9853a..1d7fe276334b 100644 --- a/platforms/chibios/drivers/i2c_master.c +++ b/platforms/chibios/drivers/i2c_master.c @@ -29,17 +29,37 @@ #include "i2c_master.h" #include "gpio.h" #include "chibios_config.h" -#include #include #include +#ifndef I2C_DRIVER +# define I2C_DRIVER I2CD1 +#endif + #ifndef I2C1_SCL_PIN # define I2C1_SCL_PIN B6 #endif + +#ifndef I2C1_SCL_PAL_MODE +# ifdef USE_GPIOV1 +# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN +# else +# define I2C1_SCL_PAL_MODE 4 +# endif +#endif + #ifndef I2C1_SDA_PIN # define I2C1_SDA_PIN B7 #endif +#ifndef I2C1_SDA_PAL_MODE +# ifdef USE_GPIOV1 +# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN +# else +# define I2C1_SDA_PAL_MODE 4 +# endif +#endif + #ifdef USE_I2CV1 # ifndef I2C1_OPMODE # define I2C1_OPMODE OPMODE_I2C @@ -70,27 +90,6 @@ # endif #endif -#ifndef I2C_DRIVER -# define I2C_DRIVER I2CD1 -#endif - -#ifdef USE_GPIOV1 -# ifndef I2C1_SCL_PAL_MODE -# define I2C1_SCL_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN -# endif -# ifndef I2C1_SDA_PAL_MODE -# define I2C1_SDA_PAL_MODE PAL_MODE_ALTERNATE_OPENDRAIN -# endif -#else -// The default PAL alternate modes are used to signal that the pins are used for I2C -# ifndef I2C1_SCL_PAL_MODE -# define I2C1_SCL_PAL_MODE 4 -# endif -# ifndef I2C1_SDA_PAL_MODE -# define I2C1_SDA_PAL_MODE 4 -# endif -#endif - static const I2CConfig i2cconfig = { #if defined(USE_I2CV1_CONTRIB) I2C1_CLOCK_SPEED, diff --git a/platforms/chibios/drivers/i2c_master.h b/platforms/chibios/drivers/i2c_master.h deleted file mode 100644 index 2215f89ad2b3..000000000000 --- a/platforms/chibios/drivers/i2c_master.h +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2018 Jack Humbert - * Copyright 2018 Yiancar - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* This library follows the convention of the AVR i2c_master library. - * As a result addresses are expected to be already shifted (addr << 1). - * I2CD1 is the default driver which corresponds to pins B6 and B7. This - * can be changed. - * Please ensure that HAL_USE_I2C is TRUE in the halconf.h file and that - * STM32_I2C_USE_I2C1 is TRUE in the mcuconf.h file. - */ -#pragma once - -#include - -typedef int16_t i2c_status_t; - -#define I2C_STATUS_SUCCESS (0) -#define I2C_STATUS_ERROR (-1) -#define I2C_STATUS_TIMEOUT (-2) - -void i2c_init(void); -i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_write_register16(uint8_t devaddr, uint16_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_read_register(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_read_register16(uint8_t devaddr, uint16_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout); -i2c_status_t i2c_ping_address(uint8_t address, uint16_t timeout); From 04c2dbd3dfa23bf6fdffa35ae53cf66aa3f33fba Mon Sep 17 00:00:00 2001 From: Mick Hohmann Date: Sun, 26 Jan 2025 17:25:15 +0100 Subject: [PATCH 22/23] Add keyboard clap_studio/flame60 (#24870) - Got the source code from the _Clap_Studio_ Discord server - Migrated the source code to `keyboard.json` format - Added more layouts for most common cases - Fixed errors in `keymaps/default/keymap.c` - Updated the picture with a real picture of the PCB, to avoid confusion --- keyboards/clap_studio/flame60/keyboard.json | 663 ++++++++++++++++++ .../flame60/keymaps/default/keymap.c | 35 + keyboards/clap_studio/flame60/readme.md | 27 + 3 files changed, 725 insertions(+) create mode 100644 keyboards/clap_studio/flame60/keyboard.json create mode 100644 keyboards/clap_studio/flame60/keymaps/default/keymap.c create mode 100644 keyboards/clap_studio/flame60/readme.md diff --git a/keyboards/clap_studio/flame60/keyboard.json b/keyboards/clap_studio/flame60/keyboard.json new file mode 100644 index 000000000000..7f6b9014ae61 --- /dev/null +++ b/keyboards/clap_studio/flame60/keyboard.json @@ -0,0 +1,663 @@ +{ + "manufacturer": "Clap_Studio", + "keyboard_name": "Flame60", + "maintainer": "Freather", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B3", "B7", "D3", "D2", "D1", "D0", "B5", "B4", "D7", "D6", "D4"], + "rows": ["F4", "F1", "D5", "B6", "F5"] + }, + "processor": "atmega32u4", + "url": "https://www.instagram.com/clap__studio__/", + "usb": { + "device_version": "1.0.0", + "pid": "0x464C", + "vid": "0x434C" + }, + "layout_aliases": { + "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + + {"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0}, + {"matrix": [0, 12], "x": 12, "y": 0}, + {"matrix": [0, 13], "x": 13, "y": 0}, + {"matrix": [1, 13], "x": 14, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 1.5, "y": 1}, + {"matrix": [1, 2], "x": 2.5, "y": 1}, + {"matrix": [1, 3], "x": 3.5, "y": 1}, + {"matrix": [1, 4], "x": 4.5, "y": 1}, + {"matrix": [1, 5], "x": 5.5, "y": 1}, + {"matrix": [1, 6], "x": 6.5, "y": 1}, + {"matrix": [1, 7], "x": 7.5, "y": 1}, + {"matrix": [1, 8], "x": 8.5, "y": 1}, + {"matrix": [1, 9], "x": 9.5, "y": 1}, + {"matrix": [1, 10], "x": 10.5, "y": 1}, + {"matrix": [1, 11], "x": 11.5, "y": 1}, + {"matrix": [1, 12], "x": 12.5, "y": 1}, + + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 1.75, "y": 2}, + {"matrix": [2, 2], "x": 2.75, "y": 2}, + {"matrix": [2, 3], "x": 3.75, "y": 2}, + {"matrix": [2, 4], "x": 4.75, "y": 2}, + {"matrix": [2, 5], "x": 5.75, "y": 2}, + {"matrix": [2, 6], "x": 6.75, "y": 2}, + {"matrix": [2, 7], "x": 7.75, "y": 2}, + {"matrix": [2, 8], "x": 8.75, "y": 2}, + {"matrix": [2, 9], "x": 9.75, "y": 2}, + {"matrix": [2, 10], "x": 10.75, "y": 2}, + {"matrix": [2, 11], "x": 11.75, "y": 2}, + {"matrix": [2, 13], "x": 12.75, "y": 2}, + {"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 14, "y": 3}, + + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 1], "x": 1.5, "y": 4}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/clap_studio/flame60/keymaps/default/keymap.c b/keyboards/clap_studio/flame60/keymaps/default/keymap.c new file mode 100644 index 000000000000..bbf725d3b040 --- /dev/null +++ b/keyboards/clap_studio/flame60/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│ Fn │Ctrl│ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + */ + [0] = LAYOUT_60_ansi( + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/clap_studio/flame60/readme.md b/keyboards/clap_studio/flame60/readme.md new file mode 100644 index 000000000000..9e1c6a116385 --- /dev/null +++ b/keyboards/clap_studio/flame60/readme.md @@ -0,0 +1,27 @@ +# Flame60 + +![Flame60 PCB](https://i.imgur.com/vdOxw3j.jpeg) + +The Flame60 consists of a screwless exterior, flex cut pcb and plate to ensure a soft typing experience. + +* Keyboard Maintainer: [CMM.Studio Freather](https://github.com/frankBTHID) +* Hardware Supported: Atmega32u4 +* Hardware Availability: [CLAP.STUDIO (Instagram)](https://www.instagram.com/clap__studio__/) + +Make example for this keyboard (after setting up your build environment): + + make clap_studio/flame60:default + +Flashing example for this keyboard: + + make clap_studio/flame60:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From ee63d39058deee162b794c62d7180d61f540914a Mon Sep 17 00:00:00 2001 From: Ryan Date: Mon, 27 Jan 2025 08:37:37 +1100 Subject: [PATCH 23/23] Unify spi_master headers (#24857) * Move default config to .c file * Explicitly define PAL modes for boards with custom init * Unify spi_master headers --- docs/drivers/spi.md | 8 +- drivers/spi_master.h | 116 ++++++++++++++++++ .../darkproject/kd83a_bfg_edition/config.h | 3 + .../darkproject/kd87a_bfg_edition/config.h | 3 + keyboards/gmmk/gmmk2/p96/config.h | 3 + keyboards/jukaie/jk01/config.h | 3 + .../projectd/65/projectd_65_ansi/config.h | 3 + keyboards/projectd/75/ansi/config.h | 3 + keyboards/projectd/75/iso/config.h | 3 + platforms/avr/drivers/spi_master.h | 68 ---------- platforms/chibios/drivers/spi_master.c | 43 ++++++- platforms/chibios/drivers/spi_master.h | 102 --------------- 12 files changed, 183 insertions(+), 175 deletions(-) create mode 100644 drivers/spi_master.h delete mode 100644 platforms/avr/drivers/spi_master.h delete mode 100644 platforms/chibios/drivers/spi_master.h diff --git a/docs/drivers/spi.md b/docs/drivers/spi.md index 43d2a056d5db..140b204945fb 100644 --- a/docs/drivers/spi.md +++ b/docs/drivers/spi.md @@ -88,7 +88,7 @@ Start an SPI transaction. #### Arguments {#api-spi-start-arguments} - `pin_t slavePin` - The QMK pin to assert as the slave select pin, eg. `B4`. + The GPIO pin connected to the desired device's `SS` line. - `bool lsbFirst` Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first. - `uint8_t mode` @@ -106,7 +106,7 @@ Start an SPI transaction. #### Return Value {#api-spi-start-return} -`false` if the supplied parameters are invalid or the SPI peripheral is already in use, or `true`. +`true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use. --- @@ -131,7 +131,7 @@ Read a byte from the selected SPI device. #### Return Value {#api-spi-read-return} -`SPI_STATUS_TIMEOUT` if the timeout period elapses, or the byte read from the device. +`SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device. --- @@ -159,7 +159,7 @@ Receive multiple bytes from the selected SPI device. #### Arguments {#api-spi-receive-arguments} - `uint8_t *data` - A pointer to the buffer to read into. + A pointer to a buffer to read into. - `uint16_t length` The number of bytes to read. Take care not to overrun the length of `data`. diff --git a/drivers/spi_master.h b/drivers/spi_master.h new file mode 100644 index 000000000000..d206b812bfd3 --- /dev/null +++ b/drivers/spi_master.h @@ -0,0 +1,116 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include "gpio.h" + +/** + * \file + * + * \defgroup spi_master SPI Master API + * + * \brief API to communicate with SPI devices. + * \{ + */ + +// Hardware SS pin is defined in the header so that user code can refer to it +#ifdef __AVR__ +# if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) +# define SPI_SS_PIN B0 +# elif defined(__AVR_ATmega32A__) +# define SPI_SS_PIN B4 +# elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) +# define SPI_SS_PIN B2 +# endif +#endif + +typedef int16_t spi_status_t; + +#define SPI_STATUS_SUCCESS (0) +#define SPI_STATUS_ERROR (-1) +#define SPI_STATUS_TIMEOUT (-2) + +#define SPI_TIMEOUT_IMMEDIATE (0) +#define SPI_TIMEOUT_INFINITE (0xFFFF) + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct spi_start_config_t { + pin_t slave_pin; + bool lsb_first; + uint8_t mode; + uint16_t divisor; + bool cs_active_low; +} spi_start_config_t; + +/** + * \brief Initialize the SPI driver. This function must be called only once, before any of the below functions can be called. + */ +void spi_init(void); + +/** + * \brief Start an SPI transaction. + * + * \param slavePin The GPIO pin connected to the desired device's `SS` line. + * \param lsbFirst Determines the endianness of the transmission. If `true`, the least significant bit of each byte is sent first. + * \param mode The SPI mode to use. + * \param divisor The SPI clock divisor. + * + * \return `true` if the operation was successful, otherwise `false` if the supplied parameters are invalid or the SPI peripheral is already in use. + */ +bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); + +bool spi_start_extended(spi_start_config_t *start_config); + +/** + * \brief Write a byte to the selected SPI device. + * + * \param data The byte to write. + * + * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, or `SPI_STATUS_SUCCESS`. + */ +spi_status_t spi_write(uint8_t data); + +/** + * \brief Read a byte from the selected SPI device. + * + * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, otherwise the byte read from the device. + */ +spi_status_t spi_read(void); + +/** + * \brief Send multiple bytes to the selected SPI device. + * + * \param data A pointer to the data to write from. + * \param length The number of bytes to write. Take care not to overrun the length of `data`. + * + * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. + */ +spi_status_t spi_transmit(const uint8_t *data, uint16_t length); + +/** + * \brief Receive multiple bytes from the selected SPI device. + * + * \param data A pointer to a buffer to read into. + * \param length The number of bytes to read. Take care not to overrun the length of `data`. + * + * \return `SPI_STATUS_TIMEOUT` if the timeout period elapses, `SPI_STATUS_ERROR` if some other error occurs, otherwise `SPI_STATUS_SUCCESS`. + */ +spi_status_t spi_receive(uint8_t *data, uint16_t length); + +/** + * \brief End the current SPI transaction. This will deassert the slave select pin and reset the endianness, mode and divisor configured by `spi_start()`. + * + */ +void spi_stop(void); + +#ifdef __cplusplus +} +#endif + +/** \} */ diff --git a/keyboards/darkproject/kd83a_bfg_edition/config.h b/keyboards/darkproject/kd83a_bfg_edition/config.h index 880aabd5d718..fce00d29aba4 100644 --- a/keyboards/darkproject/kd83a_bfg_edition/config.h +++ b/keyboards/darkproject/kd83a_bfg_edition/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/darkproject/kd87a_bfg_edition/config.h b/keyboards/darkproject/kd87a_bfg_edition/config.h index a32f7122311e..9e68844dafda 100644 --- a/keyboards/darkproject/kd87a_bfg_edition/config.h +++ b/keyboards/darkproject/kd87a_bfg_edition/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/gmmk/gmmk2/p96/config.h b/keyboards/gmmk/gmmk2/p96/config.h index 1b246e4f3fad..852d29df653b 100644 --- a/keyboards/gmmk/gmmk2/p96/config.h +++ b/keyboards/gmmk/gmmk2/p96/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/jukaie/jk01/config.h b/keyboards/jukaie/jk01/config.h index d8dfb9f53545..41534ce6c466 100644 --- a/keyboards/jukaie/jk01/config.h +++ b/keyboards/jukaie/jk01/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/projectd/65/projectd_65_ansi/config.h b/keyboards/projectd/65/projectd_65_ansi/config.h index c8da5c42a7cc..6e23afc90201 100644 --- a/keyboards/projectd/65/projectd_65_ansi/config.h +++ b/keyboards/projectd/65/projectd_65_ansi/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_EN_PIN C13 diff --git a/keyboards/projectd/75/ansi/config.h b/keyboards/projectd/75/ansi/config.h index 282e20a8e2bf..acbe853949c9 100644 --- a/keyboards/projectd/75/ansi/config.h +++ b/keyboards/projectd/75/ansi/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/keyboards/projectd/75/iso/config.h b/keyboards/projectd/75/iso/config.h index 282e20a8e2bf..acbe853949c9 100644 --- a/keyboards/projectd/75/iso/config.h +++ b/keyboards/projectd/75/iso/config.h @@ -22,8 +22,11 @@ /* SPI Config for LED Driver */ #define SPI_DRIVER SPIDQ #define SPI_SCK_PIN A5 +#define SPI_SCK_PAL_MODE 5 #define SPI_MOSI_PIN A7 +#define SPI_MOSI_PAL_MODE 5 #define SPI_MISO_PIN A6 +#define SPI_MISO_PAL_MODE 5 #define AW20216S_CS_PIN_1 A15 #define AW20216S_CS_PIN_2 B15 diff --git a/platforms/avr/drivers/spi_master.h b/platforms/avr/drivers/spi_master.h deleted file mode 100644 index ebbf7ddeab93..000000000000 --- a/platforms/avr/drivers/spi_master.h +++ /dev/null @@ -1,68 +0,0 @@ -/* Copyright 2020 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include - -#include "gpio.h" - -typedef int16_t spi_status_t; - -// Hardware SS pin is defined in the header so that user code can refer to it -#if defined(__AVR_AT90USB162__) || defined(__AVR_ATmega16U2__) || defined(__AVR_ATmega32U2__) || defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__) || defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__) -# define SPI_SS_PIN B0 -#elif defined(__AVR_ATmega32A__) -# define SPI_SS_PIN B4 -#elif defined(__AVR_ATmega328P__) || defined(__AVR_ATmega328__) -# define SPI_SS_PIN B2 -#endif - -#define SPI_STATUS_SUCCESS (0) -#define SPI_STATUS_ERROR (-1) -#define SPI_STATUS_TIMEOUT (-2) - -#define SPI_TIMEOUT_IMMEDIATE (0) -#define SPI_TIMEOUT_INFINITE (0xFFFF) - -#ifdef __cplusplus -extern "C" { -#endif -typedef struct spi_start_config_t { - pin_t slave_pin; - bool lsb_first; - uint8_t mode; - uint16_t divisor; - bool cs_active_low; -} spi_start_config_t; - -void spi_init(void); - -bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); -bool spi_start_extended(spi_start_config_t *start_config); - -spi_status_t spi_write(uint8_t data); - -spi_status_t spi_read(void); - -spi_status_t spi_transmit(const uint8_t *data, uint16_t length); - -spi_status_t spi_receive(uint8_t *data, uint16_t length); - -void spi_stop(void); -#ifdef __cplusplus -} -#endif diff --git a/platforms/chibios/drivers/spi_master.c b/platforms/chibios/drivers/spi_master.c index 414e5b10a31a..f5e48edfda54 100644 --- a/platforms/chibios/drivers/spi_master.c +++ b/platforms/chibios/drivers/spi_master.c @@ -15,8 +15,49 @@ */ #include "spi_master.h" +#include "chibios_config.h" +#include +#include -#include "timer.h" +#ifndef SPI_DRIVER +# define SPI_DRIVER SPID2 +#endif + +#ifndef SPI_SCK_PIN +# define SPI_SCK_PIN B13 +#endif + +#ifndef SPI_SCK_PAL_MODE +# ifdef USE_GPIOV1 +# define SPI_SCK_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_SCK_PAL_MODE 5 +# endif +#endif + +#ifndef SPI_MOSI_PIN +# define SPI_MOSI_PIN B15 +#endif + +#ifndef SPI_MOSI_PAL_MODE +# ifdef USE_GPIOV1 +# define SPI_MOSI_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_MOSI_PAL_MODE 5 +# endif +#endif + +#ifndef SPI_MISO_PIN +# define SPI_MISO_PIN B14 +#endif + +#ifndef SPI_MISO_PAL_MODE +# ifdef USE_GPIOV1 +# define SPI_MISO_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL +# else +# define SPI_MISO_PAL_MODE 5 +# endif +#endif static bool spiStarted = false; #if SPI_SELECT_MODE == SPI_SELECT_MODE_NONE diff --git a/platforms/chibios/drivers/spi_master.h b/platforms/chibios/drivers/spi_master.h deleted file mode 100644 index 4ad6144091e0..000000000000 --- a/platforms/chibios/drivers/spi_master.h +++ /dev/null @@ -1,102 +0,0 @@ -/* Copyright 2020 Nick Brassel (tzarc) - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include -#include -#include - -#include "gpio.h" -#include "chibios_config.h" - -#ifndef SPI_DRIVER -# define SPI_DRIVER SPID2 -#endif - -#ifndef SPI_SCK_PIN -# define SPI_SCK_PIN B13 -#endif - -#ifndef SPI_SCK_PAL_MODE -# if defined(USE_GPIOV1) -# define SPI_SCK_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_SCK_PAL_MODE 5 -# endif -#endif - -#ifndef SPI_MOSI_PIN -# define SPI_MOSI_PIN B15 -#endif - -#ifndef SPI_MOSI_PAL_MODE -# if defined(USE_GPIOV1) -# define SPI_MOSI_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_MOSI_PAL_MODE 5 -# endif -#endif - -#ifndef SPI_MISO_PIN -# define SPI_MISO_PIN B14 -#endif - -#ifndef SPI_MISO_PAL_MODE -# if defined(USE_GPIOV1) -# define SPI_MISO_PAL_MODE PAL_MODE_ALTERNATE_PUSHPULL -# else -# define SPI_MISO_PAL_MODE 5 -# endif -#endif - -typedef int16_t spi_status_t; - -#define SPI_STATUS_SUCCESS (0) -#define SPI_STATUS_ERROR (-1) -#define SPI_STATUS_TIMEOUT (-2) - -#define SPI_TIMEOUT_IMMEDIATE (0) -#define SPI_TIMEOUT_INFINITE (0xFFFF) - -#ifdef __cplusplus -extern "C" { -#endif -typedef struct spi_start_config_t { - pin_t slave_pin; - bool lsb_first; - uint8_t mode; - uint16_t divisor; - bool cs_active_low; -} spi_start_config_t; - -void spi_init(void); - -bool spi_start(pin_t slavePin, bool lsbFirst, uint8_t mode, uint16_t divisor); -bool spi_start_extended(spi_start_config_t *start_config); - -spi_status_t spi_write(uint8_t data); - -spi_status_t spi_read(void); - -spi_status_t spi_transmit(const uint8_t *data, uint16_t length); - -spi_status_t spi_receive(uint8_t *data, uint16_t length); - -void spi_stop(void); -#ifdef __cplusplus -} -#endif