phy: rockchip: usbdp: Add support for RK3576
authorFrank Wang <frank.wang@rock-chips.com>
Fri, 1 Aug 2025 20:32:44 +0000 (20:32 +0000)
committerKever Yang <kever.yang@rock-chips.com>
Sat, 30 Aug 2025 15:01:29 +0000 (23:01 +0800)
Add support for the USB3.0+DP PHY used in the RK3576 SoC.

Config values are taken from vendor U-Boot linux-6.1-stan-rkr5 tag.

Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
drivers/phy/rockchip/phy-rockchip-usbdp.c

index 9deec47..ed04418 100644 (file)
@@ -813,6 +813,28 @@ static const char * const rk3588_udphy_rst_l[] = {
        "init", "cmn", "lane", "pcs_apb", "pma_apb"
 };
 
+static const struct rockchip_udphy_cfg rk3576_udphy_cfgs = {
+       .num_phys = 1,
+       .phy_ids = {
+               0x2b010000,
+       },
+       .num_rsts = ARRAY_SIZE(rk3588_udphy_rst_l),
+       .rst_list = rk3588_udphy_rst_l,
+       .grfcfg = {
+               /* u2phy-grf */
+               .bvalid_phy_con         = { 0x0010, 1, 0, 0x2, 0x3 },
+               .bvalid_grf_con         = { 0x0000, 15, 14, 0x1, 0x3 },
+
+               /* usb-grf */
+               .usb3otg0_cfg           = { 0x0030, 15, 0, 0x1100, 0x0188 },
+
+               /* usbdpphy-grf */
+               .low_pwrn               = { 0x0004, 13, 13, 0, 1 },
+               .rx_lfps                = { 0x0004, 14, 14, 0, 1 },
+       },
+       .combophy_init = rk3588_udphy_init,
+};
+
 static const struct rockchip_udphy_cfg rk3588_udphy_cfgs = {
        .num_phys = 2,
        .phy_ids = {
@@ -838,6 +860,10 @@ static const struct rockchip_udphy_cfg rk3588_udphy_cfgs = {
 };
 
 static const struct udevice_id rockchip_udphy_dt_match[] = {
+       {
+               .compatible = "rockchip,rk3576-usbdp-phy",
+               .data = (ulong)&rk3576_udphy_cfgs
+       },
        {
                .compatible = "rockchip,rk3588-usbdp-phy",
                .data = (ulong)&rk3588_udphy_cfgs