Messages in this thread | | | Subject | Re: [PATCH 2/7] dt-bindings: usb: dwc3: Add a gpio-usb-connector example | From | Bryan O'Donoghue <> | Date | Thu, 19 Mar 2020 15:22:14 +0000 |
| |
On 19/03/2020 01:08, Stephen Boyd wrote: > Quoting Bryan O'Donoghue (2020-03-11 12:14:56) >> A USB connector should be a child node of the USB controller >> connector/usb-connector.txt. This patch adds an example of how to do this >> to the dwc3 binding descriptions. > > I read that as a child of the USB interface controller, which is not the > same as the USB controller. For example, we're talking about having the > usb connector be a child of the EC on ChromeOS devices because that > manages the connector > >> >> It is necessary to declare a connector as a child-node of a USB controller >> for role-switching to work, so this example should be helpful to others >> implementing that. > > Maybe it should be a virtual node at the root of the DT if it's GPIO > controlled? And then the phy can be connected to the usb connector > through the graph binding.
Graph binding can probably work.
Re: the PHY.
For myself the hardware model is
Connector -> PHY -> Host controller -> Host controller wrapper
Only
Connector -> Host controller -> Host controller wrapper
care about the USB role though.
If your PHY did care about the role, you'd really need to write a connector/phy type-c type driver, to detect the state and toggle your PHY bits before doing usb_role_switch_set_role() back to DWC3.
At least that's my understanding.
--- bod
| |