Commit Graph

105 Commits

Author SHA1 Message Date
Nick a008731103 Implement Kconfig and enhance error checks 2020-10-26 16:01:57 -05:00
Nick 63007fb6c1 fix: clang-format 2020-10-24 18:54:56 -05:00
Nick adb07926b1 Remove newlib dep 2020-10-24 18:52:34 -05:00
Nick a67a8cd3b8 Check if fetch channel is supported 2020-10-23 22:37:44 -05:00
Nick 6047415b1c Fix build for boards without voltage divider 2020-10-23 01:19:47 -05:00
Nick Winans 70ffcca3b4
Merge branch 'main' into bluetooth/battery-reporting 2020-10-23 00:55:50 -05:00
Nick 162c6b77db clang-format and add missing defconfig values 2020-10-23 00:50:39 -05:00
Nick 3082455aec Refactor driver to use Sensor API 2020-10-23 00:45:59 -05:00
Nuxiom 1c0c02e097
Reformatted according to clang-format lint 2020-10-11 17:51:06 +11:00
Nuxiom 78cb6c8b21
Fix kscan_gpio_irq_callback_handler_##n conditional macro 2020-10-11 17:33:07 +11:00
Pete Johanson 12b9a37005
Merge pull request #211 from petejohanson/core/keymap-port-event-exploration
Use PORT events for kscan matrix interrupts, add option for deep sleep.
2020-10-06 17:32:35 -04:00
Pete Johanson a7496ab064 feat(power): Initial deep sleep work.
* New ZMK_SLEEP Kconfig symbol to enable the functionality.
* Switch to PORT events that allows wake from deep sleep.
* Initial basic power management policy, with idle ms,
  and ignoring deep sleep if we detect a USB connection.
2020-10-06 17:24:36 -04:00
Pete Johanson 9be566603e feat(kscan): Use PORT events for kscan matrix interrupts
* Lower power usage compared to regular interrupts on nrf52.
2020-10-04 22:03:21 -04:00
Joel Spadin 4121b07f7f fix(kscan): fix direct GPIO when using interrupts
Fixed initializing interrupts for direct GPIO when
CONFIG_ZMK_KSCAN_DIRECT_POLLING is not enabled. IS_ENABLED() is needed to map
the possibly-undefined value to 0 or 1 so COND_CODE_0() and COND_CODE_1() work.
2020-10-04 14:07:20 -05:00
Joel Spadin f6f8abe055 fix(ec11): allow more than one encoder
Fixes "device.h:101:11: error: redefinition of '__device_ec11'" in firmware that
has more than one encoder.
2020-10-03 14:05:05 -05:00
Pete Johanson 028dfae92e chore: Fix remaining formatting issues. 2020-10-01 11:43:00 -04:00
Pete Johanson e993378b2a chore: Fix some accidental formatting issues. 2020-10-01 11:24:57 -04:00
Jason Chestnut c2a861c0e6 Modify preprocessor directives to use basic #if !defined() rather than Zephyr macros where appropriate. 2020-09-28 08:24:51 -04:00
jason 9392c4f9ff Fix preprocessor flag issues for pull request. 2020-09-27 21:27:30 -04:00
Jason Chestnut cfc75a118e Fix merge error. 2020-09-25 11:51:14 -04:00
Jason Chestnut cca8337f05 Add support to GPIO matrix driver for matrix polling, rather than interrupt-based IO.
- Add ZMK_KSCAN_MATRIX_POLLING config flag to Kconfig
  - Update matrix driver code to use the above flag to conditionally add the handling code for polling operations.
