On some designs, the D+ and D- lines are swapped (on purpose or not).
The PHY can handle that with the LANE_REVERSE bit.
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
---
Documentation/devicetree/bindings/usb/ti,am62-usb.yaml | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml b/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml
index f6e6d084d1c5..ba894d610af0 100644
--- a/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml
+++ b/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml
@@ -36,6 +36,11 @@ properties:
items:
- const: ref
+ ti,lane-reverse:
+ description:
+ Should be present if D+ and D- lanes have to be swapped.
+ type: boolean
+
ti,vbus-divider:
description:
Should be present if USB VBUS line is connected to the
On Mon, Sep 08, 2025 at 06:20:51PM +0200, Richard Genoud wrote: > On some designs, the D+ and D- lines are swapped (on purpose or not). > The PHY can handle that with the LANE_REVERSE bit. > > Signed-off-by: Richard Genoud <richard.genoud@bootlin.com> > --- > Documentation/devicetree/bindings/usb/ti,am62-usb.yaml | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml b/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml > index f6e6d084d1c5..ba894d610af0 100644 > --- a/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml > +++ b/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml > @@ -36,6 +36,11 @@ properties: > items: > - const: ref > > + ti,lane-reverse: > + description: > + Should be present if D+ and D- lanes have to be swapped. > + type: boolean What is not working with existing data-lanes property? Plus, lanes are swapped per port, not for entire device, no? Best regards, Krzysztof
Le 09/09/2025 à 09:32, Krzysztof Kozlowski a écrit : > On Mon, Sep 08, 2025 at 06:20:51PM +0200, Richard Genoud wrote: >> On some designs, the D+ and D- lines are swapped (on purpose or not). >> The PHY can handle that with the LANE_REVERSE bit. >> >> Signed-off-by: Richard Genoud <richard.genoud@bootlin.com> >> --- >> Documentation/devicetree/bindings/usb/ti,am62-usb.yaml | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml b/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml >> index f6e6d084d1c5..ba894d610af0 100644 >> --- a/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml >> +++ b/Documentation/devicetree/bindings/usb/ti,am62-usb.yaml >> @@ -36,6 +36,11 @@ properties: >> items: >> - const: ref >> >> + ti,lane-reverse: >> + description: >> + Should be present if D+ and D- lanes have to be swapped. >> + type: boolean > > What is not working with existing data-lanes property? Hum, indeed. data-lanes could definitely be used here. > > Plus, lanes are swapped per port, not for entire device, no? I'm not sure to get what you mean here. The use case I'm trying to address is: pin AD10(USB1_DM) of the AM625 is routed to USB_DP pin of an USB connector. And pin AE9(USB1_DP) of the AM625 is routed to USB_DM pin of an USB connector. And using LANE_REVERSE bit of MMR_USB2SS_CFG_PHY_CONFIG swaps the DM/DP lines of the corresponding USB instance. Regards, Richard > > Best regards, > Krzysztof >
© 2016 - 2025 Red Hat, Inc.