diff --git a/DIARY.md b/DIARY.md index 8153d3d..f106eb9 100644 --- a/DIARY.md +++ b/DIARY.md @@ -456,3 +456,45 @@ The 0009 patch needs to add: - `power-domains` to edp1, vop, and hdptxphy1 - `assigned-clocks`/`assigned-clock-parents` to vop - `rockchip,pmu` phandle to vop + +## Day 2 Very Late Night: Keyboard Investigation + +### pct13x2 Identified from Vendor Kernel + +The CoolPi vendor kernel (coolpi-george/coolpi-kernel, branch linux-6.1-stan-rkr5.1) +has the full GenBook DTS at \`rk3588-cpcm5-genbook.dts\`: + +**Keyboard (pct13x2):** +- Bus: I2C5 (0xFEAD0000), pinctrl i2c5m3_xfer +- Address: 0x2C +- Compatible: \"hid-over-i2c\" (generic driver) +- HID descriptor register: 0x0020 +- Interrupt: GPIO1_D6, active low +- Power: dedicated 5V regulator via GPIO1_A7 (vcc5v0_keyboard) + +**Touchpad (g7500):** +- Bus: I2C4 (0xFEAC0000), pinctrl i2c4m3_xfer +- Address: 0x10 +- HID descriptor: 0x0001 +- Interrupt: GPIO1_A1, active low + +**Battery gauge (CW2015):** +- Bus: I2C4, address 0x62 + +**Key insight:** The keyboard needs vcc5v0_keyboard regulator enabled +(GPIO1_A7 high) before it responds on I2C. + +### Sandbox Testing Attempt + +Built U-Boot sandbox with the HID-over-I2C driver (patch 0006) and a +custom I2C emulator. The emulator responds to HID descriptor reads +with a standard boot keyboard descriptor. + +The sandbox binary builds and runs, but integrating the emulator into +the sandbox DTS requires more plumbing work. Saved for a future session. + +The driver code itself looks correct — the I2C HID protocol implementation +follows the Microsoft HID-over-I2C v1.0 spec. The real risk is: +1. Keyboard power regulator not enabled (GPIO1_A7) +2. Interrupt GPIO not configured correctly +3. pct13x2 might have non-standard HID quirks