Commit graph

16 commits

Author SHA1 Message Date
Joel Spadin
f946dc6893 feat(kscan): Improve matrix debouncing
Switched the GPIO matrix driver to debouncing using a simple integrator
algorithm. Whenever a key is pressed, we now scan at a rate controlled
by debounce-scan-period-ms (default 1 ms) until all keys are released,
then return to either waiting for an interrupt or polling more slowly.

The timers for key press and release can now be controlled separately,
so debounce-period is deprecated in favor of debounce-press-ms and
debounce-release-ms. Global Kconfig options
ZMK_KSCAN_DEBOUNCE_PRESS_MS and ZMK_KSCAN_DEBOUNCE_RELEASE_MS are also
added to make these easier to set.

Added documentation for debouncing options.
2021-10-26 23:52:13 -04:00
Pete Johanson
647110e5e5 feat(drivers): Add mcp23017 driver based on upstream mcp23s17 one.
* Upstream Zephyr has in progress driver, so doing this locally here,
  until we can move over to that driver.
2021-09-14 20:48:28 -04:00
Joel Spadin
82cb762698 refactor(kscan): Demacroify GPIO matrix driver
Refactored the GPIO matrix kscan driver so that only the data and config
structures are defined in the foreach macro. Functionality is unchanged
except for the addition of DT properties to adjust polling speed.

This should make it easier to add other enhancements later, like
improved and customizable debounce behavior.
2021-09-08 14:34:28 -04:00
Joel Spadin
a6de43e665 feat: Add nrf VDDH battery driver
Added a driver which uses the nRF52's ADC channel on the VDDH pin to
read the battery voltage when using high voltage mode.
2021-07-24 23:39:13 -05:00
innovaker
61893e453b
refactor(app): format with prettier (#563)
prettier --write .

PR: #563
2021-01-01 22:55:52 -05:00
innovaker
8d9ae1fdf3 refactor: Align drivers with Zephyr file system conventions
PR: #400
2020-12-03 21:06:01 -05:00
Jay Greco
1522c91d73 Add new kscan_gpio_demux driver
+ zmk,kscan_gpio_demux is now a compatible kscan option
+ kscan_gpio_demux is based heavily off of the implementation of
kscan_gpio_matrix, modified to address cols using an n-to-1
demultiplexer chip instead of discrete IO
+ Added zmk,kscan_gpio_demux.yaml file
* modified CMakeLists to include new source files
2020-10-27 18:58:58 +00:00
Nick
3082455aec Refactor driver to use Sensor API 2020-10-23 00:45:59 -05:00
Nick
844f2c7674 Voltage divider driver initial implementation 2020-09-19 19:14:59 -05:00
Pete Johanson
aa7c74fe07 Filename fix for EN11 -> EC11. 2020-07-21 13:24:44 -04:00
Pete Johanson
109c69cbab EN11 is actually EC11, some sample work. 2020-07-20 20:54:58 -04:00
Pete Johanson
893b99d907 Initial en11 exploration. 2020-07-19 22:11:17 -04:00
Pete Johanson
a6a364725d Fix .gitignore, add missing changes. 2020-06-24 10:37:02 -04:00
Pete Johanson
d35a95c7af Initial working Clueboard California Macropad w/ proton-c fixes
* Basic Clueboard Californai Macropad shield definition.
* New "direct" KSCAN driver that supports non-matrix direct
  wiring for switches, needed for macropad that doesn't have
  a matrix at all.
* Some renames for existing KSCAN GPIO driver to make the implied
  "matrix" part explicit.
2020-06-24 10:14:27 -04:00
Pete Johanson
297e457dd5 Fix remaining Apache header lines. 2020-06-09 09:54:13 -04:00
Pete Johanson
38f1dbd984 Move Zephyr app into subdirectory. 2020-06-08 21:07:16 -04:00