From a8a626d772a8fee5c3b07e871082db36b344bcd8 Mon Sep 17 00:00:00 2001 From: Rocco Jiang Date: Tue, 4 Jan 2022 16:21:47 +0000 Subject: [PATCH] Target develop branch instead of master (#10) * Start `develop` for 2022q1. * Added cancel_key_lock function (#15321) * [Core] Remove matrix_is_modified() and debounce_is_active() (#15349) * [Keyboard] Added Wakizashi 40 (#15336) Co-authored-by: Ryan * Change default USB Polling rate to 1kHz (#15352) * [Keyboard] Convert ergoinu to SPLIT_KEYBOARD (#15305) * Implement MAGIC_TOGGLE_CONTROL_CAPSLOCK (#15368) * Convert not_so_minidox to SPLIT_KEYBOARD (#15306) * Convert ai03/orbit to SPLIT_KEYBOARD (#15340) * Tidy up existing i2c_master implementations (#15376) * Move chibios defines out of header * Make some avr defines internal * Generalize Unicode defines (#15409) * Add missing define for unicode common (#15416) * Remove Deprecated USB Polling comment from vusb.c (#15420) * Expand rotational range for PMW3360 Optical Sensor (#15431) * Add support for 21.11.x, remove 21.6.x as ChibiOS "canceled" it. (#15435) * added missing audio_off_user() callback (#15457) Co-authored-by: Raoul Rubien * [Core] Don't send keyboard reports that propagate no changes to the host (#14065) * Migrate serial_uart usages to UART driver (#15479) * Migrate Thermal Printer feature to UART driver * Migrate 40percentclub UT47 to UART driver * Migrate Centromere to UART driver * Migrate Chimera Ergo to UART driver * Migrate Chimera Let's Split to UART driver * Migrate Chimera Ortho to UART driver * Migrate Chimera Ortho Plus to UART driver * Migrate Comet46 to UART driver * Migrate Palm USB converter to UART driver * Migrate Sun USB converter to UART driver * Migrate Dichotomy to UART driver * Migrate Honeycomb to UART driver * Migrate Mitosis to UART driver * Migrate Redox W to UART driver * Migrate Uni660 to UART driver * Migrate Telophase to UART driver * Fix build failure for UT47 (#15483) * Use the PR title rather than parsing the commit message. (#15537) * Migrate RN42 to UART driver and refactor (#15492) * [CI] Format code according to conventions (#15541) * Documentation Typo fix (#15538) * Fix some typos, especially the sensor name. (#15557) * Add open-drain GPIO support. (#15282) * Add open-drain GPIO support. * `qmk format-c` * Wording. * Remove port GPIO implementations as the only board that uses it has its own internal defs anyway. Will wait for first-class handling of ports in core before reimplementing. * Fixes potential wpm sampling overflow, along with code comment fixes (#15277) Co-authored-by: Trevor Powell * Add a clarification to an error message (#15207) Makes this a bit more foolproof. See https://github.com/qmk/qmk_firmware/issues/15202 * [Core] Split support for pointing devices. (#15304) * Draft implementation * formatting * fix combined buttons * remove pimoroni throttle * sync pointing on a throttle loop with checksum * no longer used * doh Co-authored-by: Drashna Jaelre * switch pimoroni to a cpi equivalent * add cpi support * allow user modification of seperate mouse reports * a little tidy up * add *_RIGHT defines. * docs * doxygen comments * basic changelog * clean up pimoroni * small doc fixes * Update docs/feature_pointing_device.md Co-authored-by: Drashna Jaelre * performance tweak if side has usb * Don't run init funtions on wrong side * renamed some variables for consistency * fix pimoroni typos * Clamp instead of OR * Promote combined values to uint16_t * Update pointing_device.c Co-authored-by: Drashna Jaelre Co-authored-by: Nick Brassel * Format code according to conventions (#15588) * Make (un)register code functions weak (#15285) * Defer pin operations to gpio.h (#15589) * Add sym_defer_pr debouncer type (#14948) * Durgod: Increase scan rate by using wait_us GPT timer (#14091) Lower the tick rate from 10kHz to 1kHz (otherwise all the extra interrupts reduce the achievable scan rate). Enable the WAIT_US_TIMER using GPT TIM3. Observed scan rate on the K320 is increased from 625Hz to 2090-2120Hz. * Format code according to conventions (#15590) * Fixup line endings * More GPIO compilation fixes. (#15592) * Custom matrix lite support for split keyboards (#14674) * Custom matrix lite support for split keyboards * WIP: matrix -> matrix_common refactor * Move matrix_post_scan() to matrix_common.c * Refactor `bootloader_jump()` implementations (#15450) * Refactor `bootloader_jump()` implementations * Fix tests? * Rename `atmel-samba` to `md-boot` * [Keymap] Add vitoni keymap for GMMK Pro (ISO) (#15006) * [Keymap] Add vitoni layout for GMMK Pro (ISO) Keymap has layered cursor keys similar to laptop keyboards. * Configure RGB defaults for startup * Configure encoder to change value/brightness on FN layer * Remove FN layer and add dedicated RGB layer * Make RGB layer sticky (using TG) to avoid holding FN while configuring RGB * Add RGB indicators for active layers * Add RGB indicator for active RESET mode Signed-off-by: Victor Toni * Configure idle / USB suspend settings * Add RGB fade in when resuming after suspend * Add RGB fade out before suspend * Add fade out before idle * Add breathe effect when idle * Convert some more boards to Matrix Lite (#15489) * Fix for SPI write timing in PMW3360 driver (#15519) Timing does not match Pixart documentation for this sensor (may have been carried forward from adns9800). Not aware of any issues coming from this currently. It should only cause issues when writing to multiple registers in succession which currently only happens during initialization for the PMW3360. This should prevent future issues with write operations if other features of the sensor are added. * Format code according to conventions (#15593) * pwm3360 driver cleanup and diff reduction to adns9800 (#15559) * Diff reduction between ADNS9800 and PMW3360 drivers. They are very similar devices. This (somewhat) unreadable diff is essentially a no-op, but it makes a `vimdiff` between the 2 drivers much more readable. * Cleanup pwm3360 driver some more. Remove redundant calls to spi_start() and spi_stop(), as pmw3360_write() will already call these. * [Core] Fix bug and code regression for Split Common (#15603) * Format code according to conventions (#15604) * [Bug] Include missing string.h include (#15606) * move bm65hsrgb_iso and bm68hsrgb to rev1/ (#15132) * Move to organization folder (#15481) * move directory * fix * move wings42 to dailycraft * Adjust wings42 to work with organization folder. * [Keyboard] Update Tractyl Manuform to use Split Pointing Device Sync * [Keyboard] Update grs_70ec to use newer custom matrix (#15609) * [Keyboard] Fix compiler issue with tractyl manuform 4x6 (#15646) * Fix split pointing for analog joystick (#15691) Co-authored-by: Nick Brassel * Format code according to conventions (#15693) * Update pmw3360 comments to match the datasheet better, fix delays. (#15682) * move @yangdigi 's keyboards to a YDKB folder (#15681) * Format code according to conventions (#15705) Co-authored-by: Nick Brassel Co-authored-by: QMK Bot Co-authored-by: wheredoesyourmindgo Co-authored-by: Stefan Kerkmann Co-authored-by: xiao <307671+xia0@users.noreply.github.com> Co-authored-by: Ryan Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis Co-authored-by: Dipl.-Ing. Raoul Rubien, BSc Co-authored-by: Raoul Rubien Co-authored-by: SmollChungus <38044391+SmollChungus@users.noreply.github.com> Co-authored-by: uqs Co-authored-by: vectorstorm Co-authored-by: Trevor Powell Co-authored-by: Hugo Osvaldo Barrera Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com> Co-authored-by: Chad Austin Co-authored-by: Simon Arlott <70171+nomis@users.noreply.github.com> Co-authored-by: Jay Greco Co-authored-by: Victor Toni Co-authored-by: Alabastard-64 <96358682+Alabastard-64@users.noreply.github.com> Co-authored-by: peepeetee <43021794+peepeetee@users.noreply.github.com> Co-authored-by: yfuku <30647434+yfuku@users.noreply.github.com> --- docs/ChangeLog/20220226/PR15304.md | 13 ++ keyboards/dailycraft/bat43/bat43.h | 10 -- keyboards/dailycraft/bat43/readme.md | 26 ---- keyboards/dailycraft/bat43/rules.mk | 20 --- keyboards/dailycraft/claw44/claw44.h | 5 - keyboards/dailycraft/claw44/readme.md | 26 ---- keyboards/dailycraft/claw44/rules.mk | 20 --- keyboards/dailycraft/owl8/readme.md | 26 ---- keyboards/dailycraft/wings42/readme.md | 26 ---- keyboards/dailycraft/wings42/rev1/readme.md | 26 ---- .../dailycraft/wings42/rev1_extkeys/readme.md | 26 ---- keyboards/dailycraft/wings42/rev2/readme.md | 26 ---- keyboards/dailycraft/wings42/rules.mk | 22 ---- .../kprepublic/bm65hsrgb_iso/rev1/config.h | 122 ------------------ .../kprepublic/bm65hsrgb_iso/rev1/rev1.c | 63 --------- keyboards/kprepublic/bm68hsrgb/rev1/rev1.c | 52 -------- keyboards/ydkb/chili/readme.md | 15 --- keyboards/ydkb/just60/readme.md | 17 --- keyboards/ydkb/yd68/readme.md | 15 --- platforms/arm_atsam/bootloaders/md_boot.c | 65 ---------- platforms/avr/bootloaders/none.c | 19 +++ platforms/avr/drivers/i2c_master.c | 3 + platforms/chibios/bootloaders/none.c | 19 +++ quantum/split_common/transaction_id_define.h | 6 + quantum/split_common/transactions.c | 78 +++++++++++ quantum/split_common/transport.h | 13 ++ 26 files changed, 151 insertions(+), 608 deletions(-) create mode 100644 docs/ChangeLog/20220226/PR15304.md delete mode 100644 keyboards/dailycraft/bat43/bat43.h delete mode 100644 keyboards/dailycraft/bat43/readme.md delete mode 100644 keyboards/dailycraft/bat43/rules.mk delete mode 100644 keyboards/dailycraft/claw44/claw44.h delete mode 100644 keyboards/dailycraft/claw44/readme.md delete mode 100644 keyboards/dailycraft/claw44/rules.mk delete mode 100644 keyboards/dailycraft/owl8/readme.md delete mode 100644 keyboards/dailycraft/wings42/readme.md delete mode 100644 keyboards/dailycraft/wings42/rev1/readme.md delete mode 100644 keyboards/dailycraft/wings42/rev1_extkeys/readme.md delete mode 100644 keyboards/dailycraft/wings42/rev2/readme.md delete mode 100644 keyboards/dailycraft/wings42/rules.mk delete mode 100644 keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h delete mode 100644 keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c delete mode 100644 keyboards/kprepublic/bm68hsrgb/rev1/rev1.c delete mode 100644 keyboards/ydkb/chili/readme.md delete mode 100644 keyboards/ydkb/just60/readme.md delete mode 100644 keyboards/ydkb/yd68/readme.md delete mode 100644 platforms/arm_atsam/bootloaders/md_boot.c create mode 100644 platforms/avr/bootloaders/none.c create mode 100644 platforms/chibios/bootloaders/none.c diff --git a/docs/ChangeLog/20220226/PR15304.md b/docs/ChangeLog/20220226/PR15304.md new file mode 100644 index 000000000000..3cdb40db1099 --- /dev/null +++ b/docs/ChangeLog/20220226/PR15304.md @@ -0,0 +1,13 @@ +### Split Common core now supports Pointing Devices ([#15304](https://github.com/qmk/qmk_firmware/pull/15304)) + +Pointing devices can now be shared across a split keyboard with support for a single pointing device or a pointing device on each side. + +This feature can be enabled with `#define SPLIT_POINTING_ENABLE` and one of the following options: + +| Setting | Description | +|---------------------------|------------------------------------| +|`POINTING_DEVICE_LEFT` | Pointing device on the left side | +|`POINTING_DEVICE_RIGHT` | Pointing device on the right side | +|`POINTING_DEVICE_COMBINED` | Pointing device on both sides | + +See the [Pointing Device](../feature_pointing_device.md) documentation for further configuration options. diff --git a/keyboards/dailycraft/bat43/bat43.h b/keyboards/dailycraft/bat43/bat43.h deleted file mode 100644 index 046788a0a120..000000000000 --- a/keyboards/dailycraft/bat43/bat43.h +++ /dev/null @@ -1,10 +0,0 @@ -#pragma once - -#ifdef KEYBOARD_dailycraft_bat43_rev1 - #include "rev1.h" -#endif -#ifdef KEYBOARD_dailycraft_bat43_rev2 - #include "rev2.h" -#endif - -#include "quantum.h" diff --git a/keyboards/dailycraft/bat43/readme.md b/keyboards/dailycraft/bat43/readme.md deleted file mode 100644 index 6b58aa5ca3b3..000000000000 --- a/keyboards/dailycraft/bat43/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# bat43 - -![bat43](https://user-images.githubusercontent.com/30647434/78112239-e9ef8300-7438-11ea-810b-994a75ffa24e.jpg) - -A 43-key keyboard. - -* Keyboard Maintainer: [yfuku](https://github.com/yfuku) -* Hardware Supported: bat43 PCB, Pro Micro -* Hardware Availability: https://shop.dailycraft.jp/ - -Make example for this keyboard (after setting up your build environment): - - make dailycraft/bat43:default - -Flashing example for this keyboard: - - make dailycraft/bat43: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 2 ways: - -* **Physical reset button**: Briefly press the button on the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/dailycraft/bat43/rules.mk b/keyboards/dailycraft/bat43/rules.mk deleted file mode 100644 index c2e1c5755f01..000000000000 --- a/keyboards/dailycraft/bat43/rules.mk +++ /dev/null @@ -1,20 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -DEFAULT_FOLDER = dailycraft/bat43/rev2 diff --git a/keyboards/dailycraft/claw44/claw44.h b/keyboards/dailycraft/claw44/claw44.h deleted file mode 100644 index 76ecda6e90a0..000000000000 --- a/keyboards/dailycraft/claw44/claw44.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#ifdef KEYBOARD_dailycraft_claw44_rev1 - #include "rev1.h" -#endif diff --git a/keyboards/dailycraft/claw44/readme.md b/keyboards/dailycraft/claw44/readme.md deleted file mode 100644 index e533bd7c82ff..000000000000 --- a/keyboards/dailycraft/claw44/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# Claw44 - -![Claw44](https://i.imgur.com/5a8iogl.jpg) - -A split keyboard with 3x6 vertically staggered keys and 4 thumb keys. - -* Keyboard Maintainer: [yfuku](https://github.com/yfuku) -* Hardware Supported: Claw44 PCB, ProMicro -* Hardware Availability: https://shop.dailycraft.jp/ - -Make example for this keyboard (after setting up your build environment): - - make dailycraft/claw44:default - -Flashing example for this keyboard: - - make dailycraft/claw44: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 2 ways: - -* **Physical reset button**: Briefly press the button on the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/dailycraft/claw44/rules.mk b/keyboards/dailycraft/claw44/rules.mk deleted file mode 100644 index 69c59f28e6a5..000000000000 --- a/keyboards/dailycraft/claw44/rules.mk +++ /dev/null @@ -1,20 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. - -DEFAULT_FOLDER = dailycraft/claw44/rev1 diff --git a/keyboards/dailycraft/owl8/readme.md b/keyboards/dailycraft/owl8/readme.md deleted file mode 100644 index c7fab17476d6..000000000000 --- a/keyboards/dailycraft/owl8/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# owl8 - -![owl8](https://raw.githubusercontent.com/yfuku/owl8/master/images/owl8.jpg) - -macropad - -* Keyboard Maintainer: [yfuku](https://github.com/yfuku) -* Hardware Supported: owl8 PCB, Pro Micro -* Hardware Availability: https://shop.dailycraft.jp/ - -Make example for this keyboard (after setting up your build environment): - - make dailycraft/owl8:default - -Flashing example for this keyboard: - - make dailycraft/owl8: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 2 ways: - -* **Physical reset button**: Briefly press the button on the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/dailycraft/wings42/readme.md b/keyboards/dailycraft/wings42/readme.md deleted file mode 100644 index c91965339717..000000000000 --- a/keyboards/dailycraft/wings42/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# wings42 - -![wings42](https://raw.githubusercontent.com/yfuku/wings42/main/images/wings42.jpg) - -A split keyboard with 3x6 vertically staggered keys and 3 thumb keys. - -* Keyboard Maintainer: [yfuku](https://github.com/yfuku) -* Hardware Supported: wings42 PCB, Pro Micro -* Hardware Availability: https://shop.dailycraft.jp/ - -Make example for this keyboard (after setting up your build environment): - - make dailycraft/wings42:default - -Flashing example for this keyboard: - - make dailycraft/wings42: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 2 ways: - -* **Physical reset button**: Briefly press the button on the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/dailycraft/wings42/rev1/readme.md b/keyboards/dailycraft/wings42/rev1/readme.md deleted file mode 100644 index 959052c41d5e..000000000000 --- a/keyboards/dailycraft/wings42/rev1/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# wings42 - -![wings42](https://raw.githubusercontent.com/yfuku/wings42/main/images/wings42.jpg) - -A split keyboard with 3x6 vertically staggered keys and 3 thumb keys. - -* Keyboard Maintainer: [yfuku](https://github.com/yfuku) -* Hardware Supported: wings42 PCB, Pro Micro -* Hardware Availability: https://shop.dailycraft.jp/ - -Make example for this keyboard (after setting up your build environment): - - make dailycraft/wings42/rev1:default - -Flashing example for this keyboard: - - make dailycraft/wings42/rev1: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 2 ways: - -* **Physical reset button**: Briefly press the button on the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/dailycraft/wings42/rev1_extkeys/readme.md b/keyboards/dailycraft/wings42/rev1_extkeys/readme.md deleted file mode 100644 index 4a34063ad4cf..000000000000 --- a/keyboards/dailycraft/wings42/rev1_extkeys/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# wings42 - -![wings42](https://raw.githubusercontent.com/yfuku/wings42/main/images/wings42.jpg) - -A split keyboard with 3x6 vertically staggered keys and 3 thumb keys. - -* Keyboard Maintainer: [yfuku](https://github.com/yfuku) -* Hardware Supported: wings42 PCB, Pro Micro -* Hardware Availability: https://shop.dailycraft.jp/ - -Make example for this keyboard (after setting up your build environment): - - make dailycraft/wings42/rev1_extkeys:default - -Flashing example for this keyboard: - - make dailycraft/wings42/rev1_extkeys: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 2 ways: - -* **Physical reset button**: Briefly press the button on the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/dailycraft/wings42/rev2/readme.md b/keyboards/dailycraft/wings42/rev2/readme.md deleted file mode 100644 index c91965339717..000000000000 --- a/keyboards/dailycraft/wings42/rev2/readme.md +++ /dev/null @@ -1,26 +0,0 @@ -# wings42 - -![wings42](https://raw.githubusercontent.com/yfuku/wings42/main/images/wings42.jpg) - -A split keyboard with 3x6 vertically staggered keys and 3 thumb keys. - -* Keyboard Maintainer: [yfuku](https://github.com/yfuku) -* Hardware Supported: wings42 PCB, Pro Micro -* Hardware Availability: https://shop.dailycraft.jp/ - -Make example for this keyboard (after setting up your build environment): - - make dailycraft/wings42:default - -Flashing example for this keyboard: - - make dailycraft/wings42: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 2 ways: - -* **Physical reset button**: Briefly press the button on the PCB -* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/dailycraft/wings42/rules.mk b/keyboards/dailycraft/wings42/rules.mk deleted file mode 100644 index 94459dbcc559..000000000000 --- a/keyboards/dailycraft/wings42/rules.mk +++ /dev/null @@ -1,22 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - -SPLIT_KEYBOARD = yes - -DEFAULT_FOLDER = dailycraft/wings42/rev2 diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h b/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h deleted file mode 100644 index aafb43bb518b..000000000000 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/config.h +++ /dev/null @@ -1,122 +0,0 @@ -/* -Copyright 2020 ipetepete, 2021 deadolus, 2022 p4yne - -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 "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x4B50 // "KP" -#define PRODUCT_ID 0x0653 -#define DEVICE_VER 0x0001 -#define MANUFACTURER KP Republic -#define PRODUCT BM65HSRGB_ISO - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 15 - -/* Force NKRO */ -#define FORCE_NKRO - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 } -#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6 } - -#define DIODE_DIRECTION COL2ROW - -#define RGB_DI_PIN E2 -#define DRIVER_LED_TOTAL 74 -#ifdef RGB_DI_PIN - #define RGBLED_NUM 74 - #define RGB_MATRIX_KEYPRESSES - #define RGBLIGHT_HUE_STEP 8 - #define RGBLIGHT_SAT_STEP 8 - #define RGBLIGHT_VAL_STEP 8 - #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 140 -// RGB Matrix Animation modes. Explicitly enabled -// For full list of effects, see: -// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -# define ENABLE_RGB_MATRIX_ALPHAS_MODS -# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_BREATHING -# define ENABLE_RGB_MATRIX_BAND_SAT -# define ENABLE_RGB_MATRIX_BAND_VAL -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -# define ENABLE_RGB_MATRIX_CYCLE_ALL -# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -# define ENABLE_RGB_MATRIX_DUAL_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_BEACON -# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -# define ENABLE_RGB_MATRIX_RAINDROPS -# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -# define ENABLE_RGB_MATRIX_HUE_BREATHING -# define ENABLE_RGB_MATRIX_HUE_PENDULUM -# define ENABLE_RGB_MATRIX_HUE_WAVE -# define ENABLE_RGB_MATRIX_PIXEL_RAIN -# define ENABLE_RGB_MATRIX_PIXEL_FLOW -# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined -# define ENABLE_RGB_MATRIX_TYPING_HEATMAP -# define ENABLE_RGB_MATRIX_DIGITAL_RAIN -// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS -# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS -# define ENABLE_RGB_MATRIX_SPLASH -# define ENABLE_RGB_MATRIX_MULTISPLASH -# define ENABLE_RGB_MATRIX_SOLID_SPLASH -# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH - -# define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_BAND_SAT -/* If defined, the RGB lighting will be switched off when the host goes to sleep */ -# define RGBLIGHT_SLEEP -/*== all animations enable ==*/ -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -# define RGBLIGHT_EFFECT_SNAKE -# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -#endif diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c deleted file mode 100644 index 6e0fd5711766..000000000000 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright 2020 ipetepete, 2021 deadolus, 2022 p4yne - * - * 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 "rev1.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43}, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58}, - { 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66, 67} - -}, { - // LED Index to Physical Position - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 224, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1 - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 224, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', , PageUp - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 224, 32 }, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, PageDown - { 3, 48 }, { 18, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 190, 48 }, { 209, 48 }, { 224, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 194, 64 }, { 209, 64 },{ 224, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // LED Index to Flag - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1 - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', , PageUp - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, RShift, Up, PageDown - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; - -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); - } -} -#endif diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c deleted file mode 100644 index 4634a662b61e..000000000000 --- a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2021 peepeetee - * - * 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 "rev1.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - // LED Index to Physical Position - { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - { 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - { 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - { 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - { 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {178, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right - {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right - 2, 2, 2, 2, 2, 2 // UNDERGLOW -} }; - -//CAPS backlight -__attribute__ ((weak)) -void rgb_matrix_indicators_user(void) { - if (host_keyboard_led_state().caps_lock) { - rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); - } -} -#endif diff --git a/keyboards/ydkb/chili/readme.md b/keyboards/ydkb/chili/readme.md deleted file mode 100644 index c7be92b9e5c6..000000000000 --- a/keyboards/ydkb/chili/readme.md +++ /dev/null @@ -1,15 +0,0 @@ -# YDKB Chili - -[Chili PCB](https://i.imgur.com/fKi896a.jpg) - -The YDKB Chili is a Cherry G80-3000 replacement PCB utilizing the ATmega32U4 microcontroller. - -* Keyboard Maintainer: QMK community -* Hardware Supported: YDKB Chili -* Hardware Availability: [TaoBao](https://item.taobao.com/item.htm?id=565823984744) - -Make example for this keyboard (after setting up your build environment): - - make ydkb/chili:default - -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). diff --git a/keyboards/ydkb/just60/readme.md b/keyboards/ydkb/just60/readme.md deleted file mode 100644 index 1fe05bd3eaac..000000000000 --- a/keyboards/ydkb/just60/readme.md +++ /dev/null @@ -1,17 +0,0 @@ -# Just60 - -Just60 keyboard produced by Yang. The keyboard comes with a custom Mass Storage Device bootloader and a TMK based firmware from ydkb.io. - -To use a QMK based firmware, you might want to install a QMK bootloader. The PCB exposes 6 pins for ISP(In-System Programming), and they are located just under the ATMega32U4 chip. From left to right, the pins are `VCC`, `SCLK`, `MOSI`, `MISO`, `RESET`, `GND`. The `GND` is the square one. You could program the flash with any AVR programmer, or a Raspberry Pi with `avrdude`. - -Backlight LEDs and Bluetooth are not working yet. - -* Keyboard Maintainer: [Jianfei Wang](https://github.com/thinxer) -* Hardware Supported: Just60 (atmega32u4) -* Hardware Availability: https://item.taobao.com/item.htm?id=564176654249 - -Make example for this keyboard (after setting up your build environment): - - make ydkb/just60:default - -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). diff --git a/keyboards/ydkb/yd68/readme.md b/keyboards/ydkb/yd68/readme.md deleted file mode 100644 index 2632e8e9f82b..000000000000 --- a/keyboards/ydkb/yd68/readme.md +++ /dev/null @@ -1,15 +0,0 @@ -# yd68 - -[yd68](https://imgur.com/gallery/Ygo668L) - -A 68-key board with RGB underlighting and bluetooth. - -Keyboard Maintainer: [Izzy84075](https://github.com/izzy84075) -Hardware Supported: YD68/YD68v2 -Hardware Availability: [KBDFans](https://kbdfans.cn/collections/diy-kit/products/yd68-65-bluetooth-custom-keyboard-pcb) - -Make example for this keyboard (after setting up your build environment): - - make ydkb/yd68:default - -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). diff --git a/platforms/arm_atsam/bootloaders/md_boot.c b/platforms/arm_atsam/bootloaders/md_boot.c deleted file mode 100644 index 32cf850448ea..000000000000 --- a/platforms/arm_atsam/bootloaders/md_boot.c +++ /dev/null @@ -1,65 +0,0 @@ -/* Copyright 2017 Fred Sundvik - * - * 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 "bootloader.h" - -#include "samd51j18a.h" - -// WARNING: These are only for CTRL bootloader release "v2.18Jun 22 2018 17:28:08" for bootloader_jump support -extern uint32_t _eram; -#define BOOTLOADER_MAGIC 0x3B9ACA00 -#define MAGIC_ADDR (uint32_t *)((intptr_t)(&_eram) - 4) - -// CTRL keyboards released with bootloader version below must use RAM method. Otherwise use WDT method. -void bootloader_jump(void) { -#ifdef KEYBOARD_massdrop_ctrl - uint8_t ver_ram_method[] = "v2.18Jun 22 2018 17:28:08"; // The version to match (NULL terminated by compiler) - uint8_t *ver_check = ver_ram_method; // Pointer to version match string for traversal - uint8_t *ver_rom = (uint8_t *)0x21A0; // Pointer to address in ROM where this specific bootloader version would exist - - while (*ver_check && *ver_rom == *ver_check) { // While there are check version characters to match and bootloader's version matches check's version - ver_check++; // Move check version pointer to next character - ver_rom++; // Move ROM version pointer to next character - } - - if (!*ver_check) { // If check version pointer is NULL, all characters have matched - *MAGIC_ADDR = BOOTLOADER_MAGIC; // Set magic number into RAM - NVIC_SystemReset(); // Perform system reset - while (1) - ; // Won't get here - } -#endif - - // Set watchdog timer to reset. Directs the bootloader to stay in programming mode. - WDT->CTRLA.bit.ENABLE = 0; - - while (WDT->SYNCBUSY.bit.ENABLE) - ; - while (WDT->CTRLA.bit.ENABLE) - ; - - WDT->CONFIG.bit.WINDOW = 0; - WDT->CONFIG.bit.PER = 0; - WDT->EWCTRL.bit.EWOFFSET = 0; - WDT->CTRLA.bit.ENABLE = 1; - - while (WDT->SYNCBUSY.bit.ENABLE) - ; - while (!WDT->CTRLA.bit.ENABLE) - ; - while (1) - ; // Wait on timeout -} diff --git a/platforms/avr/bootloaders/none.c b/platforms/avr/bootloaders/none.c new file mode 100644 index 000000000000..624fbe242a35 --- /dev/null +++ b/platforms/avr/bootloaders/none.c @@ -0,0 +1,19 @@ +/* Copyright 2021 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 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 . + */ + +#include "bootloader.h" + +__attribute__((weak)) void bootloader_jump(void) {} diff --git a/platforms/avr/drivers/i2c_master.c b/platforms/avr/drivers/i2c_master.c index c1a7b5f72d9d..1b2cf6bb0ad3 100644 --- a/platforms/avr/drivers/i2c_master.c +++ b/platforms/avr/drivers/i2c_master.c @@ -35,6 +35,9 @@ #define I2C_ACTION_READ 0x01 #define I2C_ACTION_WRITE 0x00 +#define I2C_ACTION_READ 0x01 +#define I2C_ACTION_WRITE 0x00 + #define TWBR_val (((F_CPU / F_SCL) - 16) / 2) #define MAX(X, Y) ((X) > (Y) ? (X) : (Y)) diff --git a/platforms/chibios/bootloaders/none.c b/platforms/chibios/bootloaders/none.c new file mode 100644 index 000000000000..624fbe242a35 --- /dev/null +++ b/platforms/chibios/bootloaders/none.c @@ -0,0 +1,19 @@ +/* Copyright 2021 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 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 . + */ + +#include "bootloader.h" + +__attribute__((weak)) void bootloader_jump(void) {} diff --git a/quantum/split_common/transaction_id_define.h b/quantum/split_common/transaction_id_define.h index 761a8884f4ec..96f378fd41af 100644 --- a/quantum/split_common/transaction_id_define.h +++ b/quantum/split_common/transaction_id_define.h @@ -84,6 +84,12 @@ enum serial_transaction_id { PUT_POINTING_CPI, #endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) +#if defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) + GET_POINTING_CHECKSUM, + GET_POINTING_DATA, + PUT_POINTING_CPI, +#endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) + #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) PUT_RPC_INFO, PUT_RPC_REQ_DATA, diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index cffbccaeee2f..3f62a133e410 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -664,6 +664,84 @@ static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t s #endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) +//////////////////////////////////////////////////// +// POINTING + +#if defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) + +static bool pointing_handlers_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { +# if defined(POINTING_DEVICE_LEFT) + if (is_keyboard_left()) { + return true; + } +# elif defined(POINTING_DEVICE_RIGHT) + if (!is_keyboard_left()) { + return true; + } +# endif + static uint32_t last_update = 0; + static uint16_t last_cpi = 0; + report_mouse_t temp_state; + uint16_t temp_cpi; + bool okay = read_if_checksum_mismatch(GET_POINTING_CHECKSUM, GET_POINTING_DATA, &last_update, &temp_state, &split_shmem->pointing.report, sizeof(temp_state)); + if (okay) pointing_device_set_shared_report(temp_state); + temp_cpi = pointing_device_get_shared_cpi(); + if (temp_cpi && memcmp(&last_cpi, &temp_cpi, sizeof(temp_cpi)) != 0) { + memcpy(&split_shmem->pointing.cpi, &temp_cpi, sizeof(temp_cpi)); + okay = transport_write(PUT_POINTING_CPI, &split_shmem->pointing.cpi, sizeof(split_shmem->pointing.cpi)); + if (okay) { + last_cpi = temp_cpi; + } + } + return okay; +} + +extern const pointing_device_driver_t pointing_device_driver; + +static void pointing_handlers_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { +# if defined(POINTING_DEVICE_LEFT) + if (!is_keyboard_left()) { + return; + } +# elif defined(POINTING_DEVICE_RIGHT) + if (is_keyboard_left()) { + return; + } +# endif + report_mouse_t temp_report; + uint16_t temp_cpi; +# ifdef POINTING_DEVICE_TASK_THROTTLE_MS + static uint32_t last_exec = 0; + if (timer_elapsed32(last_exec) < POINTING_DEVICE_TASK_THROTTLE_MS) { + return; + } + last_exec = timer_read32(); +# endif + temp_cpi = !pointing_device_driver.get_cpi ? 0 : pointing_device_driver.get_cpi(); // check for NULL + if (split_shmem->pointing.cpi && memcmp(&split_shmem->pointing.cpi, &temp_cpi, sizeof(temp_cpi)) != 0) { + if (pointing_device_driver.set_cpi) { + pointing_device_driver.set_cpi(split_shmem->pointing.cpi); + } + } + memset(&temp_report, 0, sizeof(temp_report)); + temp_report = pointing_device_driver.get_report(temp_report); + memcpy(&split_shmem->pointing.report, &temp_report, sizeof(temp_report)); + // Now update the checksum given that the pointing has been written to + split_shmem->pointing.checksum = crc8(&temp_report, sizeof(temp_report)); +} + +# define TRANSACTIONS_POINTING_MASTER() TRANSACTION_HANDLER_MASTER(pointing) +# define TRANSACTIONS_POINTING_SLAVE() TRANSACTION_HANDLER_SLAVE(pointing) +# define TRANSACTIONS_POINTING_REGISTRATIONS [GET_POINTING_CHECKSUM] = trans_target2initiator_initializer(pointing.checksum), [GET_POINTING_DATA] = trans_target2initiator_initializer(pointing.report), [PUT_POINTING_CPI] = trans_initiator2target_initializer(pointing.cpi), + +#else // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) + +# define TRANSACTIONS_POINTING_MASTER() +# define TRANSACTIONS_POINTING_SLAVE() +# define TRANSACTIONS_POINTING_REGISTRATIONS + +#endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) + //////////////////////////////////////////////////// split_transaction_desc_t split_transaction_table[NUM_TOTAL_TRANSACTIONS] = { diff --git a/quantum/split_common/transport.h b/quantum/split_common/transport.h index 26bd136728ee..129d27ca2019 100644 --- a/quantum/split_common/transport.h +++ b/quantum/split_common/transport.h @@ -115,6 +115,15 @@ typedef struct _split_slave_pointing_sync_t { } split_slave_pointing_sync_t; #endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) +#if defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) +# include "pointing_device.h" +typedef struct _split_slave_pointing_sync_t { + uint8_t checksum; + report_mouse_t report; + uint16_t cpi; +} split_slave_pointing_sync_t; +#endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) + #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) typedef struct _rpc_sync_info_t { int8_t transaction_id; @@ -186,6 +195,10 @@ typedef struct _split_shared_memory_t { split_slave_pointing_sync_t pointing; #endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) +#if defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) + split_slave_pointing_sync_t pointing; +#endif // defined(POINTING_DEVICE_ENABLE) && defined(SPLIT_POINTING_ENABLE) + #if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) rpc_sync_info_t rpc_info; uint8_t rpc_m2s_buffer[RPC_M2S_BUFFER_SIZE];