refactor(split): Refactor split code for extension
Extract central/peripheral code to allow for plugging in alternate
transports, instead of tying all split logic to BT.
feat(split): Add full-duplex wired split support
* Depends on full-duplex hardware UART for communication.
* Supports all existing central commands/peripheral events, including
sensors/inputs from peripherals.
* Only one wired split peripheral supported (for now)
* Relies on chosen `zmk,split-uart` referencing the UART device.
docs: Add wired split config docs.
Migrate split to its own dedicated config file, and add details
on wired split config.
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
fix: Properly override stack size on RP2040
Move the system work queue stack size override on RP2040 ouf of
a `ZMK_BLE` conditional so it is properly applied generally for that
SoC.
---------
Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
* To avoid spurious CDC ACM instances when usint CDC ACM for something
other than logging, move to the approach used by Zephyr of using a
snippet to redirect console output to a CDC ACM node added by the
snippet. Remove all the existing static CDC ACM nodes.
* Add new `zmk-usb-logging` snippet that mirrors the upstream
`cdc-acm-logging` snippet, but still does our extra USB logging
configuration.
* Updated logging docs accordingly.
Co-authored-by: Cem Aksoylar <caksoylar@users.noreply.github.com>
Removed "label" properties which no longer have any function.
Labels are still used as layer names and as identifiers for sending
behaviors between sides of a split keyboard, so those have been left
alone for now.
Changed the label property on zmk,ext-power-generic to be optional and
removed it from existing uses. Renamed the nodes for all non-development
boards to "EXT_POWER" to preserve user settings.
rgb_underglow.c now finds the correct device by finding the first
instance of zmk,ext-power-generic instead of looking for a node named
"EXT_POWER".