Commit Graph

86 Commits (3f44231d2d7889beb87f67035d884daae72eb6f5)

Author SHA1 Message Date
Nick Brassel cf3c26533c
Fixup EFL and F4's sector selection. (#19221) 2022-12-02 21:55:28 +11:00
Nick Brassel bebfdad795
NVRAM refactor, phase 1. (#18969)
* Rename `eeprom_stm32` to `eeprom_legacy_emulated_flash`.

* Rename `flash_stm32` to `legacy_flash_ops`.

* Rename `eeprom_teensy` to `eeprom_kinetis_flexram`.
2022-11-23 08:50:19 +00:00
Nick Brassel 092228571c
Move EFL wear-leveling driver to be default for F1, F3, F4, L4, G4, WB32, GD32V. (#19020) 2022-11-11 23:57:44 +00:00
Nick Brassel 5233c69bc6
Remove thermal printer. (#18959) 2022-11-06 00:15:55 +11:00
Joel Challis 575db6949a
Generalise CTPC logic from common_features (#18803) 2022-10-22 12:39:39 -07:00
Ryan af678521c1
Remove quantum/audio from global VPATH (#18753) 2022-10-20 14:41:45 +01:00
QMK Bot a50b18c9aa Merge remote-tracking branch 'origin/master' into develop 2022-09-30 02:57:53 +00:00
Nick Brassel 168b69654f
Explicitly specify path to RP2040 wear_leveling config file. (#18541) 2022-09-29 19:57:20 -07:00
Ryan f80058d96e
Start Bluetooth API (#18366) 2022-09-29 18:38:09 +01:00
Alabastard-64 7c1797f52f
[Core] Pointing Device Automatic Mouse Layer (#17962)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-09-23 23:43:55 -07:00
Ryan 3d667f0970
Refactor Unicode feature (#18333) 2022-09-12 08:49:04 -07:00
Ryan f7d2b001bc
Move Bluetooth-related function calls up to host/keyboard level (#18274)
* Move Bluetooth-related function calls up to host/keyboard level

* Remove pointless set_output() call

* Move bluetooth (rn42) init to end of keyboard_init()

* Enable SPI/UART for ChibiOS targets

* Some more slight tweaks
2022-09-07 19:59:24 +01:00
Marek Kraus 0237ff0c62
[Core] Rework PS/2 driver selection (#17892)
* [Core] Rework PS/2 driver selection

Enabling and selecting PS/2 driver was using old approach,
so it was reworked to current approach, inspired by Serial
and WS2812 driver selections.

* [Keyboard] Update keyboards using PS/2 to use new PS/2 driver selection

* [Docs] Update PS/2 documentation to use new PS/2 driver selection

* Fix indentation

* [Core] Add PS2 to data driver

* Fix oversight in property name

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

* Add PS/2 pins to data driven mappings

Co-authored-by: Drashna Jaelre <drashna@live.com>
2022-08-31 09:16:07 +02:00
Drashna Jaelre 4da3482872
Fix Emulated EEPROM issue with F466 (#18039) 2022-08-14 17:18:59 +01:00
Mega Mind fce99f3875
[Controller] Added board config for custom controller STeMCell (#16287)
Co-authored-by: Mariappan Ramasamy <947300+Mariappan@users.noreply.github.com>
Co-authored-by: Mariappan Ramasamy <maari@basis-ai.com>
Co-authored-by: Sadek Baroudi <sadekbaroudi@gmail.com>
2022-08-14 21:27:26 +10:00
lokher a02aff9c77
Add led matrix support for CKLED2001 (#17643) 2022-08-13 14:39:06 +01:00
Drashna Jaelre 3d24845016
[Bug] Fix wrong varaible in encoder block (#18020) 2022-08-12 19:55:59 -07:00
Drashna Jaelre aed82bc6a0
Move Encoder+Encoder Map from generic features (#18018) 2022-08-12 18:04:02 -07:00
Drashna Jaelre ee17ffadea
Move Pointing Device code to a subdirectory (#17684) 2022-07-20 17:32:00 +01:00
Drashna Jaelre 12eb6444c6
Add support for PAW3204 Optical Sensor (#17669)
Co-authored-by: gompa <gompa@h-bomb.nl>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
2022-07-19 17:46:22 -07:00
Stefan Kerkmann 3c58f98929
[Core] PMW33XX drivers overhaul (#17613)
* PMW33XX drivers overhaul

This combines the PMW3389 and PM3360 drivers as they only differ in the
firmware blobs and CPI get and set functions. The following changes have
been made:

* PMW3389 now gets the same multi-sensor feature that is already available on the
  PMW3360.

* Introduced a shared pmw33xx_report_t struct is now directly readable via SPI
  transactions instead of individual byte-sized reads, saving multiple
  copies and bitshift operations.

* pmw33(89/60)_get_report functions had unreachable branches in their motion
  detection logic these have been simplied as much as possible.

* The fast firmware upload option has been removed as this becomes obsolete by
  the newly introduced polled waiting functions for ChibiOS polled waiting

* PMW33(60/89)_SPI_LSBFIRST and PMW33(60/89)_SPI_MODE config options
  have been removed as they don't need to be configurable.

* All PMW3389 and PMW3360 defines have been unified to a PMW33XX prefix
  to reduce code duplication and make the defines interchangeable

* Adjust keyboards to PMW33XX naming scheme
2022-07-14 11:50:00 +02:00
Daniel Kao 5db705d054
Cirque trackpad features: circular scroll, inertial cursor (#17482) 2022-07-12 21:17:40 -07:00
Ryan 3ecb0a80af
Feature-ify Send String (#17275) 2022-07-02 22:10:08 +10:00
Nick Brassel 5846b40f74
RP2040 emulated EEPROM. (#17519) 2022-07-02 15:18:50 +10: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
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>
2022-06-27 07:18:21 +10:00
precondition 7060cb7b26
Refactor steno and add `STENO_PROTOCOL = [all|txbolt|geminipr]` (#17065)
* Refactor steno into STENO_ENABLE_[ALL|GEMINI|BOLT]

* Update stenography documentation

* STENO_ENABLE_TXBOLT → STENO_ENABLE_BOLT

TXBOLT is a better name but BOLT is more consistent with the
pre-existing TX Bolt related constants, which all drop the "TX " prefix

* Comments

* STENO_ENABLE_[GEMINI|BOLT|ALL] → STENO_PROTOCOL = [geminipr|txbolt|all]

* Add note on lacking V-USB support

* Clear chord at the end of the switch(mode){send_steno_chord} block

* Return true if NOEVENT

* update_chord_xxx → add_xxx_key_to_chord

* Enable the defines for all the protocols if STENO_PROTOCOL = all

* Mention how to use `steno_set_mode`

* Set the default steno protocol to "all"

This is done so that existing keymaps invoking `steno_set_mode` don't
all suddenly break

* Add data driver equivalents for stenography feature

* Document format of serial steno packets

(Thanks dnaq)

* Add missing comma
2022-06-23 20:43:24 +02: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
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
Nick Brassel 8545473307
Removes terminal from QMK. (#17258) 2022-05-30 22:38:08 -07:00
Nick Brassel 1f2b1dedcc
Quantum Painter (#10174)
* Install dependencies before executing unit tests.

* Split out UTF-8 decoder.

* Fixup python formatting rules.

* Add documentation for QGF/QFF and the RLE format used.

* Add CLI commands for converting images and fonts.

* Add stub rules.mk for QP.

* Add stream type.

* Add base driver and comms interfaces.

* Add support for SPI, SPI+D/C comms drivers.

* Include <qp.h> when enabled.

* Add base support for SPI+D/C+RST panels, as well as concrete implementation of ST7789.

* Add support for GC9A01.

* Add support for ILI9341.

* Add support for ILI9163.

* Add support for SSD1351.

* Implement qp_setpixel, including pixdata buffer management.

* Implement qp_line.

* Implement qp_rect.

* Implement qp_circle.

* Implement qp_ellipse.

* Implement palette interpolation.

* Allow for streams to work with either flash or RAM.

* Image loading.

* Font loading.

* QGF palette loading.

* Progressive decoder of pixel data supporting Raw+RLE, 1-,2-,4-,8-bpp monochrome and palette-based images.

* Image drawing.

* Animations.

* Font rendering.

* Check against 256 colours, dump out the loaded palette if debugging enabled.

* Fix build.

* AVR is not the intended audience.

* `qmk format-c`

* Generation fix.

* First batch of docs.

* More docs and examples.

* Review comments.

* Public API documentation.
2022-04-13 18:00:18 +10:00
Ryan 9ee2effe8e
HD44780 driver rework (#16370) 2022-03-19 17:57:22 +11:00
Joy Lee 71c0b97bce
Added external spi flash driver. (#15419) 2022-02-11 20:26:16 +00:00
Idan Kamara 793f54f6ca
ps2/avr: use the correct file name (#16316)
This was missed in https://github.com/qmk/qmk_firmware/pull/14895.

Thanks to fauxpark for spotting this.
2022-02-11 20:36:26 +11:00
Joel Challis f7e7671f69
Migrate more makefile utilities to builddefs sub-directory (#16002) 2022-02-10 09:45:51 -08:00