Re: [Patch V2 01/18] dt-bindings: phy: tegra-xusb: Add usb-role-switch

Thierry Reding
2020-01-13T15:07:02Z

[-- Attachment #1: Type: text/plain, Size: 3551 bytes --]

On Mon, Jan 13, 2020 at 10:07:08AM +0530, Nagarjuna Kristam wrote:
>
> On 10-01-2020 16:46, Thierry Reding wrote:
> > On Fri, Dec 20, 2019 at 04:08:30PM +0800, JC Kuo wrote:
> > > On 12/19/19 9:05 PM, Thierry Reding wrote:
> > > > On Wed, Dec 18, 2019 at 02:46:14PM +0530, Nagarjuna Kristam wrote:
> > > > > Add usb-role-switch property for Tegra210 and Tegra186 platforms. This
> > > > > entry is used by XUSB pad controller driver to register for role changes
> > > > > for OTG/Peripheral capable USB 2 ports.
> > > > >
> > > > > Signed-off-by: Nagarjuna Kristam<nkristam@nvidia.com>
> > > > > ---
> > > > > V2:
> > > > > - Moved usb-role-switch to seperate Required section as suggested by Thierry.
> > > > > - Added reference to usb/usb-conn-gpio.txt for connector subnode.
> > > > > ---
> > > > > .../devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt | 6 ++++++
> > > > > 1 file changed, 6 insertions(+)
> > > > >
> > > > > diff --git a/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt b/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
> > > > > index 9fb682e..23bf354 100644
> > > > > --- a/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
> > > > > +++ b/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
> > > > > @@ -174,6 +174,12 @@ Required properties:
> > > > > - "device": for USB device mode
> > > > > - "otg": for USB OTG mode
> > > > > +Required properties for OTG/Peripheral capable USB2 ports:
> > > > > +- usb-role-switch: Boolean property to indicate that the port support OTG or
> > > > "supports", and also, why if it supports OTG*or* peripheral? Doesn't
> > > > OTG imply peripheral? OTG means it can be either peripheral or host,
> > > > right? So I think the end of that sentence can be just:
> > > >
> > > > "... the port supports OTG."
> > > An USB OTG port is capable of both USB host and peripheral operations. An USB
> > > peripheral port can only act as an USB peripheral.
> > >
> > > The micro USB ports found on Jetson TX1/TX2 platforms are micro-AB ports which
> > > should implement both host and peripheral capabilities. We say such ports
> > > support OTG. The micro USB port found on Jetson Nano is a micro-B port which
> > > should implement peripheral capability only. We say such ports support
> > > peripheral, rather than OTG.
> > I the port supports only peripheral mode, why do we need to have a
> > usb-role-switch property? Shouldn't we in that case have a mode property
> > with value "device"?
> >
> > usb-mode-switch is only needed if mode = "otg", isn't it? In all other
> > cases the functionality is fixed (either host or peripheral) and the
> > mode cannot be switched.
> >
> > Thierry
>
> usb-role-switch is needed when mode == "otg" or "peripheral".
>
> Device mode is detected via vbus GPIO irrespective of mode being peripheral
> only or OTG.
> Host mode is detected via id-gpio, in OTG case.
>
> When mode is peripheral, role changes happens between USB_ROLE_DEVICE and
> USB_ROLE_NONE, which are generally based on Vbus GPIO(hot plug) detection.
>
> When mode is otg, role changes happens between USB_ROLE_HOST,
> USB_ROLE_DEVICE and USB_ROLE_NONE, which are detected via id-gpio, vbus-gpio
> and no detection respectively.

Right, that makes perfect sense. Thanks for putting it so clearly. With
the "support" -> "supports" typo fixed, this patch:

Acked-by: Thierry Reding <treding@nvidia.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]