504 Commits (3d667f09705fa780bd5881cfa3b3cb10fa41b1fe)

Author SHA1 Message Date
Ryan bb6f028833
Move bootloader.mk to platforms (#18228) 3 years ago
QMK Bot ba7030d216 Merge remote-tracking branch 'origin/master' into develop 3 years ago
Ryan 6f804f76b4
`qmk lint`: fix TypeError (#18226) 3 years ago
Jeff Epler 9632360caa
Use a macro to compute the size of arrays at compile time (#18044)
* 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>
3 years ago
Ryan 3adaf6a46a
Handle escaping of manufacturer/product strings (#18194) 3 years ago
Ryan d983251c10
Switch over MANUFACTURER and PRODUCT to string literals (#18183) 3 years ago
Ryan 24720400a8
Update LUFA submodule (#18168) 3 years ago
QMK Bot 129c60946c Merge remote-tracking branch 'origin/master' into develop 3 years ago
Joel Challis 3d8c624698
Update invalid pip install flag (#18146) 3 years ago
Sergey Vlasov 7ee55b1754
Fix PID value for the Keyboardio Atreus 2 bootloader (#18116)
Copy the correct PID from `util/udev/50-qmk.rules`.
3 years ago
Erovia 5e2ffe7d8f
CLI: Teaching the CLI to flash binaries (#16584)
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>
3 years ago
Joel Challis 3c745caf61
Remove legacy bootmagic cli parsing (#18099) 3 years ago
Joel Challis 9550cc464c
Fix new-keyboard default for RP2040 bootloader (#18100) 3 years ago
Joel Challis fc7e9efd21
Improve importer workflow (#17707) 3 years ago
Nick Brassel 8133f40c26
Update to latest ChibiOS-Contrib. (#18016) 3 years ago
Nick Brassel 154d35ac14
Remove `UNUSED_PINS` (#17931) 3 years ago
QMK Bot 820371c31b Merge remote-tracking branch 'origin/master' into develop 3 years ago
Ryan 37345e2ace
Provide users with replacements for deprecated/invalid functionality where applicable (#17604) 3 years ago
Joel Challis 897403c4a7
Publish data as part of API generation (#17020) 3 years ago
QMK Bot 00c1653a15 Merge remote-tracking branch 'origin/master' into develop 3 years ago
Albert Y 3285659690
CLI compatibility for MacOS (#17811) 3 years ago
Stefan Kerkmann 59d940c9f3
ChibiOS-Contrib: Update for RP2040 PWM and I2C driver (#17817) 3 years ago
QMK Bot 61da9286a1 Merge remote-tracking branch 'origin/master' into develop 3 years ago
Nick Brassel d1434b6d75
Make `qmk doctor` print out the last log entry for upstream/{master,develop}, including dates (#17713) 3 years ago
QMK Bot 8254d73fd4 Merge remote-tracking branch 'origin/master' into develop 3 years ago
Niko Wenselowski 1f42a8ccdd
Fix test logic to check for both keymaps (#17761)
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.
3 years ago
Nick Brassel 1cdde7ba6a
Fix AVR compilation of FNV by using standard integer typenames. (#17716) 3 years ago
Joel Challis 35d78aa8a4
More DD encoder fixes (#17615) 3 years ago
QMK Bot 39e1e27ea9 Merge remote-tracking branch 'origin/master' into develop 3 years ago
Nick Brassel 561c5e1d7a
Add line to multibuild output log showing the actual build target. (#17606) 3 years ago
QMK Bot 30f2556ae9 Merge remote-tracking branch 'origin/master' into develop 3 years ago
Dasky 06310e81e9
Allow only col or row pins for *_right extraction. (#17590) 3 years ago
Joel Challis 81d317aa87
Fix rgbkb/sol/rev2 build issues (#17601) 3 years ago
Stefan Kerkmann d9bb189e25
[Core] Update mpaland/printf to eyalroz/printf fork (#16163)
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
3 years ago
Nick Brassel f346c8400c
Update ChibiOS-Contrib (#17540) 3 years ago
Ryan ac5e6b6a3b
Tentative Teensy 3.5 support (#14420)
* 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
3 years ago
Joel Challis 59e28b8958
Add cli command to import keyboard|keymap|kbfirmware (#16668) 3 years ago
QMK Bot d6c39490df Merge remote-tracking branch 'origin/master' into develop 3 years ago
Joel Challis 9d70162d53
Allow locate_keymap to handle DEFAULT_FOLDER (#17529) 3 years ago
Stefan Kerkmann d717396708
[Core] Add Raspberry Pi RP2040 support (#14877)
* 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>
3 years ago
QMK Bot fb05b491e7 Merge remote-tracking branch 'origin/master' into develop 3 years ago
Joel Challis 7326a0051b
Allow module check to error out when piped to /dev/null (#17505) 3 years ago
QMK Bot 33b62b6867 Merge remote-tracking branch 'origin/master' into develop 4 years ago
Joel Challis fa3dd373b4
Fix error message in generated code (#17484) 4 years ago
Nick Brassel 01ecf332ff
Generic wear-leveling algorithm (#16996)
* 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>
4 years ago
QMK Bot 99614bd89a Merge remote-tracking branch 'origin/master' into develop 4 years ago
precondition e13bb58c40
Only omit paths containing "/keymaps/" (#17468)
This allows keyboard names to contain the word "keymaps"
4 years ago
Joel Challis 1a400d8644
Allow encoder config from info.json (#17295) 4 years ago
Joel Challis 17ec1650fd
Additional schema fixes (#17414) 4 years ago
Nick Brassel 999b91fbd9
SPI Bugfix for ChibiOS 21.11.1 -- also rollback AW20216 mode change issue. (#17371) 4 years ago