* Instead of gpio key behavior trigger, add new kscan driver that
decorates/wraps a given kscan driver and will invoke basic system
behavior assigned to a given row + column, without the need for keymap
mapping in the matrix transform, bypassing keymaps entirely.
* Better naming for gpio-key behavior triggers.
* Tweaks to scanned behavior trigger to avoid bad semaphore use,
and reduce chance of issues with slowly scanned matrixes.
* Various code cleanups of style issues.
* Move to explicit enable of `ZMK_PM_SOFT_OFF` to turn
on the feature and use the behaviors, which matches
how other features work, and helps with split and
testing schemes.
Initial work on a soft on/off support for ZMK. Triggering soft off
puts the device into deep sleep with only a specific GPIO pin
configured to wake the device, avoiding waking from other key
presses in the matrix like the normal deep sleep.
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
* To be able to use the Zephyr `voltage-divider` driver,
add a mode for fetching raw voltage from the sensor
and do state of charge calculation outside of the driver.
* Add a dedicated settings reset on start init priority and default
it to lower priority (high number) than default FLASH_INIT_PRIORITY
to be sure flash is initialized before we open the area.
Updated the section for troubleshooting split halves unable to pair now
that the settings_reset shield resets all settings and explicitly
disables CONFIG_ZMK_BLE:
- Added a note that all settings will be reset.
- Removed the section about immediately putting the halves into
bootloader mode to prevent pairing, as this is not necessary anymore.
- Added a note that you will not be able to see or pair the Bluetooth
keyboard until you have flashed regular firmware again.
- Added a sentence to clarify that you will need to re-pair the
keyboard to all host devices.
Also added some text describing common scenarios where this procedure
might be needed.
Added a new CONFIG_ZMK_SETTINGS_RESET_ON_START option which enables init
code to call zmk_settings_erase(), and changed the settings_reset shield
to use it instead of CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START, so it now
resets all settings instead of just clearing BLE bonds.
CONFIG_ZMK_BLE_CLEAR_BONDS_ON_START is left in place for now in case
someone still needs it. It may be replaced in the future once we find a
better way to repair a broken split connection.
Added a zmk_settings_erase() function to clear all saved settings. This
does not go through Zephyr's settings subsystem, but instead directly
clears the data from the setting storage backend, so a reboot is needed
for it to take effect.
* Handle board keymap location for boards with Zephyr
board revisions included.
* Includes bare non-revision file and a revision specific keymap
in case newer revision changes the layout/key positions.
Added a warning to the shield section explaining that Kconfig does
not ignore whitespaces on function calls and therefore adding whitespaces
after the comma will break functionality.