Skip to content

Commit 80edd21

Browse files
Frank Wangvinodkoul
authored andcommitted
phy: rockchip: inno-usb2: Add usb2 phy support for rk3562
RK3652 has one USB2.0 PHY with two ports, the OTG port support OTG and BC1.2, the SoC provide USB GRF and APB to access the registers. This adds vbus detection function control and make the below tuning to enhance the usb2-phy SQ for RK3562 SoC. - enable pre-emphasis during non-chirp phase - set HS eye height to 425mv Signed-off-by: Frank Wang <[email protected]> Signed-off-by: William Wu <[email protected]> Signed-off-by: Kever Yang <[email protected]> Reviewed-by: Heiko Stuebner <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Vinod Koul <[email protected]>
1 parent abf55cd commit 80edd21

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

drivers/phy/rockchip/phy-rockchip-inno-usb2.c

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1923,6 +1923,54 @@ static const struct rockchip_usb2phy_cfg rk3399_phy_cfgs[] = {
19231923
{ /* sentinel */ }
19241924
};
19251925

1926+
static const struct rockchip_usb2phy_cfg rk3562_phy_cfgs[] = {
1927+
{
1928+
.reg = 0xff740000,
1929+
.num_ports = 2,
1930+
.clkout_ctl = { 0x0108, 4, 4, 1, 0 },
1931+
.port_cfgs = {
1932+
[USB2PHY_PORT_OTG] = {
1933+
.phy_sus = { 0x0100, 8, 0, 0, 0x1d1 },
1934+
.bvalid_det_en = { 0x0110, 2, 2, 0, 1 },
1935+
.bvalid_det_st = { 0x0114, 2, 2, 0, 1 },
1936+
.bvalid_det_clr = { 0x0118, 2, 2, 0, 1 },
1937+
.idfall_det_en = { 0x0110, 5, 5, 0, 1 },
1938+
.idfall_det_st = { 0x0114, 5, 5, 0, 1 },
1939+
.idfall_det_clr = { 0x0118, 5, 5, 0, 1 },
1940+
.idrise_det_en = { 0x0110, 4, 4, 0, 1 },
1941+
.idrise_det_st = { 0x0114, 4, 4, 0, 1 },
1942+
.idrise_det_clr = { 0x0118, 4, 4, 0, 1 },
1943+
.ls_det_en = { 0x0110, 0, 0, 0, 1 },
1944+
.ls_det_st = { 0x0114, 0, 0, 0, 1 },
1945+
.ls_det_clr = { 0x0118, 0, 0, 0, 1 },
1946+
.utmi_avalid = { 0x0120, 10, 10, 0, 1 },
1947+
.utmi_bvalid = { 0x0120, 9, 9, 0, 1 },
1948+
.utmi_ls = { 0x0120, 5, 4, 0, 1 },
1949+
},
1950+
[USB2PHY_PORT_HOST] = {
1951+
.phy_sus = { 0x0104, 8, 0, 0x1d2, 0x1d1 },
1952+
.ls_det_en = { 0x0110, 1, 1, 0, 1 },
1953+
.ls_det_st = { 0x0114, 1, 1, 0, 1 },
1954+
.ls_det_clr = { 0x0118, 1, 1, 0, 1 },
1955+
.utmi_ls = { 0x0120, 17, 16, 0, 1 },
1956+
.utmi_hstdet = { 0x0120, 19, 19, 0, 1 }
1957+
}
1958+
},
1959+
.chg_det = {
1960+
.cp_det = { 0x0120, 24, 24, 0, 1 },
1961+
.dcp_det = { 0x0120, 23, 23, 0, 1 },
1962+
.dp_det = { 0x0120, 25, 25, 0, 1 },
1963+
.idm_sink_en = { 0x0108, 8, 8, 0, 1 },
1964+
.idp_sink_en = { 0x0108, 7, 7, 0, 1 },
1965+
.idp_src_en = { 0x0108, 9, 9, 0, 1 },
1966+
.rdm_pdwn_en = { 0x0108, 10, 10, 0, 1 },
1967+
.vdm_src_en = { 0x0108, 12, 12, 0, 1 },
1968+
.vdp_src_en = { 0x0108, 11, 11, 0, 1 },
1969+
},
1970+
},
1971+
{ /* sentinel */ }
1972+
};
1973+
19261974
static const struct rockchip_usb2phy_cfg rk3568_phy_cfgs[] = {
19271975
{
19281976
.reg = 0xfe8a0000,
@@ -2242,6 +2290,7 @@ static const struct of_device_id rockchip_usb2phy_dt_match[] = {
22422290
{ .compatible = "rockchip,rk3328-usb2phy", .data = &rk3328_phy_cfgs },
22432291
{ .compatible = "rockchip,rk3366-usb2phy", .data = &rk3366_phy_cfgs },
22442292
{ .compatible = "rockchip,rk3399-usb2phy", .data = &rk3399_phy_cfgs },
2293+
{ .compatible = "rockchip,rk3562-usb2phy", .data = &rk3562_phy_cfgs },
22452294
{ .compatible = "rockchip,rk3568-usb2phy", .data = &rk3568_phy_cfgs },
22462295
{ .compatible = "rockchip,rk3576-usb2phy", .data = &rk3576_phy_cfgs },
22472296
{ .compatible = "rockchip,rk3588-usb2phy", .data = &rk3588_phy_cfgs },

0 commit comments

Comments
 (0)