| .. | .. |
|---|
| 549 | 549 | return 0; |
|---|
| 550 | 550 | } |
|---|
| 551 | 551 | |
|---|
| 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) |
|---|
| 553 | 553 | { |
|---|
| 554 | + const struct device_node *np = ofnode_to_np(dev->node); |
|---|
| 554 | 555 | struct property *prop; |
|---|
| 555 | 556 | int ret, i, len, num_lanes; |
|---|
| 556 | 557 | |
|---|
| 557 | 558 | prop = of_find_property(np, "rockchip,dp-lane-mux", &len); |
|---|
| 558 | 559 | 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"); |
|---|
| 560 | 561 | udphy->mode = UDPHY_MODE_USB; |
|---|
| 561 | 562 | return 0; |
|---|
| 562 | 563 | } |
|---|
| .. | .. |
|---|
| 564 | 565 | num_lanes = len / sizeof(u32); |
|---|
| 565 | 566 | |
|---|
| 566 | 567 | 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"); |
|---|
| 568 | 569 | return -EINVAL; |
|---|
| 569 | 570 | } |
|---|
| 570 | 571 | |
|---|
| 571 | 572 | ret = of_read_u32_array(np, "rockchip,dp-lane-mux", udphy->dp_lane_sel, num_lanes); |
|---|
| 572 | 573 | if (ret) { |
|---|
| 573 | | - dev_err(udphy->dev, "get dp lane mux failed\n"); |
|---|
| 574 | + dev_err(dev, "get dp lane mux failed\n"); |
|---|
| 574 | 575 | return -EINVAL; |
|---|
| 575 | 576 | } |
|---|
| 576 | 577 | |
|---|
| .. | .. |
|---|
| 578 | 579 | int j; |
|---|
| 579 | 580 | |
|---|
| 580 | 581 | 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"); |
|---|
| 582 | 583 | return -EINVAL; |
|---|
| 583 | 584 | } |
|---|
| 584 | 585 | |
|---|
| .. | .. |
|---|
| 586 | 587 | |
|---|
| 587 | 588 | for (j = i + 1; j < num_lanes; j++) { |
|---|
| 588 | 589 | 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"); |
|---|
| 590 | 591 | return -EINVAL; |
|---|
| 591 | 592 | } |
|---|
| 592 | 593 | } |
|---|
| 593 | 594 | } |
|---|
| 594 | 595 | |
|---|
| 595 | 596 | udphy->mode = UDPHY_MODE_DP; |
|---|
| 596 | | - if (num_lanes == 2) |
|---|
| 597 | + if (num_lanes == 2) { |
|---|
| 597 | 598 | udphy->mode |= UDPHY_MODE_USB; |
|---|
| 599 | + udphy->flip = udphy->lane_mux_sel[0] == PHY_LANE_MUX_DP ? true : false; |
|---|
| 600 | + } |
|---|
| 598 | 601 | |
|---|
| 599 | 602 | return 0; |
|---|
| 600 | 603 | } |
|---|
| 601 | 604 | |
|---|
| 602 | 605 | static int udphy_parse_dt(struct rockchip_udphy *udphy, struct udevice *dev) |
|---|
| 603 | 606 | { |
|---|
| 604 | | - const struct device_node *np = ofnode_to_np(dev->node); |
|---|
| 605 | 607 | enum usb_device_speed maximum_speed; |
|---|
| 606 | 608 | int ret; |
|---|
| 607 | 609 | |
|---|
| .. | .. |
|---|
| 645 | 647 | } |
|---|
| 646 | 648 | } |
|---|
| 647 | 649 | |
|---|
| 648 | | - ret = udphy_parse_lane_mux_data(udphy, np); |
|---|
| 650 | + ret = udphy_parse_lane_mux_data(udphy, dev); |
|---|
| 649 | 651 | if (ret) |
|---|
| 650 | 652 | return ret; |
|---|
| 651 | 653 | |
|---|
| .. | .. |
|---|
| 947 | 949 | |
|---|
| 948 | 950 | dev_for_each_subnode(subnode, parent) { |
|---|
| 949 | 951 | 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); |
|---|
| 951 | 953 | return -ENXIO; |
|---|
| 952 | 954 | } |
|---|
| 953 | 955 | |
|---|
| .. | .. |
|---|
| 1014 | 1016 | val & TRSV_LN0_MON_RX_CDR_LOCK_DONE, |
|---|
| 1015 | 1017 | 200, 100); |
|---|
| 1016 | 1018 | 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"); |
|---|
| 1018 | 1020 | } else { |
|---|
| 1019 | 1021 | ret = regmap_read_poll_timeout(udphy->pma_regmap, |
|---|
| 1020 | 1022 | TRSV_LN2_MON_RX_CDR_DONE_OFFSET, val, |
|---|
| 1021 | 1023 | val & TRSV_LN2_MON_RX_CDR_LOCK_DONE, |
|---|
| 1022 | 1024 | 200, 100); |
|---|
| 1023 | 1025 | 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"); |
|---|
| 1025 | 1027 | } |
|---|
| 1026 | 1028 | } |
|---|
| 1027 | 1029 | |
|---|