Quoting Bryan O'Donoghue (2020-03-19 08:22:14)
On 19/03/2020 01:08, Stephen Boyd wrote:
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.
Yes some PHYs do care about the role. Sometimes they have to toggle some
bit to switch between host and gadget mode for example. I haven't fully
read this patch series but maybe the PHY can be the one that controls
the gpio for the connector?
We (ChromeOS) need to integrate the type-c connector class, etc. on
sc7180 with the dwc3 driver and the current thinking has the type-c
connectors underneath the cros_ec node because the EC is the type-c
manager. The EC will have a type-c driver associated with it.