Skip to content

Core/move to zephyr 4 4 0#3387

Draft
petejohanson wants to merge 41 commits into
zmkfirmware:mainfrom
petejohanson:core/move-to-zephyr-4-4-0
Draft

Core/move to zephyr 4 4 0#3387
petejohanson wants to merge 41 commits into
zmkfirmware:mainfrom
petejohanson:core/move-to-zephyr-4-4-0

Conversation

@petejohanson

Copy link
Copy Markdown
Contributor

DO NOT USE THIS. I TRIED TO TELL YOU.

Draft PR to assess CI status of early super experimental Zephyr 4.4 work.

PR check-list

  • Branch has a clean commit history
  • Additional tests are included, if changing behaviors/core code that is testable.
  • Proper Copyright + License headers added to applicable files (Generally, we stick to "The ZMK Contributors" for copyrights to help avoid churn when files get edited)
  • Pre-commit used to check formatting of files, commit messages, etc.
  • Includes any necessary documentation changes.

@petejohanson petejohanson force-pushed the core/move-to-zephyr-4-4-0 branch 2 times, most recently from cdd2350 to a9ee95a Compare June 12, 2026 03:27
Move to the newer matrix input Zephyr approach for all our drivers, instead of
the deprecated kscan API. Includes updating our tests to use a mock matrix input
as well, so adjust those tests accordingly.
@petejohanson petejohanson force-pushed the core/move-to-zephyr-4-4-0 branch 3 times, most recently from 191d11f to f57281a Compare June 13, 2026 04:07
Properly use `snprintk` from the Zephyr kernel for string formatting in
ZMK.
Instead of a custom input/matrix driver, add a new demux GPIO controller
driver, that can be used with the standard input GPIO matrix with
polling forced on.
Refacter the KSCAN based sideband behavior driver to operate on
matrix-shaped input API instead.
Newer Zephyr requires an additional property, `full_name`, for the
display name for a given board, so add that property for all our in-tree
boards.
Adjust our usage of the advertising API to include the name ourselves in
theu SD data.
The GATT API expects a callback function when using GATT notify, so pass
one properly when notifying HID report data.
Newer Zephyr has defined more HID values, so avoid conflicting with them
by reducing our HID headers appropriately.
Migrate the BDN9 board to the correct matrix input driver.
Refactor the ZMK Uno shield to use the new matrix input drivers.
Refactor the Clueboard California shield to the new matrix input driver.
Refactor the Corne shield to the new matrix input driver.
Refactor the Lily58 shield to the new matrix input driver.
Refactor the Kyria shield to the new matrix input driver.
Refactor the A-Dux shield to the new matrix input driver.
Refactor the BFO9000 shield to the new matrix input driver.
Update the in-tree shields to use matrix input drivers.
Migrate the Planck/Preonic board definitions to the matrix input driver.
Move to matrix inputs along with the input composite driver.
Adjust Tofu65 to use new matrix input drivers and tweak the include
paths based on upstream Zephyr changes.
Adjust the Advantage 360 Pro to the new matrix input approach.
Adjust the Corneish Zen to the new matrix input approach.
Adjust the Glove80 to the new matrix input approach.
Adjust the S40NC to the new matrix input approach.
Adjust the nice!60 to the new matrix input approach.
Adjust the PW boards to use the new matrix input driver.
Adjust the native boards to use the matrix input driver.
Set the `SNIPPET_ROOT` CMake variable to the application source
directory to ensure the ZMK snippets are discovered.
Remove defaulting of BT_CTLR for our internal boards, since that's no
longer needed/allowed.
Adjust the BLE tests to handle Zephyr related changes.
Move the settings reset shield to use the new matrix input driver.
Adjust the Kconfig for the blackpill boards to use the input matrix
Kconfig naming.
@petejohanson petejohanson force-pushed the core/move-to-zephyr-4-4-0 branch from f57281a to f0c8c71 Compare June 13, 2026 04:18
Clean up the defaults for the XIAO BLE board definition from the
upstream Zephyr board definition.
Fixed up path to the RP2040 bootloader DTS include.
Reduce the CDC ACM buffer size on BDN9 to avoid RAM overflow issues.
Adjust the Kconfig defaults for the MoErgo Glove80 to handle USB
changes.
Bump the main stack size for BLE split centrals.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant