hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
u-boot/drivers/phy/phy-rockchip-usbdp.c
....@@ -549,14 +549,15 @@
549549 return 0;
550550 }
551551
552
-static int udphy_parse_lane_mux_data(struct rockchip_udphy *udphy, const struct device_node *np)
552
+static int udphy_parse_lane_mux_data(struct rockchip_udphy *udphy, struct udevice *dev)
553553 {
554
+ const struct device_node *np = ofnode_to_np(dev->node);
554555 struct property *prop;
555556 int ret, i, len, num_lanes;
556557
557558 prop = of_find_property(np, "rockchip,dp-lane-mux", &len);
558559 if (!prop) {
559
- dev_dbg(udphy->dev, "failed to find dp lane mux, following dp alt mode\n");
560
+ dev_dbg(dev, "failed to find dp lane mux, following dp alt mode\n");
560561 udphy->mode = UDPHY_MODE_USB;
561562 return 0;
562563 }
....@@ -564,13 +565,13 @@
564565 num_lanes = len / sizeof(u32);
565566
566567 if (num_lanes != 2 && num_lanes != 4) {
567
- dev_err(udphy->dev, "invalid number of lane mux\n");
568
+ dev_err(dev, "invalid number of lane mux\n");
568569 return -EINVAL;
569570 }
570571
571572 ret = of_read_u32_array(np, "rockchip,dp-lane-mux", udphy->dp_lane_sel, num_lanes);
572573 if (ret) {
573
- dev_err(udphy->dev, "get dp lane mux failed\n");
574
+ dev_err(dev, "get dp lane mux failed\n");
574575 return -EINVAL;
575576 }
576577
....@@ -578,7 +579,7 @@
578579 int j;
579580
580581 if (udphy->dp_lane_sel[i] > 3) {
581
- dev_err(udphy->dev, "lane mux between 0 and 3, exceeding the range\n");
582
+ dev_err(dev, "lane mux between 0 and 3, exceeding the range\n");
582583 return -EINVAL;
583584 }
584585
....@@ -586,22 +587,23 @@
586587
587588 for (j = i + 1; j < num_lanes; j++) {
588589 if (udphy->dp_lane_sel[i] == udphy->dp_lane_sel[j]) {
589
- dev_err(udphy->dev, "set repeat lane mux value\n");
590
+ dev_err(dev, "set repeat lane mux value\n");
590591 return -EINVAL;
591592 }
592593 }
593594 }
594595
595596 udphy->mode = UDPHY_MODE_DP;
596
- if (num_lanes == 2)
597
+ if (num_lanes == 2) {
597598 udphy->mode |= UDPHY_MODE_USB;
599
+ udphy->flip = udphy->lane_mux_sel[0] == PHY_LANE_MUX_DP ? true : false;
600
+ }
598601
599602 return 0;
600603 }
601604
602605 static int udphy_parse_dt(struct rockchip_udphy *udphy, struct udevice *dev)
603606 {
604
- const struct device_node *np = ofnode_to_np(dev->node);
605607 enum usb_device_speed maximum_speed;
606608 int ret;
607609
....@@ -645,7 +647,7 @@
645647 }
646648 }
647649
648
- ret = udphy_parse_lane_mux_data(udphy, np);
650
+ ret = udphy_parse_lane_mux_data(udphy, dev);
649651 if (ret)
650652 return ret;
651653
....@@ -947,7 +949,7 @@
947949
948950 dev_for_each_subnode(subnode, parent) {
949951 if (!ofnode_valid(subnode)) {
950
- printf("%s: no subnode for %s", __func__, parent->name);
952
+ printf("%s: no subnode for %s\n", __func__, parent->name);
951953 return -ENXIO;
952954 }
953955
....@@ -1014,14 +1016,14 @@
10141016 val & TRSV_LN0_MON_RX_CDR_LOCK_DONE,
10151017 200, 100);
10161018 if (ret)
1017
- dev_err(udphy->dev, "trsv ln0 mon rx cdr lock timeout\n");
1019
+ dev_notice(udphy->dev, "trsv ln0 mon rx cdr lock timeout\n");
10181020 } else {
10191021 ret = regmap_read_poll_timeout(udphy->pma_regmap,
10201022 TRSV_LN2_MON_RX_CDR_DONE_OFFSET, val,
10211023 val & TRSV_LN2_MON_RX_CDR_LOCK_DONE,
10221024 200, 100);
10231025 if (ret)
1024
- dev_err(udphy->dev, "trsv ln2 mon rx cdr lock timeout\n");
1026
+ dev_notice(udphy->dev, "trsv ln2 mon rx cdr lock timeout\n");
10251027 }
10261028 }
10271029