Commit Graph

1136 Commits

Author SHA1 Message Date
d9be6dea3a Fix builds for ChibiOS + Cortex-M0[+] (#14879) 2021-10-18 22:29:27 +01:00
e50867d52d [Core] Add support for RISC-V builds and GD32VF103 MCU (#12508)
* Add support for RISC-V builds and GD32VF103 MCU

* Add toolchain selection in chibios.mk based on the mcu selected in
mcu_selection.mk
* Reorder and added comments to chibios.mk to have a streamlined makefile
* Add GD32VF103 mcu to possible targets for QMK.
* Add STM32 compatibility for GD32VF103 MCU, this is hacky but more efficent
  then rewriting every driver.
* Add GigaDevice DFU bootloader as flash target, please note that
  dfu-util of at least version 0.10 is needed.
* Add analog driver compatibility
* Add apa102 bitbang driver compatibility
* Add ws2812 bitbang driver compatibility
* Add eeprom in flash emulation compatibility
* Allow faster re-builds with ccache

* Add SiPeed Longan Nano to platform files

* Add SiPeed Longan Nano Onekeys

* Make quine compatible with other bootloaders

* Support builds with picolibc

* Add risc-v toolchain to arch and debian/ubuntu scripts
2021-10-18 16:23:20 +11:00
7e3ff206b8 Add HT32 support to core (#14388)
* tmk_core: temporary fix to allow HT32 based keyboards to work without patched ChibiOS-contrib (AnnePro2)

* HT32: add spi support

Add persistent led support with eeprom (#9)

* adding HT32 support to chibios SPI master driver

update spi driver, fix bad merging with master

* HT32: fix formatting

HT32: Fix formatting: tmk_core/protocol/chibios/usb_main.c

Co-authored-by: Drashna Jaelre <drashna@live.com>

* HT32: Apply suggestions from fauxpark's code review

Co-authored-by: Ryan <fauxpark@gmail.com>

* HT32: update spi driver

* ht32: apply code review suggestions, remove old workaround

Co-authored-by: tech2077 <tech2077@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-18 16:17:29 +11:00
83e978da1f Further tidy up of STM32 eeprom emulation (#14591) 2021-10-16 02:58:48 +01:00
7b753f227a Enable eeprom with F401xE ld (#14752) 2021-10-08 22:26:57 +01:00
e0d688d4c8 Move converter specific tmk_core protocols (#14743) 2021-10-07 23:14:26 +01:00
1c0347b8b8 Remove SERIAL_LINK feature (#14727)
* Remove SERIAL_LINK

* more stale paths in doxygen-todo

* Fix

* More refs

* Update testing docs

* Update doxygen-todo

Co-authored-by: Ryan <fauxpark@gmail.com>

Co-authored-by: Ryan <fauxpark@gmail.com>
2021-10-07 12:32:05 +11:00
b2a186cf92 Purge uGFX. (#14720)
* Purge uGFX.

* Remove remnants of visualizer.

* Remove remnants of uGFX.
2021-10-07 10:57:48 +11:00
d8f0c8783a Remove sysex API (#14723) 2021-10-06 19:34:46 +11:00
181ba6bbbb Merge remote-tracking branch 'origin/master' into develop 2021-10-06 01:59:09 +00:00
4782e038d9 Added semicolons to rules.mk to allow symlinks from /bin/sh to /bin/zsh to complete the filesize check without error. (#14718)
Co-authored-by: John Beard <jbeard@pipelinerx.com>
2021-10-06 12:58:40 +11:00
90797d903c massdrop alt/ctrl: support saving into nvm (#6068)
* support saving into SmartEEPROM

Signed-off-by: Alexandre d Alton <alex@alexdalton.org>

* atsam: update smarteeprom implementation

- Use define for SmartEEPROM buffer address
- Check buffer overflow
- Do not perform operation when timeout occurs

Signed-off-by: Alexandre d'Alton <alex@alexdalton.org>

* return 0 instead of ff for invalid address or timeout

Signed-off-by: Alexandre d'Alton <alex@alexdalton.org>

* clang-format

* Add extra bounds checks

Co-authored-by: zvecr <git@zvecr.com>
2021-09-30 06:56:13 +10:00
b02a539625 Added power tracking api (#12691)
* Add power tracking API to lufa and chibios targets

* power.c: Pass through power state to the notify function

* power: added notify_power_state_change_user too.

* making it pass the PR linter

* Add a POWER_STATE_NO_INIT state, that we start in before calling power_init();

* Rename *power* to *usb_power*

* removing stray newline

* Rename usb_power* to usb_device_state*

* Update quantum/usb_device_state.h

Co-authored-by: Drashna Jaelre <drashna@live.com>

* Fix comment

* usb_device_state.h: Don't include quantum.h, only the necessary headers.

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-30 06:31:39 +10:00
be3d7063a0 Merge remote-tracking branch 'origin/master' into develop 2021-09-29 18:37:46 +00:00
02ab7b1888 [Core] Fix "6kro enable" and clarify naming (#14563)
* Fix USB_6KRO_ENABLE compilation errors

* Add info to docs

* Rename define to be more accurate

* Remove unused rule

* Refixe docs
2021-09-29 11:37:11 -07:00
4b9b9ebff4 Merge remote-tracking branch 'origin/master' into develop 2021-09-28 20:09:18 +00:00
873a1999bb Move "firmware size check skipped" note to message.mk (#14632) 2021-09-29 06:08:46 +10:00
3a2a39e5ec Initial pass of F405 support (#14584)
* Initial pass of F405 support

* remove some conf files

* docs

* clang
2021-09-25 00:19:41 +01:00
20ea5f3fb5 Relocate Adafruit BLE code (#14530) 2021-09-21 19:58:46 +10:00
5fb6d57f36 [Bug] fix logical minimum in Programmable Button rdesc (#14464) 2021-09-16 17:04:26 +10:00
ceaf35c741 [Bug] Fix descriptor for USB Programmable Buttons (#14455) 2021-09-15 19:24:06 -07:00
84dba25533 Make ChibiOS PAL interactions less STM32 specific - Round 2 (#14456) 2021-09-16 08:18:58 +10:00
58d72ad795 core: fix compilation issues with USB programmable buttons (#14454)
Reported here:
https://github.com/qmk/qmk_firmware/pull/12950#issuecomment-920329569
2021-09-16 06:28:19 +10:00
83988597f4 Add Support for USB programmable buttons (#12950) 2021-09-15 08:40:22 -07:00
1a68feb842 Implement F4 eeprom (#14195) 2021-09-15 16:30:26 +01:00
fa141a5a8f Migrate STM32_EEPROM_ENABLE to use EEPROM_DRIVER (#14433) 2021-09-15 01:21:36 -07:00
a78f0e8a0b Refactor use of _STM32_ defines (#14439) 2021-09-15 11:19:51 +10:00
0ca4a56a04 Refactor use of STM32_SYSCLK (#14430)
* Refactor use of STM32_SYSCLK

* clang
2021-09-14 12:18:36 +10:00
bcf4551f74 Move Bluetooth config to common_features.mk (#14404)
* Move Bluetooth config to common_features.mk

* Update common_features.mk

Co-authored-by: Drashna Jaelre <drashna@live.com>

Co-authored-by: Drashna Jaelre <drashna@live.com>
2021-09-12 08:22:03 -07:00
d0ac03ec8b Remove unreferenced IBM4704, Sony NEWS, NeXT keyboard code. (#14380) 2021-09-12 02:46:39 +01:00
ac4849df13 Merge remote-tracking branch 'origin/master' into develop 2021-09-09 03:20:08 +00:00
6d43a5daf4 Backport F_CPU/F_USB hack from system76 (#14286)
Co-authored-by: Ryan <fauxpark@gmail.com>
2021-09-08 20:19:06 -07:00
6ca09c6bba Merge remote-tracking branch 'origin/master' into develop 2021-09-05 22:56:53 +00:00
1a494da288 Fix eeprom for Durgod boards (#14324) 2021-09-05 23:56:10 +01:00
147289e173 Merge remote-tracking branch 'origin/master' into develop 2021-09-05 20:37:03 +00:00
8d6d8cfadf Tidy up defines within STM EEPROM emulation (#14275)
* Tidy up defines within stm eeprom emulation

* Fix tests

* Resolve todo

* Still use page notion in clear

* Remove more f4 refs
2021-09-05 21:36:43 +01:00
41c50bb653 Change keyboard level include guards to pragma once (#14248)
* Change keyboard level include guards to `pragma once`

And clean up a lot of layout macros

* Oops

* Remove dangling endif
2021-09-01 19:03:14 +10:00
4d4c61f2e8 Merge remote-tracking branch 'origin/master' into develop 2021-08-30 23:26:17 +00:00
f2c9e82e5b cherry pick tidy up (#14244) 2021-08-31 00:25:41 +01:00
15710db4ad Move feature suspend logic out of platform specific code (#14210) 2021-08-30 20:21:03 +01:00
c9c60d227e add wait_cpuclock() macro for AVR and CPU_CLOCK macro (#12755) 2021-08-24 14:34:24 +01:00
6fd20acf4b Fix Mouse Shared EP functionality (#14136)
Specifically, if you enable the shared endpoint for mouse reports (or keyboard, which force enables it for mouse), and you don't have mousekeys enabled, it does not properly enable shared mouse EP for pointing device (which uses mouse reports).   This cause it to error out in compiling.  This fixes up some of the logic to ensure that all use cases are supported, and consolidates some of the code.
2021-08-24 11:40:24 +10:00
e756a21636 eeprom_stm32: implement high density wear leveling (#12567)
* eeprom_stm32: implement wear leveling
Update EECONFIG_MAGIC_NUMBER
eeprom_stm32: check emulated eeprom size is large enough
* eeprom_stm32: Increasing simulated EEPROM density on stm32
* Adding utility script to decode emulated eeprom
* Adding unit tests
* Applying qmk cformat changes
* cleaned up flash mocking
* Fix for stm32eeprom_parser.py checking via signature with wrong base
* Fix for nk65 keyboard

Co-authored-by: Ilya Zhuravlev <whatever@xyz.is>
Co-authored-by: zvecr <git@zvecr.com>
2021-08-23 23:15:34 +01:00
9af069ecf3 Fix typo (#14118) 2021-08-23 09:31:38 +10:00
c70abc8d04 Warn when building a board that uses arm_atsam (#10904)
* Add deprecation warning during build when building a board that uses arm_atsam.

* Rewording.

* Wording.

* Fixup.
2021-08-22 13:49:33 +10:00
0a1bf7f6aa Support using a timer for wait_us() on ChibiOS-based boards (#12211)
* Support using a timer for wait_us() on ChibiOS-based boards (#12198)

There are spare GPT timers that can be used to get a more accurate
wait_ms() time. This is required for the matrix scan unselect delay (30µs)
to be shorter than the system tick rate of 100µs.

This is limited to the maximum GPT duration of 65535 so values above that
will automatically use the previous implementation based on the system
tick.

Using a specific timer means it can't be shared by another thread at the
same time so when wait_us() is called from anything other than the main
thread it will use the system tick implementation too.

* Update tmk_core/common/chibios/wait.c

* Update tmk_core/common/chibios/wait.c

Co-authored-by: Joel Challis <git@zvecr.com>
2021-08-20 00:31:23 +01:00
b16091659c Move USB Host Shield and Arduino core to lib/ (#13973) 2021-08-18 18:20:25 +10:00
ceb3ebda46 Fixup atsam builds. (#14052) 2021-08-18 01:59:22 +01:00
b8e913c8db Migrate platform independent code from tmk_core -> quantum (#13673)
* Migrate action|keyboard|keycode|eeconfig from tmk_core -> quantum
2021-08-18 00:18:58 +01:00
96e2b13d1d Begin to carve out platform/protocol API - Single main loop (#13843)
* Begin to carve out platform/protocol API

* Fix up after rebase
2021-08-18 00:11:07 +01:00