Diary: keyboard pct13x2 found in vendor DTS
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user