Implement RV1106 USB2 PHY signal tuning
Cherry-picked onto the pinned SDK so the ONLY delta versus the pin is this patch -- the xHCI controller-death investigation needs a controlled build. The forward-port omitted the vendor driver's rv1106_usb2phy_tuning with the note "the phy is functional without it". It is functional, but not reliable: with these registers at reset defaults the HS link is electrically marginal under sustained traffic, a bulk transfer eventually stalls, and the r8152 Tx-timeout recovery issues an xHCI Stop Endpoint command the controller never answers. Measured carrier-on to death over four runs: 14s, 519s, 521s, 584s. Refs flare-edge#160 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MVGTC78dgCGfRANNKjoPea
This commit is contained in:
committed by
Noah
co-authored by
Claude Opus 5
parent
ac8658d1d5
commit
e12bb2c554
@@ -1,12 +1,14 @@
|
||||
* RV1106 USB2 PHY: single OTG port at 0xff3e0000 (ported from the vendor driver;
|
||||
* fields map 1:1 to 6.18 except utmi_iddig -> utmi_id, and the 5.10-only
|
||||
* iddig_output/iddig_en/bvalid_grf_sel are dropped). Signal-quality phy_tuning is
|
||||
* left off for now (guarded, so NULL is safe): the phy is functional without it.
|
||||
* iddig_output/iddig_en/bvalid_grf_sel are dropped). Signal-quality phy_tuning
|
||||
* was originally left off here; it is now implemented (patches/27-usb-phy-tuning.patch)
|
||||
* because "functional without it" turned out not to mean reliable -- see #160.
|
||||
*/
|
||||
static const struct rockchip_usb2phy_cfg rv1106_phy_cfgs[] = {
|
||||
{
|
||||
.reg = 0xff3e0000,
|
||||
.num_ports = 1,
|
||||
.phy_tuning = rv1106_usb2phy_tuning,
|
||||
.clkout_ctl = { 0x0058, 4, 4, 1, 0 },
|
||||
.port_cfgs = {
|
||||
[USB2PHY_PORT_OTG] = {
|
||||
|
||||
Reference in New Issue
Block a user