Support the ti,lane-reverse property by setting the
USBSS_PHY_LANE_REVERSE bit.
This way, D+ line become D- and vice and versa.
Tested on am625 SoC.
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
---
drivers/usb/dwc3/dwc3-am62.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/usb/dwc3/dwc3-am62.c b/drivers/usb/dwc3/dwc3-am62.c
index 9db8f3ca493d..9437d2246ee9 100644
--- a/drivers/usb/dwc3/dwc3-am62.c
+++ b/drivers/usb/dwc3/dwc3-am62.c
@@ -119,6 +119,7 @@ struct dwc3_am62 {
struct regmap *syscon;
unsigned int offset;
unsigned int vbus_divider;
+ unsigned int lane_reverse;
u32 wakeup_stat;
void __iomem *phy_regs;
};
@@ -203,6 +204,9 @@ static int dwc3_ti_init(struct dwc3_am62 *am62)
if (am62->vbus_divider)
reg |= 1 << USBSS_PHY_VBUS_SEL_SHIFT;
+ if (am62->lane_reverse)
+ reg |= USBSS_PHY_LANE_REVERSE;
+
dwc3_ti_writel(am62, USBSS_PHY_CONFIG, reg);
clk_prepare_enable(am62->usb2_refclk);
@@ -264,6 +268,7 @@ static int dwc3_ti_probe(struct platform_device *pdev)
}
am62->vbus_divider = device_property_read_bool(dev, "ti,vbus-divider");
+ am62->lane_reverse = device_property_read_bool(dev, "ti,lane-reverse");
ret = dwc3_ti_init(am62);
if (ret)