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