summaryrefslogtreecommitdiffstats
path: root/platforms
Commit message (Collapse)AuthorAgeFilesLines
* Allow MCU-specific overrides for SPI flags. (#17650)Nick Brassel2022-07-132-3/+18
|
* Include stdint.h in avr/i2c_master.h (#17639)jack2022-07-121-0/+2
|
* [Fix] Make ChibiOS `_wait.h` independent of `quantum.h` (#17645)Stefan Kerkmann2022-07-121-0/+1
|
* [Core] Use polled waiting on ChibiOS platforms that support it (#17607)Stefan Kerkmann2022-07-115-5/+22
| | | | | | | | | | | | | | | | | | | | | | | | * Use polled waiting on platforms that support it Due to context switching overhead waiting a very short amount of time on a sleeping thread is often not accurate and in fact not usable for timing critical usage i.e. in a driver. Thus we use polled waiting for ranges in the us range on platforms that support it instead. The fallback is the thread sleeping mechanism. This includes: * ARM platforms with CYCCNT register (ARMv7, ARMv8) this is incremented at CPU clock frequency * GD32VF103 RISC-V port with CSR_MCYCLE register this is incremented at CPU clock frequency * RP2040 ARMv6 port which uses the integrated timer peripheral which is incremented with a fixed 1MHz frequency * Use wait_us() instead of chSysPolledDelayX ...as it is powered by busy waiting now. * Add chibios waiting methods test bench
* Stabilize Half-duplex PIO split comms (#17612)Stefan Kerkmann2022-07-111-3/+17
|
* Update PM2040 I2C pins (#17578)Albert Y2022-07-071-2/+2
|
* [Core] Update mpaland/printf to eyalroz/printf fork (#16163)Stefan Kerkmann2022-07-073-1/+4
| | | | | | | | 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
* Add kb2040 and sparkfun rp2040 converters (#17514)Joel Challis2022-07-0610-0/+252
|
* Fixup SPI. (#17534)Nick Brassel2022-07-051-0/+3
|
* Tentative Teensy 3.5 support (#14420)Ryan2022-07-031-1/+1
| | | | | | | | | | | * 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
* RP2040 emulated EEPROM. (#17519)Nick Brassel2022-07-028-6/+431
|
* Disable clang-format for stage2_bootloaders (#17516)Stefan Kerkmann2022-06-301-1/+5
|
* [Core] Add Raspberry Pi RP2040 support (#14877)Stefan Kerkmann2022-06-3022-8/+1628
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* Wear-leveling EEPROM drivers: `embedded_flash`, `spi_flash`, `legacy` (#17376)Nick Brassel2022-06-306-0/+323
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2022-06-251-0/+4
|\
| * [Split] Ensure SOFT_SERIAL_PIN is defined if USE_I2C isn't defined (#17466)Drashna Jaelre2022-06-251-0/+4
| |
* | [Core] Mark GD32VF103 as ChibiOS-Contrib (#17444)Stefan Kerkmann2022-06-231-0/+1
| |
* | Fix AVR I2C master 1ms timeout (#17174)Daniel Kao2022-06-221-6/+6
| | | | | | | | | | | | | | | | | | | | | | * 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()
* | [Fix] Fix compilation warning for non-split keebs after #17423 (#17439)Stefan Kerkmann2022-06-211-1/+5
| |
* | [BUG] Fix deadlocks on disconnected secondary half (#17423)Stefan Kerkmann2022-06-213-11/+38
| |
* | [Core] Split ChibiOS usart split driver in protocol and hardware driver part ↵Stefan Kerkmann2022-06-185-226/+263
| | | | | | | | (#16669)
* | [Core] Allow usage of ChibiOS's SIO driver for split keyboards (#15907)Stefan Kerkmann2022-06-172-62/+150
| |
* | Rework paths for eeprom locations. (#17326)Nick Brassel2022-06-088-2/+3
| | | | | | | | | | | | | | | | | | * Rework paths for eeprom locations. * File relocation. * Wrong file move. * Fixup test paths.
* | [Core] Update C standard to GNU11, C++ to GNU++14 (#17114)Stefan Kerkmann2022-06-063-3/+3
| |
* | Make bootloader_jump for dualbank STM32 respect ↵Thomas Preisner2022-05-301-2/+2
| | | | | | | | STM32_BOOTLOADER_DUAL_BANK_DELAY (#17178)
* | Improve PS/2 mouse performance (#17111)Andrew Dunai2022-05-301-2/+2
| |
* | Add uf2-split-* make targets. (#17257)Dasky2022-05-311-2/+6
|/
* Added support for Wb32fq95 (#16871)Joy Lee2022-05-2311-6/+373
|
* Merge remote-tracking branch 'origin/master' into developQMK Bot2022-05-181-1/+2
|\
| * Fix platforms/avr/drivers/ws2812.c (#17043)Takeshi ISHII2022-05-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* | Workaround for recent -Werror=array-bounds AVR issues (#17136)Joel Challis2022-05-181-0/+5
| |
* | [Core] Add Reboot keycode to core (#15990)Drashna Jaelre2022-05-1419-4/+98
| |
* | Move disable_jtag to platforms (#16960)Joel Challis2022-04-291-1/+12
| |
* | [Core] Allow usage of AVRs minimal printf library (#16266)Stefan Kerkmann2022-04-221-0/+9
| | | | | | Co-authored-by: Sergey Vlasov <sigprof@gmail.com>
* | Provide better config defaults for bluepill boards (#16909)Joel Challis2022-04-221-0/+8
| |
* | [CI] Format code according to conventions (#16888)QMK Bot2022-04-191-3/+3
| |
* | Update wb32-dfu (#16438)Joy Lee2022-04-191-0/+49
| |
* | [Core] Use a mutex guard for split shared memory (#16647)Stefan Kerkmann2022-04-195-11/+74
| |
* | Fixup AVR builds. (#16875)Nick Brassel2022-04-181-0/+6
| | | | | | | | | | | | | | | | | | | | * 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>
* | Expose API for hardware unique ID (#16869)Joel Challis2022-04-186-0/+65
| |
* | Add non blackpill F4x1 config files (#16600)Joel Challis2022-04-0613-0/+712
| | | | | | | | | | | | | | | | | | | | | | * Add non blackpill F4x1 config files * Move ld files * Remove f401 i2c bodges * more bodge? * Update to recommended defaults
* | Refactor CTPC logic to allow future converters (#16621)Joel Challis2022-04-033-304/+303
| | | | | | | | | | | | | | | | | | * 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>
* | Add emulated eeprom support for STM32F303xE (#16737)dn9uyen2022-03-301-2/+2
| | | | | | Added FEE_PAGE_SIZE and FEE_MCU_FLASH_SIZE defines for the STM32F303xE
* | Refactor writePin to work with statements (#16738)Stefan Kerkmann2022-03-271-1/+8
| |
* | Merge remote-tracking branch 'origin/master' into developQMK Bot2022-03-231-1/+2
|\|
| * [Bug] Fix unused variable error when using ChibiOS Bitbang serial driver ↵Drashna Jaelre2022-03-231-1/+2
| | | | | | | | (#16709)
* | HD44780 driver rework (#16370)Ryan2022-03-192-890/+0
| |
* | Redo workaround for pin_def errors on KINETIS (#16620)Joel Challis2022-03-112-4/+6
| | | | | | | | | | * Redo workaround for pin_def errors on KINETIS * Redo workaround for pin_def errors on KINETIS
* | Workaround for pin_def errors on KINETIS (#16614)Joel Challis2022-03-111-0/+4
| |
* | Force platform pin defs to be included (#16611)Joel Challis2022-03-104-2/+2
| | | | | | | | | | * Force platform pin defs to be included * Always grab first header