2020-09-25 11:49:07 -04:00
Jason Chestnut b1dce208f8 Add matrix polling logic to matrix GPIO driver. 2020-09-25 11:29:21 -04:00
Jason Chestnut 9668305621 Restore original matrix driver to correct implementation errors. 2020-09-24 17:35:51 -04:00
Jason Chestnut 5c4705d465 Add new matrix scan flag and implementation in the gpio matrix driver. 2020-09-24 14:30:47 -04:00
Jason Chestnut 53425aa3c4 Rename kscan direct wired driver polling kscan flag in preparationfor addition of new matrix driver flag that enables polling. 2020-09-24 07:55:32 -04:00
Jason Chestnut 31af9646e6 Adding kconfig flag for enabling matrix polling (vs interrupts) on the matrix gpio driver. 2020-09-23 16:05:29 -04:00
Nick f5909f9c26 fix(clang-format) 2020-09-19 19:18:03 -05:00
Nick da0fb965f6 Merge remote-tracking branch 'upstream/main' into bluetooth/battery-reporting 2020-09-19 19:15:05 -05:00
Nick 844f2c7674 Voltage divider driver initial implementation 2020-09-19 19:14:59 -05:00
Pete Johanson 191a2d755a chore: clang-format the codebase.
* Use the LLVM style
* Override indent width (8) and column limit (100)
* Fixes #142.
2020-09-14 00:10:34 -04:00
Pete Johanson 68e72f9275 fix: Switch to single AUTHORS file.* Closes #164 2020-09-10 10:24:23 -04:00
Pete Johanson 01db53b46a fix(kscan): Avoid sending duplicate kscan events. 2020-09-01 09:55:25 -04:00
Pete Johanson 4402e4fbc7 feeature(bt): Add "unpair combo" on startup.
* Especially for splits, we need the ability to
  unpair all paired devices as  sledgehammer
  if we need to "reset things", and doing so via
  keymaps isn't suitable.
* Allows shields to define a collection of key
  positions that if all held 2 seconds after
  startup, will unpair all existing pairs for the
  device.
2020-08-18 13:17:10 -04:00
Pete Johanson 78059bbbdb Fix up some incorrect license headers. 2020-08-11 14:49:43 -04:00
Pete Johanson fd3ce4ba1c Encoder Kconfig fixes. 2020-08-06 23:22:02 -04:00
Pete Johanson ac802bedb1 Bump delay in scanning while held to 5ms. 2020-08-05 22:58:14 -04:00
Pete Johanson 25d0664b58 Tweaks for EC11 config. 2020-07-24 16:31:38 -04:00
Pete Johanson adfa1b5443 Initial work on sensor bindings. 2020-07-22 02:13:52 -04:00
Pete Johanson f3267e6030 Tweaks for orientation and A/B pins for Kyria left 2020-07-21 13:52:03 -04:00
Pete Johanson c619d36294 Support multiple instances of the encoder. 2020-07-21 13:37:02 -04:00
Pete Johanson ac9ba3ae7d Code cleanup for non-trigger mode. 2020-07-21 13:29:21 -04:00
Pete Johanson aa7c74fe07 Filename fix for EN11 -> EC11. 2020-07-21 13:24:44 -04:00
Pete Johanson 7da9a1039f Working encoder detection. 2020-07-21 13:16:15 -04:00
Pete Johanson b6b982fcef Code clean up 2020-07-20 23:51:40 -04:00
Pete Johanson c058757252 Fetch/get implementation work. 2020-07-20 22:47:50 -04:00
Pete Johanson 109c69cbab EN11 is actually EC11, some sample work. 2020-07-20 20:54:58 -04:00
Pete Johanson 331bfa7052 Interrupt fixes. 2020-07-20 10:27:44 -04:00
Pete Johanson 893b99d907 Initial en11 exploration. 2020-07-19 22:11:17 -04:00
Pete Johanson e448f2d32b kscan: matrix: Remove verbose logging in read. 2020-07-11 13:10:01 -04:00
Pete Johanson 497049ff68 Detect additional key presses on the same output.
* Interrupts won't follow on additional keys
  pressed on an already "held" output pin,
  so queue additional reads while any keys are held.
2020-07-07 16:26:11 -04:00
Pete Johanson c32c25d3c0 Properly allocate input/output arrays statically. 2020-06-25 23:21:11 -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