# Keyboard-base bus on the installed device tree (task 2.2; board-read) The device tree carries the pinctrl states for IO42, IO43, IO46, IO47 and IO52, and hardware I2C4 at `0x91409000` (task 2.1). It went onto the board as part of the landscape boot bundles (`deploy-bundle.sh`, which copies the bundle's DTB to `/boot/k230-tdisplay.dtb`), not with `tools/push-file.py`. The board has been running it since 2026-10-13. Host proof for 2.1: `nix build .#deviceTreeMainlineDrm` built `/nix/store/y4j8bwc0…-k230-tdisplay-mainline-drm.dtb` on 2026-10-14. Board read, 2026-10-14T09:48:35-05:00, kernel `7.3.0-rc5`, over SSH: ``` $ sha256sum /boot/k230-tdisplay.dtb f108555a2d2040216e6c2a9f631f319c1edab7826c9600156db688023deb557f /boot/k230-tdisplay.dtb $ systemctl list-units "serial-getty@*" --no-legend serial-getty@ttyS0.service loaded active running Serial Getty on ttyS0 $ cat /sys/class/drm/card0-DSI-1/status connected $ grep -E "goodix|tca8418" /proc/interrupts 86: 2471 gpio-k230 23 Level goodix-berlin 88: 20 gpio-k230 10 Level tca8418 $ i2cdetect -y -r 1 # i2c-1 is the base's I2C4 adapter 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- UU -- -- -- 38 -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- UU -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- 70: -- -- -- -- -- -- -- -- ``` Every address from probe 1.2 answers. `UU` marks an address whose driver is bound: 0x20 XL9555, 0x34 TCA8418, 0x55 BQ27220 gauge, 0x6b BQ25896 charger. 0x38 (LILYGO's AHT20) answers with no driver. The serial getty is running. On the glass, the operator has used the panel and touch on this device tree throughout 2026-10-13/14 (landscape 8.6). This read did not log in on `/dev/ttyACM0` itself; it shows the getty is active.