From 9df731a176aab8e03b984b681b1bea01ccff6644 Mon Sep 17 00:00:00 2001 From: hc <hc@nodka.com> Date: Mon, 06 Nov 2023 07:23:06 +0000 Subject: [PATCH] rk3568 rt uboot init --- u-boot/drivers/phy/phy-rockchip-usbdp.c | 26 ++++++++++++++------------ 1 files changed, 14 insertions(+), 12 deletions(-) diff --git a/u-boot/drivers/phy/phy-rockchip-usbdp.c b/u-boot/drivers/phy/phy-rockchip-usbdp.c index 7b624f8..cefceff 100644 --- a/u-boot/drivers/phy/phy-rockchip-usbdp.c +++ b/u-boot/drivers/phy/phy-rockchip-usbdp.c @@ -549,14 +549,15 @@ return 0; } -static int udphy_parse_lane_mux_data(struct rockchip_udphy *udphy, const struct device_node *np) +static int udphy_parse_lane_mux_data(struct rockchip_udphy *udphy, struct udevice *dev) { + const struct device_node *np = ofnode_to_np(dev->node); struct property *prop; int ret, i, len, num_lanes; prop = of_find_property(np, "rockchip,dp-lane-mux", &len); if (!prop) { - dev_dbg(udphy->dev, "failed to find dp lane mux, following dp alt mode\n"); + dev_dbg(dev, "failed to find dp lane mux, following dp alt mode\n"); udphy->mode = UDPHY_MODE_USB; return 0; } @@ -564,13 +565,13 @@ num_lanes = len / sizeof(u32); if (num_lanes != 2 && num_lanes != 4) { - dev_err(udphy->dev, "invalid number of lane mux\n"); + dev_err(dev, "invalid number of lane mux\n"); return -EINVAL; } ret = of_read_u32_array(np, "rockchip,dp-lane-mux", udphy->dp_lane_sel, num_lanes); if (ret) { - dev_err(udphy->dev, "get dp lane mux failed\n"); + dev_err(dev, "get dp lane mux failed\n"); return -EINVAL; } @@ -578,7 +579,7 @@ int j; if (udphy->dp_lane_sel[i] > 3) { - dev_err(udphy->dev, "lane mux between 0 and 3, exceeding the range\n"); + dev_err(dev, "lane mux between 0 and 3, exceeding the range\n"); return -EINVAL; } @@ -586,22 +587,23 @@ for (j = i + 1; j < num_lanes; j++) { if (udphy->dp_lane_sel[i] == udphy->dp_lane_sel[j]) { - dev_err(udphy->dev, "set repeat lane mux value\n"); + dev_err(dev, "set repeat lane mux value\n"); return -EINVAL; } } } udphy->mode = UDPHY_MODE_DP; - if (num_lanes == 2) + if (num_lanes == 2) { udphy->mode |= UDPHY_MODE_USB; + udphy->flip = udphy->lane_mux_sel[0] == PHY_LANE_MUX_DP ? true : false; + } return 0; } static int udphy_parse_dt(struct rockchip_udphy *udphy, struct udevice *dev) { - const struct device_node *np = ofnode_to_np(dev->node); enum usb_device_speed maximum_speed; int ret; @@ -645,7 +647,7 @@ } } - ret = udphy_parse_lane_mux_data(udphy, np); + ret = udphy_parse_lane_mux_data(udphy, dev); if (ret) return ret; @@ -947,7 +949,7 @@ dev_for_each_subnode(subnode, parent) { if (!ofnode_valid(subnode)) { - printf("%s: no subnode for %s", __func__, parent->name); + printf("%s: no subnode for %s\n", __func__, parent->name); return -ENXIO; } @@ -1014,14 +1016,14 @@ val & TRSV_LN0_MON_RX_CDR_LOCK_DONE, 200, 100); if (ret) - dev_err(udphy->dev, "trsv ln0 mon rx cdr lock timeout\n"); + dev_notice(udphy->dev, "trsv ln0 mon rx cdr lock timeout\n"); } else { ret = regmap_read_poll_timeout(udphy->pma_regmap, TRSV_LN2_MON_RX_CDR_DONE_OFFSET, val, val & TRSV_LN2_MON_RX_CDR_LOCK_DONE, 200, 100); if (ret) - dev_err(udphy->dev, "trsv ln2 mon rx cdr lock timeout\n"); + dev_notice(udphy->dev, "trsv ln2 mon rx cdr lock timeout\n"); } } -- Gitblit v1.6.2