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
Darryldh
a124eb9f9e
feat(display): IL0323 driver for EPD displays.
...
* Basic driver, using the GD7965 driver as a basis, since the ICs
are very similar.
2021-08-24 22:15:42 -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
Pete Johanson
2a69f31eb0
refactor(core): Move away from deprecated DT API.
...
* Move to `DEVICE_DT_INST_DEFINE` everywhere.
See: https://docs.zephyrproject.org/2.5.0/releases/release-notes-2.5.html#deprecated-in-this-release
PR: https://github.com/zmkfirmware/zmk/pull/736
2021-07-17 17:04:25 -04:00
Jay Greco
f3bb90f9e1
fix(kscan): Fix nibble demux scan errors on encoder row
...
+ Add a 1us sleep to let the column selection settle in order to avoid spurious keypresses when row capacitance is high (like on the encoder row)
2021-06-08 20:59:35 -04:00
Pete Johanson
27c89e69c1
fix(kscan): Proper direct wire warning message.
2021-03-15 00:39:29 -04:00
Okke Formsma
c01243d1c6
fix(logging): remove unnecessary newline
2021-03-10 18:08:22 -05:00
Pete Johanson
0f9fff7554
Fix the label for the GPIO kscan driver.
2021-02-27 14:32:42 -05:00
jrhrsmit
e40ca1eb7c
fix(power): Add support for capacitors on ADC for BVD
...
Add a little delay so any capacitors connected to the ADC for the BVD can charge up when using power_gpios
Co-authored-by: Jasper Smit <jrhrsmit@gmail.com>
2021-02-04 07:56:27 -05:00
Pete Johanson
6c7ab0ce53
refactor(kscan): Fix polling of GPIO matrices.
...
* Add easier macros for conditional polling/interrupt code.
* Properly continue polling on intervals, without extra
enable/disable code for pins that is superfluous when not trying to
deal with interupts firing.
* Fix to allow multiple GPIO drivers when doing splits w/ IO expanders
2021-02-02 14:04:10 -05:00
Pete Johanson
2f352788c1
refactor(kscan): Remove explicit default n from kscan configs.
...
* Actually allow defaulting yes in other places.
2021-02-02 14:04:10 -05:00
innovaker
61893e453b
refactor(app): format with prettier ( #563 )
...
prettier --write .
PR: #563
2021-01-01 22:55:52 -05:00
innovaker
842aa5a842
refactor: replace filename hyphens with underscores
...
Aligns *.h and *.c to underscore naming convention.
These were kept (with warnings) for backwards compatibility with external boards/shields:
- kscan-mock.h
- matrix-transform.h
They should be removed in the future.
PR: #523
2020-12-28 01:15:35 -05:00
innovaker
f7d9d52221
refactor(app): replace void
with const struct device *dev
in ISR CBs
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
00ca0d2f1c
refactor(app): replace struct device *
with const struct device *
...
Replaced with RegExp: /(?<!const )(struct device \*)/g
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
1411092a7b
refactor(app): replace driver_data
with data
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
3d7376d2e5
refactor(app): replace config_info
with config
...
See: https://docs.zephyrproject.org/latest/releases/release-notes-2.4.html
PR: #467
2020-12-14 12:41:25 -05:00
innovaker
bac1f17cf6
refactor(app): replace Zephyr integer types with C99 integer types
...
u8_t → uint8_t
u16_t → uint16_t
u32_t → uint32_t
u64_t → uint64_t
s8_t → int8_t
s16_t → int16_t
s32_t → int32_t
s64_t → int64_t
Prerequisite for #223
See: https://github.com/zephyrproject-rtos/zephyr/releases/tag/zephyr-v2.4.0
PR: #467
2020-12-14 12:41:25 -05:00
Pete Johanson
e6a27b15c1
fix(kscan): Fix building kscan for tests.
2020-12-08 22:20:12 -05:00
Pete Johanson
ca38894e07
fix(drivers): Remove conditional from directories.
2020-12-04 16:25:32 -05:00
innovaker
8d9ae1fdf3
refactor: Align drivers with Zephyr file system conventions
...
PR: #400
2020-12-03 21:06:01 -05:00
Pete Johanson
e0fede4aa5
refactor(kscan): Use PORT events for direct driver
...
* Switch interrupt configuration so nRF52 uses
PORT events for lower power use, and wake
from deep sleep.
* Closes #272
2020-12-02 16:46:05 -05:00
4pplet
924a598920
Updated function calls with missing reference. GPIO missing.
...
Updated function calls with missing reference. GPIO missing.
To my understanding:
DT_INST_GPIO_PIN() should be called instead if DT_INST_PIN()
DT_INST_GPIO_FLAGS() should be called instead if DT_INST_GPIO_FLAGS()
Current implementation does not compile when using control pin.
2020-11-29 21:12:26 -05:00
innovaker
67a6646cd7
chore: add copyright to core Kconfig
2020-11-20 22:25:28 -05:00
innovaker
1c8321566a
fix(drivers): rename module.yaml to module.yml
...
module.yaml is not a valid module filename.
See Zephyr `scripts/zephyr_module.py`
2020-11-20 22:23:20 -05:00
Nick
8779563896
fix(bvd): Add SENSOR_CHAN_ALL support
2020-11-01 23:00:54 -05:00
Jay Greco
8a98212a02
Update demux kscan driver as per PR feedback
...
- Remove kscan_gpio_irq_callback
- Remove kscan_gpio_irq_callback_handler
- Remove irq_callbacks
+ Add TODO noting timer and sleep state interactions
2020-10-27 12:44:59 -07: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
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