Re: [PATCH v3 1/2] dt-bindings: phy: Add Sophgo CV1800 USB phy

From: Rob Herring
Date: Tue May 07 2024 - 15:09:01 EST


On Mon, May 06, 2024 at 08:17:30PM +0800, Inochi Amaoto wrote:
> On Mon, May 06, 2024 at 08:51:59AM GMT, Krzysztof Kozlowski wrote:
> > On 05/05/2024 03:52, Inochi Amaoto wrote:
> > > The USB phy of Sophgo CV18XX series SoC needs to sense a pin called
> > > "VBUS_DET" to get the right operation mode. If this pin is not
> > > connected, it only supports setting the mode manually.
> > >
> > > Add USB phy bindings for Sophgo CV18XX/SG200X series SoC.
> >
> > ...
> >
> > > +
> > > + clock-names:
> > > + items:
> > > + - const: phy
> > > + - const: app
> > > + - const: stb
> > > + - const: lpm
> > > +
> > > + vbus_det-gpios:
> >
> > No underscores.
> >
>
> Thanks.
>
> > > + description: GPIO to the USB OTG VBUS detect pin. This should not be
> > > + defined if vbus_det pin and switch pin are connected, which may
> > > + break the VBUS detection.
> >
> > Why is this property of the PHY? VBUS pin goes to the connector, doesn't
> > it? It looks like you combined two or three (!!!) bindings into one.
> >
>
> Yes, but I am not sure which is the best to write this bindings.
> The topology of USB likes this:
>
> controller -- phy -- switch --> (host) port/hub
> --> (device) port
>
> The vbus-detect connect to the device port, but it will change the mode for
> both phy and switch. And the switch is just a switching circuit.
> I am pretty confused on how to split this binding. I think it may like the
> following:
>
> phy {
> switch {
> /* This is the switch in the follows */
> connector1 {
> /* host port */
> };
> connector2 {
> /* device port*/
> /* the vbus pin is here */
> };
> };
> };
>
> Could you share some suggestion on this?

Something like the above assuming 2 physical connectors, but probably
should be a child of the USB controller or on its own. PHYs usually
aren't put into a parent/child hierarchy, but are out of band.

Is this switch implemented on the board level? If so, you should create
something that would work on any platform with a GPIO controlled USB
switch like this.

Rob