- patches/: the pristine-6.18.46 -> WardenOS delta as a 13-patch, subsystem-split series (223 files, ~136K lines: clk, pinctrl, DTs/mach, usb-phy, VOP/panel/rgb, mailbox, pvtm, rknpu, rga, aic8800 wifi, audio codec, thermal/rtc/adc/gmac/touch). Verified: every patch applies cleanly onto pristine (git apply --check), the full series reproduces the hardware-verified tree, and the applied source configures + builds the warden dtb + rockchip DRM drivers (rc=0). - build/build-kernel.sh: fetch+verify pristine (sha256-pinned) -> apply series -> warden_defconfig -> zImage + rv1106-warden.dtb. build/warden_defconfig captured. - CI: `patches-apply` (GitHub-hosted, cached tarball) enforces the series applies; `kernel-build` (self-hosted warden-sdk runner, dispatch-gated until registered) runs the full build and uploads the image. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017wB8KB3MMQztRDXCMCkPrf
62 lines
2.4 KiB
Diff
62 lines
2.4 KiB
Diff
diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
|
|
index 8f4c08e59..1d0d254a7 100644
|
|
--- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
|
|
+++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
|
|
@@ -2285,7 +2285,56 @@ static const struct rockchip_usb2phy_cfg rv1108_phy_cfgs[] = {
|
|
{ /* sentinel */ }
|
|
};
|
|
|
|
+/*
|
|
+ * 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.
|
|
+ */
|
|
+static const struct rockchip_usb2phy_cfg rv1106_phy_cfgs[] = {
|
|
+ {
|
|
+ .reg = 0xff3e0000,
|
|
+ .num_ports = 1,
|
|
+ .clkout_ctl = { 0x0058, 4, 4, 1, 0 },
|
|
+ .port_cfgs = {
|
|
+ [USB2PHY_PORT_OTG] = {
|
|
+ .phy_sus = { 0x0050, 8, 0, 0, 0x1d1 },
|
|
+ .bvalid_det_en = { 0x0100, 2, 2, 0, 1 },
|
|
+ .bvalid_det_st = { 0x0104, 2, 2, 0, 1 },
|
|
+ .bvalid_det_clr = { 0x0108, 2, 2, 0, 1 },
|
|
+ .idfall_det_en = { 0x0100, 5, 5, 0, 1 },
|
|
+ .idfall_det_st = { 0x0104, 5, 5, 0, 1 },
|
|
+ .idfall_det_clr = { 0x0108, 5, 5, 0, 1 },
|
|
+ .idrise_det_en = { 0x0100, 4, 4, 0, 1 },
|
|
+ .idrise_det_st = { 0x0104, 4, 4, 0, 1 },
|
|
+ .idrise_det_clr = { 0x0108, 4, 4, 0, 1 },
|
|
+ .ls_det_en = { 0x0100, 0, 0, 0, 1 },
|
|
+ .ls_det_st = { 0x0104, 0, 0, 0, 1 },
|
|
+ .ls_det_clr = { 0x0108, 0, 0, 0, 1 },
|
|
+ .utmi_avalid = { 0x0060, 10, 10, 0, 1 },
|
|
+ .utmi_bvalid = { 0x0060, 9, 9, 0, 1 },
|
|
+ .utmi_id = { 0x0060, 6, 6, 0, 1 },
|
|
+ .utmi_ls = { 0x0060, 5, 4, 0, 1 },
|
|
+ },
|
|
+ },
|
|
+ .chg_det = {
|
|
+ .opmode = { 0x0050, 8, 0, 0, 0x1d7 },
|
|
+ .cp_det = { 0x0060, 13, 13, 0, 1 },
|
|
+ .dcp_det = { 0x0060, 12, 12, 0, 1 },
|
|
+ .dp_det = { 0x0060, 14, 14, 0, 1 },
|
|
+ .idm_sink_en = { 0x0058, 8, 8, 0, 1 },
|
|
+ .idp_sink_en = { 0x0058, 7, 7, 0, 1 },
|
|
+ .idp_src_en = { 0x0058, 9, 9, 0, 1 },
|
|
+ .rdm_pdwn_en = { 0x0058, 10, 10, 0, 1 },
|
|
+ .vdm_src_en = { 0x0058, 12, 12, 0, 1 },
|
|
+ .vdp_src_en = { 0x0058, 11, 11, 0, 1 },
|
|
+ },
|
|
+ },
|
|
+ { /* sentinel */ }
|
|
+};
|
|
+
|
|
static const struct of_device_id rockchip_usb2phy_dt_match[] = {
|
|
+ { .compatible = "rockchip,rv1106-usb2phy", .data = &rv1106_phy_cfgs },
|
|
{ .compatible = "rockchip,px30-usb2phy", .data = &rk3328_phy_cfgs },
|
|
{ .compatible = "rockchip,rk3036-usb2phy", .data = &rk3036_phy_cfgs },
|
|
{ .compatible = "rockchip,rk3128-usb2phy", .data = &rk3128_phy_cfgs },
|