summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2022-08-31Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-08-31`qmk lint`: fix TypeError (#18226)Ryan
2022-08-30Use a macro to compute the size of arrays at compile time (#18044)Jeff Epler
* Add ARRAY_SIZE and CEILING utility macros * Apply a coccinelle patch to use ARRAY_SIZE * fix up some straggling items * Fix 'make test:secure' * Enhance ARRAY_SIZE macro to reject acting on pointers The previous definition would not produce a diagnostic for ``` int *p; size_t num_elem = ARRAY_SIZE(p) ``` but the new one will. * explicitly get definition of ARRAY_SIZE * Convert to ARRAY_SIZE when const is involved The following spatch finds additional instances where the array is const and the division is by the size of the type, not the size of the first element: ``` @ rule5a using "empty.iso" @ type T; const T[] E; @@ - (sizeof(E)/sizeof(T)) + ARRAY_SIZE(E) @ rule6a using "empty.iso" @ type T; const T[] E; @@ - sizeof(E)/sizeof(T) + ARRAY_SIZE(E) ``` * New instances of ARRAY_SIZE added since initial spatch run * Use `ARRAY_SIZE` in docs (found by grep) * Manually use ARRAY_SIZE hs_set is expected to be the same size as uint16_t, though it's made of two 8-bit integers * Just like char, sizeof(uint8_t) is guaranteed to be 1 This is at least true on any plausible system where qmk is actually used. Per my understanding it's universally true, assuming that uint8_t exists: https://stackoverflow.com/questions/48655310/can-i-assume-that-sizeofuint8-t-1 * Run qmk-format on core C files touched in this branch Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-08-28Handle escaping of manufacturer/product strings (#18194)Ryan
2022-08-28Switch over MANUFACTURER and PRODUCT to string literals (#18183)Ryan
2022-08-26Update LUFA submodule (#18168)Ryan
2022-08-24Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-08-24Update invalid pip install flag (#18146)Joel Challis
2022-08-20Fix PID value for the Keyboardio Atreus 2 bootloader (#18116)Sergey Vlasov
Copy the correct PID from `util/udev/50-qmk.rules`.
2022-08-20CLI: Teaching the CLI to flash binaries (#16584)Erovia
Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: Sergey Vlasov <sigprof@gmail.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-08-19Remove legacy bootmagic cli parsing (#18099)Joel Challis
2022-08-19Fix new-keyboard default for RP2040 bootloader (#18100)Joel Challis
2022-08-13Improve importer workflow (#17707)Joel Challis
2022-08-13Update to latest ChibiOS-Contrib. (#18016)Nick Brassel
2022-08-06Remove `UNUSED_PINS` (#17931)Nick Brassel
2022-08-06Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-08-06Provide users with replacements for deprecated/invalid functionality where ↵Ryan
applicable (#17604)
2022-08-06Publish data as part of API generation (#17020)Joel Challis
2022-07-27Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-07-27CLI compatibility for MacOS (#17811)Albert Y
2022-07-27ChibiOS-Contrib: Update for RP2040 PWM and I2C driver (#17817)Stefan Kerkmann
2022-07-26Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-07-26Make `qmk doctor` print out the last log entry for ↵Nick Brassel
upstream/{master,develop}, including dates (#17713)
2022-07-23Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-07-23Fix test logic to check for both keymaps (#17761)Niko Wenselowski
Python will evaluate first the left and then the right side of the and operator. The left side would previously return True based on the truthiness logic that treats any non-emptry string as true. It would not check if the desired keymap exists. If the left side is true it will evaluate the right side which will check for the existance of a specific keymap. With this change the check for existance of two keymaps is implemented.
2022-07-19Fix AVR compilation of FNV by using standard integer typenames. (#17716)Nick Brassel
2022-07-11More DD encoder fixes (#17615)Joel Challis
2022-07-09Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-07-09Add line to multibuild output log showing the actual build target. (#17606)Nick Brassel
2022-07-08Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-07-08Allow only col or row pins for *_right extraction. (#17590)Dasky
2022-07-08Fix rgbkb/sol/rev2 build issues (#17601)Joel Challis
2022-07-07[Core] Update mpaland/printf to eyalroz/printf fork (#16163)Stefan Kerkmann
mpaland printf implementation was abandoned in ~2019 and the fork by eyalroz is now regarded to be the goto replacement of it. So this commit incoporates the changes needed to use this fork in QMK. Note that pointer ptrdiff_t is always supported since commit 51c90f93a97fdaef895783ecbe24569be0db7cb8
2022-07-03Update ChibiOS-Contrib (#17540)Nick Brassel
2022-07-03Tentative Teensy 3.5 support (#14420)Ryan
* Tentative Teensy 3.5 support * Set firmware format to .hex for ARM Teensys * Got to "device descriptor failed" by comparing with Teensy 3.6 code * Drop down to 96MHz... * Bump back up to 120MHz
2022-07-02Add cli command to import keyboard|keymap|kbfirmware (#16668)Joel Challis
2022-07-01Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-07-01Allow locate_keymap to handle DEFAULT_FOLDER (#17529)Joel Challis
2022-06-30[Core] Add Raspberry Pi RP2040 support (#14877)Stefan Kerkmann
* Disable RESET keycode because of naming conflicts * Add Pico SDK as submodule * Add RP2040 build support to QMK * Adjust USB endpoint structs for RP2040 * Add RP2040 bootloader and double-tap reset routine * Add generic and pro micro RP2040 boards * Add RP2040 onekey keyboard * Add WS2812 PIO DMA enabled driver and documentation Supports regular and open-drain output configuration. RP2040 GPIOs are sadly not 5V tolerant, so this is a bit use-less or needs extra hardware or you take the risk to fry your hardware. * Adjust SIO Driver for RP2040 * Adjust I2C Driver for RP2040 * Adjust SPI Driver for RP2040 * Add PIO serial driver and documentation * Add general RP2040 documentation * Apply suggestions from code review Co-authored-by: Nick Brassel <nick@tzarc.org> Co-authored-by: Nick Brassel <nick@tzarc.org>
2022-06-29Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-06-30Allow module check to error out when piped to /dev/null (#17505)Joel Challis
2022-06-26Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-06-27Fix error message in generated code (#17484)Joel Challis
2022-06-27Generic wear-leveling algorithm (#16996)Nick Brassel
* Initial import of wear-leveling algorithm. * Alignment. * Docs tweaks. * Lock/unlock. * Update quantum/wear_leveling/wear_leveling_internal.h Co-authored-by: Stefan Kerkmann <karlk90@pm.me> * More tests, fix issue with consolidation when unlocked. * More tests. * Review comments. * Add plumbing for FNV1a. * Another test checking that checksum mismatch clears the cache. * Check that the write log still gets played back. Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-06-25Merge remote-tracking branch 'origin/master' into developQMK Bot
2022-06-25Only omit paths containing "/keymaps/" (#17468)precondition
This allows keyboard names to contain the word "keymaps"
2022-06-20Allow encoder config from info.json (#17295)Joel Challis
2022-06-18Additional schema fixes (#17414)Joel Challis
2022-06-17SPI Bugfix for ChibiOS 21.11.1 -- also rollback AW20216 mode change issue. ↵Nick Brassel
(#17371)
2022-06-16Use --exclude-from=.gitignore in place of --exclude-standard (#17399)precondition