.. | .. |
---|
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 | |
---|