58: samcday's pmic-typec-smb2 covers most of phase 2, unrun on hardware
This commit is contained in:
parent
1eae558a97
commit
f5dd985c96
1 changed files with 40 additions and 2 deletions
|
|
@ -1,6 +1,8 @@
|
|||
# TASK 58 — host power: the SMB2 OTG boost
|
||||
|
||||
**Status: open — investigation first, patch second.** Created 2026-08-04,
|
||||
**Status: open — investigation first, patch second. 2026-08-06: an existing
|
||||
out-of-tree driver may already cover most of Phase 2 — see the section before
|
||||
Phase 1 and read it before writing register code.** Created 2026-08-04,
|
||||
from Casey: *"host mode still — what about the phone sharing its power to
|
||||
another device?"* One kernel change unlocks host-mode *power*, power sharing
|
||||
(power-bank mode), and docks without a Pi in between. **Repos:** `Pixel3Arch`
|
||||
|
|
@ -24,6 +26,40 @@ his design contract is *"the kernel owns power"*: his platforms' kernels
|
|||
auto-switch role on cable plug and source VBUS. The role half of that
|
||||
contract works on blueline; the power half is exactly what this task is.
|
||||
|
||||
## Most of Phase 2 may already be written — read this before writing any of it
|
||||
|
||||
`https://github.com/samcday/qcom-pmic-typec-smb2` (from Casey, 2026-08-06). An
|
||||
out-of-tree TCPM driver for **PM660 and PMI8998** — the SMB2-generation Type-C
|
||||
block, which is this phone's. Per its README it does CC detection, role
|
||||
control, VCONN and **VBUS** management, power/data role negotiation, and a PD
|
||||
PHY, and **"for PMI8998 it manages the internal SMB2 OTG regulator for source
|
||||
VBUS"**. It negotiates current limits through **`qcom_smbx`** — the same driver
|
||||
this task measured `pmi8998-charger` bound to.
|
||||
|
||||
Line it up against the wall above and it is not adjacent, it is the same thing:
|
||||
|
||||
| This task's gap | What that driver claims |
|
||||
|---|---|
|
||||
| Phase 2.1 — "the silicon is in the SMB2 charger; mainline's driver just never registers it" | manages the PMI8998 internal SMB2 OTG regulator for source VBUS |
|
||||
| Phase 2.3 — TYPEC/TCPM, Rp on CC so a C-to-C sink sees a source | it *is* a TCPM driver: CC detection, role control, VCONN, PD PHY |
|
||||
| Phase 1.2 — read `qcom-smbx-charger`, does it touch boost/OTG at all | integrates with `qcom_smbx` for current-limit negotiation |
|
||||
|
||||
Its target list includes Google **crosshatch** — Pixel 3 XL, blueline's sibling
|
||||
on the same PMI8998 — plus sargo/bonito (PM660) and enchilada/fajita. blueline
|
||||
itself is not named, which is the porting question, not a blocker.
|
||||
|
||||
**The caveat is the whole reason this is a lead and not a fix:** the README says
|
||||
the build matrix and DT artifacts passed *static validation* and **"no phone has
|
||||
run this driver yet."** So it is unproven silicon-side by its own author. PD is
|
||||
disabled in every default profile, which matches this task's ceiling finding
|
||||
(PD at 12/20 V lives in SLPI firmware mainline does not run) — nothing here
|
||||
needs PD.
|
||||
|
||||
This does not shrink Phase 1; it re-points it. The register archaeology in
|
||||
Phase 1.2/1.4 becomes "read how this driver already does it", and Phase 2
|
||||
becomes a port-and-test rather than a write. Casey already tracks this upstream
|
||||
for pocketboot, so the fork path is established.
|
||||
|
||||
## Phase 1 — investigate (do this before any patch)
|
||||
|
||||
1. **Find the running kernel's source** — `uname -r` on the phone, match the
|
||||
|
|
@ -78,4 +114,6 @@ cable), `USB/README.md` (the exploration record: evidence table, correction,
|
|||
live role-switch recipe), `NET_KERNEL_GAPS.md` (the kernel rebuild/reflash
|
||||
path — tier 3's blocker is the same gating), TASK-25 (kernel package
|
||||
signing), usb-signaller (the userspace that will switch roles against the
|
||||
kernel's power contract).
|
||||
kernel's power contract), and `samcday/qcom-pmic-typec-smb2` — the same
|
||||
upstream pocketboot already forks, which is why the porting path is a known
|
||||
one rather than a new relationship.
|
||||
|
|
|
|||
Loading…
Reference in a new issue