Commit graph

146 commits

Author SHA1 Message Date
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
2022-07-03 00:12:45 +10:00
Nick Brassel
5846b40f74
RP2040 emulated EEPROM. (#17519) 2022-07-02 15:18:50 +10:00
Stefan Kerkmann
77d960cce3
Disable clang-format for stage2_bootloaders (#17516) 2022-06-30 20:07:54 +01:00
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>
2022-06-30 13:19:27 +02:00
Nick Brassel
34e244cecf
Wear-leveling EEPROM drivers: embedded_flash, spi_flash, legacy (#17376) 2022-06-30 07:42:23 +10:00
QMK Bot
e30cd0fa16 Merge remote-tracking branch 'origin/master' into develop 2022-06-25 19:35:17 +00:00
Drashna Jaelre
7fd3d76faa
[Split] Ensure SOFT_SERIAL_PIN is defined if USE_I2C isn't defined (#17466) 2022-06-25 12:34:40 -07:00
Stefan Kerkmann
9aa9155e88
[Core] Mark GD32VF103 as ChibiOS-Contrib (#17444) 2022-06-23 08:37:40 +10:00
Daniel Kao
608404f874
Fix AVR I2C master 1ms timeout (#17174)
* avr i2c_master: Fix 1ms timeout

i2c_start() produces a minimum time_slice of 1ms for use as timeout
value.
The timer granularity is 1ms, it is entirely possible for timer_count
to tick up immediately after the last timer read and falsely trigger
timeout with a '>= 1' comparison.

* avr/drivers/i2c_master: Use timer_elapsed()
2022-06-22 00:00:04 +02:00
Stefan Kerkmann
6a81cb44f2
[Fix] Fix compilation warning for non-split keebs after #17423 (#17439) 2022-06-21 09:31:20 +10:00
Stefan Kerkmann
2703ecc9e9
[BUG] Fix deadlocks on disconnected secondary half (#17423) 2022-06-21 08:24:53 +10:00
Stefan Kerkmann
fe680a8568
[Core] Split ChibiOS usart split driver in protocol and hardware driver part (#16669) 2022-06-18 08:04:17 +10:00
Stefan Kerkmann
6d67e9df4b
[Core] Allow usage of ChibiOS's SIO driver for split keyboards (#15907) 2022-06-17 22:06:44 +02:00
Nick Brassel
1085500e89
Rework paths for eeprom locations. (#17326)
* Rework paths for eeprom locations.

* File relocation.

* Wrong file move.

* Fixup test paths.
2022-06-08 09:42:35 +10:00
Stefan Kerkmann
e89478eb0f
[Core] Update C standard to GNU11, C++ to GNU++14 (#17114) 2022-06-06 08:47:22 +10:00
Thomas Preisner
bbab8eb993
Make bootloader_jump for dualbank STM32 respect STM32_BOOTLOADER_DUAL_BANK_DELAY (#17178) 2022-05-30 23:20:10 -07:00
Andrew Dunai
ecce9900c9
Improve PS/2 mouse performance (#17111) 2022-05-30 23:15:17 -07:00
Dasky
2de70e6f2d
Add uf2-split-* make targets. (#17257) 2022-05-31 08:04:50 +10:00
Joy Lee
1c7e8b9a9d
Added support for Wb32fq95 (#16871) 2022-05-23 15:57:24 +10:00
QMK Bot
ce9a5aaef3 Merge remote-tracking branch 'origin/master' into develop 2022-05-18 19:58:37 +00:00
Takeshi ISHII
80405c6d96
Fix platforms/avr/drivers/ws2812.c (#17043)
* Fix platforms/avr/drivers/ws2812.c

`platforms/avr/drivers/ws2812.c` has been changed to use `DDRx_ADDRESS()` and `PORTx_ADDRESS()` instead of `_SFR_IO8()` in #8646.  To use them, `#include <pin_defs.h>` is required.

 ## Error Log
* create new keyboard
```shell
bash-3.2$ qmk new-keyboard
Ψ Generating a new QMK keyboard directory

Name Your Keyboard Project
For more infomation, see:
https://docs.qmk.fm/#/hardware_keyboard_guidelines?id=naming-your-keyboardproject

Keyboard Name? ws2812_test
..................................
     36. WB32F3G71
Please enter your choice:  [12]
Ψ Created a new keyboard called ws2812_test.
Ψ To start working on things, `cd` into keyboards/ws2812_test,
Ψ or open the directory in your preferred text editor.
Ψ And build with qmk compile -kb ws2812_test -km default.
```
* Enable RGBLIGHT.
```shell
bash-3.2$ echo RGBLIGHT_ENABLE=yes >> ./keyboards/ws2812_test/rules.mk
bash-3.2$ echo '#define RGB_DI_PIN B1' >> ./keyboards/ws2812_test/config.h
bash-3.2$ echo '#define RGBLED_NUM 6' >> ./keyboards/ws2812_test/config.h
```
* Compile
```shell
bash-3.2$ make ws2812_test:default

QMK Firmware 0.16.9
Making ws2812_test with keymap default

avr-gcc (Homebrew AVR GCC 8.4.0_2) 8.4.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

.....................
Compiling: quantum/process_keycode/process_rgb.c                                                    [OK]
Compiling: platforms/avr/drivers/ws2812.c                                                          platforms/avr/drivers/ws2812.c: In function 'ws2812_setleds':
platforms/avr/drivers/ws2812.c:40:5: error: implicit declaration of function 'DDRx_ADDRESS' [-Werror=implicit-function-declaration]
     DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(RGB_DI_PIN);
     ^~~~~~~~~~~~
In file included from <command-line>:
./keyboards/ws2812_test/config.h:21:20: error: 'B1' undeclared (first use in this function); did you mean 'PB1'?
 #define RGB_DI_PIN B1
                    ^~
platforms/avr/drivers/ws2812.c:40:18: note: in expansion of macro 'RGB_DI_PIN'
     DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(RGB_DI_PIN);
                  ^~~~~~~~~~
./keyboards/ws2812_test/config.h:21:20: note: each undeclared identifier is reported only once for each function it appears in
 #define RGB_DI_PIN B1
                    ^~
platforms/avr/drivers/ws2812.c:40:18: note: in expansion of macro 'RGB_DI_PIN'
     DDRx_ADDRESS(RGB_DI_PIN) |= pinmask(RGB_DI_PIN);
                  ^~~~~~~~~~
platforms/avr/drivers/ws2812.c:42:47: error: implicit declaration of function 'PORTx_ADDRESS' [-Werror=implicit-function-declaration]
     uint8_t masklo = ~(pinmask(RGB_DI_PIN)) & PORTx_ADDRESS(RGB_DI_PIN);
                                               ^~~~~~~~~~~~~
In file included from /usr/local/Cellar/avr-gcc@8/8.4.0_2/avr/include/avr/io.h:99,
                 from /usr/local/Cellar/avr-gcc@8/8.4.0_2/avr/include/avr/interrupt.h:38,
                 from platforms/avr/drivers/ws2812.c:24:
platforms/avr/drivers/ws2812.c: In function 'ws2812_sendarray_mask':
./keyboards/ws2812_test/config.h:21:20: error: 'B1' undeclared (first use in this function); did you mean 'PB1'?
 #define RGB_DI_PIN B1
                    ^~
platforms/avr/drivers/ws2812.c:167:69: note: in expansion of macro 'RGB_DI_PIN'
                      : "r"(curbyte), "I"(_SFR_IO_ADDR(PORTx_ADDRESS(RGB_DI_PIN))), "r"(maskhi), "r"(masklo));
                                                                     ^~~~~~~~~~
cc1: all warnings being treated as errors
 [ERRORS]
 |
 |
 |
make[1]: *** [.build/obj_ws2812_test_default/ws2812.o] Error 1
make: *** [ws2812_test:default] Error 1
Make finished with errors
```

* change include order
2022-05-18 20:58:03 +01:00
Joel Challis
6503987c84
Workaround for recent -Werror=array-bounds AVR issues (#17136) 2022-05-18 11:06:55 +01:00
Drashna Jaelre
787a68948f
[Core] Add Reboot keycode to core (#15990) 2022-05-14 13:35:49 +10:00
Joel Challis
d458d4a596
Move disable_jtag to platforms (#16960) 2022-04-29 01:23:50 +01:00
Stefan Kerkmann
b1681fb6a1
[Core] Allow usage of AVRs minimal printf library (#16266)
Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
2022-04-22 18:13:31 +10:00
Joel Challis
969c68a9ad
Provide better config defaults for bluepill boards (#16909) 2022-04-22 07:03:28 +10:00
QMK Bot
c3a03b6423
[CI] Format code according to conventions (#16888) 2022-04-19 21:28:14 +10:00
Joy Lee
25f849b397
Update wb32-dfu (#16438) 2022-04-19 21:21:12 +10:00
Stefan Kerkmann
7712a286dc
[Core] Use a mutex guard for split shared memory (#16647) 2022-04-19 20:56:16 +10:00
Nick Brassel
f50a623909
Fixup AVR builds. (#16875)
* Fixup AVR builds.

* Update platforms/avr/hardware_id.c

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

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2022-04-18 15:39:45 +01:00
Joel Challis
b8245a5507
Expose API for hardware unique ID (#16869) 2022-04-18 20:51:40 +10:00
Joel Challis
a5e810b86c
Add non blackpill F4x1 config files (#16600)
* Add non blackpill F4x1 config files

* Move ld files

* Remove f401 i2c bodges

* more bodge?

* Update to recommended defaults
2022-04-06 01:23:04 +01:00
Joel Challis
1660b2d2e2
Refactor CTPC logic to allow future converters (#16621)
* Refactor CTPC logic to allow future converters

* Update builddefs/converters.mk

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-04-03 18:22:52 +01:00
dn9uyen
38209c5c86
Add emulated eeprom support for STM32F303xE (#16737)
Added FEE_PAGE_SIZE and FEE_MCU_FLASH_SIZE defines for the STM32F303xE
2022-03-30 20:00:17 +01:00
Stefan Kerkmann
119abc4375
Refactor writePin to work with statements (#16738) 2022-03-27 15:07:25 -07:00
QMK Bot
5342caf172 Merge remote-tracking branch 'origin/master' into develop 2022-03-23 16:40:54 +00:00
Drashna Jaelre
4a3b4104fe
[Bug] Fix unused variable error when using ChibiOS Bitbang serial driver (#16709) 2022-03-23 09:38:51 -07:00
Ryan
9ee2effe8e
HD44780 driver rework (#16370) 2022-03-19 17:57:22 +11:00
Joel Challis
dd32cdf527
Redo workaround for pin_def errors on KINETIS (#16620)
* Redo workaround for pin_def errors on KINETIS

* Redo workaround for pin_def errors on KINETIS
2022-03-11 18:50:59 +00:00
Joel Challis
1833e65370
Workaround for pin_def errors on KINETIS (#16614) 2022-03-11 13:27:29 +00:00
Joel Challis
7e6f1c9e08
Force platform pin defs to be included (#16611)
* Force platform pin defs to be included

* Always grab first header
2022-03-10 23:53:16 +00:00
Stefan Kerkmann
2bface8f89
Add flash target for UF2 bootloaders (#16525) 2022-03-07 08:59:06 -08:00
Nick Brassel
44f1bd9b3a
ChibiOS 21.11.1 update. (#16251)
* ChibiOS 21.11.1 update.

* `uf2-tinyuf2` => `tinyuf2`

* Updated chibios-contrib, fixup preprocessor for tinyuf2 bootloader.

* Fixup keychron L433 boards.

* Makefile cleanup.

* RISC-V build fixes.

* Fixup RISC-V build.
2022-03-07 21:04:22 +11:00
QMK Bot
bcd4f34b26 Merge remote-tracking branch 'origin/master' into develop 2022-03-04 03:57:31 +00:00
Ryan
d412854e37
analog.[ch]: remove unnecessary includes (#16471) 2022-03-04 14:56:59 +11:00
Stefan Kerkmann
156f0561f2
[Core] Squeeze AVR some more with -mrelax and -mcall-prologues (#16269) 2022-02-26 19:05:03 -08:00
Joel Challis
4fd04b2371
Fix compilation of ChibiOS UART driver (#16348)
Cherry picked fix from 15724
2022-02-13 20:44:44 +00:00
QMK Bot
63646e8906
Format code according to conventions (#16322) 2022-02-12 18:29:31 +00:00
Nick Brassel
d31dd6d2a0
Followup to #16220, more test error output. (#16221) 2022-02-05 12:51:23 +11:00
Joel Challis
135c935990
Initial migration of suspend callbacks (#16067)
* Initial migration of suspend logic

* Add header
2022-02-05 05:10:00 +11:00