Patchwork [1/2] dt-bindings: usb-xhci: Add usb-phy-port-reset property

login
register
mail settings
Submitter Srinath Mannam
Date Feb. 5, 2019, 6:18 a.m.
Message ID <1549347534-11320-2-git-send-email-srinath.mannam@broadcom.com>
Download mbox | patch
Permalink /patch/718069/
State New
Headers show

Comments

Srinath Mannam - Feb. 5, 2019, 6:18 a.m.
Add usb-phy-port-reset optional property to set quirk in xhci platform
driver which forces USB port PHY reset on port disconnect event.

Signed-off-by: Srinath Mannam <srinath.mannam@broadcom.com>
Reviewed-by: Ray Jui <ray.jui@broadcom.com>
---
 Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 +
 1 file changed, 1 insertion(+)
Rob Herring - Feb. 25, 2019, 9:38 p.m.
On Tue, Feb 05, 2019 at 11:48:53AM +0530, Srinath Mannam wrote:
> Add usb-phy-port-reset optional property to set quirk in xhci platform
> driver which forces USB port PHY reset on port disconnect event.
> 
> Signed-off-by: Srinath Mannam <srinath.mannam@broadcom.com>
> Reviewed-by: Ray Jui <ray.jui@broadcom.com>
> ---
>  Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
> index fea8b15..ecbdb15 100644
> --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
> +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
> @@ -40,6 +40,7 @@ Optional properties:
>    - usb3-lpm-capable: determines if platform is USB3 LPM capable
>    - quirk-broken-port-ped: set if the controller has broken port disable mechanism
>    - imod-interval-ns: default interrupt moderation interval is 5000ns
> +  - usb-phy-port-reset: set this to do USB PORT PHY reset while disconnect
>    - phys : see usb-hcd.txt in the current directory

This should be implied by the HCI or phy compatible string (depending 
on who exactly needs the quirky behavior).

Rob
Srinath Mannam - Feb. 26, 2019, 4:57 a.m.
Hi Rob,
Thanks for the review, Please see my comments below in line.

Regards,
Srinath.
On Tue, Feb 26, 2019 at 3:08 AM Rob Herring <robh@kernel.org> wrote:
>
> On Tue, Feb 05, 2019 at 11:48:53AM +0530, Srinath Mannam wrote:
> > Add usb-phy-port-reset optional property to set quirk in xhci platform
> > driver which forces USB port PHY reset on port disconnect event.
> >
> > Signed-off-by: Srinath Mannam <srinath.mannam@broadcom.com>
> > Reviewed-by: Ray Jui <ray.jui@broadcom.com>
> > ---
> >  Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > index fea8b15..ecbdb15 100644
> > --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > @@ -40,6 +40,7 @@ Optional properties:
> >    - usb3-lpm-capable: determines if platform is USB3 LPM capable
> >    - quirk-broken-port-ped: set if the controller has broken port disable mechanism
> >    - imod-interval-ns: default interrupt moderation interval is 5000ns
> > +  - usb-phy-port-reset: set this to do USB PORT PHY reset while disconnect
> >    - phys : see usb-hcd.txt in the current directory
>
> This should be implied by the HCI or phy compatible string (depending
> on who exactly needs the quirky behavior).
Stingray USB HS PHY connected to xHCI port has an issue, if full speed
devices connected to this port then
after all High Speed devices connected to this port are detected at
full speed instead of high speed.
So that we need to do PHY (which is connected to port) reset on xHCI
port disconnect event.
That is the reason we required to add quirk in xHCI.
>
> Rob
Rob Herring - Feb. 26, 2019, 6:02 p.m.
On Mon, Feb 25, 2019 at 10:57 PM Srinath Mannam
<srinath.mannam@broadcom.com> wrote:
>
> Hi Rob,
> Thanks for the review, Please see my comments below in line.
>
> Regards,
> Srinath.
> On Tue, Feb 26, 2019 at 3:08 AM Rob Herring <robh@kernel.org> wrote:
> >
> > On Tue, Feb 05, 2019 at 11:48:53AM +0530, Srinath Mannam wrote:
> > > Add usb-phy-port-reset optional property to set quirk in xhci platform
> > > driver which forces USB port PHY reset on port disconnect event.
> > >
> > > Signed-off-by: Srinath Mannam <srinath.mannam@broadcom.com>
> > > Reviewed-by: Ray Jui <ray.jui@broadcom.com>
> > > ---
> > >  Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > > index fea8b15..ecbdb15 100644
> > > --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > > +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > > @@ -40,6 +40,7 @@ Optional properties:
> > >    - usb3-lpm-capable: determines if platform is USB3 LPM capable
> > >    - quirk-broken-port-ped: set if the controller has broken port disable mechanism
> > >    - imod-interval-ns: default interrupt moderation interval is 5000ns
> > > +  - usb-phy-port-reset: set this to do USB PORT PHY reset while disconnect
> > >    - phys : see usb-hcd.txt in the current directory
> >
> > This should be implied by the HCI or phy compatible string (depending
> > on who exactly needs the quirky behavior).
> Stingray USB HS PHY connected to xHCI port has an issue, if full speed
> devices connected to this port then
> after all High Speed devices connected to this port are detected at
> full speed instead of high speed.
> So that we need to do PHY (which is connected to port) reset on xHCI
> port disconnect event.
> That is the reason we required to add quirk in xHCI.

So, by looking at the xhci host and phy compatible strings (or maybe
just the phy) you can determine whether you need to reset the port or
not. All the information you need is in DT already.

Rob
Srinath Mannam - Feb. 27, 2019, 5:08 p.m.
Hi Rob,
Thanks for the information. Please find my comments below.
Regards,
Srinath.
On Tue, Feb 26, 2019 at 11:33 PM Rob Herring <robh@kernel.org> wrote:
>
> On Mon, Feb 25, 2019 at 10:57 PM Srinath Mannam
> <srinath.mannam@broadcom.com> wrote:
> >
> > Hi Rob,
> > Thanks for the review, Please see my comments below in line.
> >
> > Regards,
> > Srinath.
> > On Tue, Feb 26, 2019 at 3:08 AM Rob Herring <robh@kernel.org> wrote:
> > >
> > > On Tue, Feb 05, 2019 at 11:48:53AM +0530, Srinath Mannam wrote:
> > > > Add usb-phy-port-reset optional property to set quirk in xhci platform
> > > > driver which forces USB port PHY reset on port disconnect event.
> > > >
> > > > Signed-off-by: Srinath Mannam <srinath.mannam@broadcom.com>
> > > > Reviewed-by: Ray Jui <ray.jui@broadcom.com>
> > > > ---
> > > >  Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 +
> > > >  1 file changed, 1 insertion(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > > > index fea8b15..ecbdb15 100644
> > > > --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > > > +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
> > > > @@ -40,6 +40,7 @@ Optional properties:
> > > >    - usb3-lpm-capable: determines if platform is USB3 LPM capable
> > > >    - quirk-broken-port-ped: set if the controller has broken port disable mechanism
> > > >    - imod-interval-ns: default interrupt moderation interval is 5000ns
> > > > +  - usb-phy-port-reset: set this to do USB PORT PHY reset while disconnect
> > > >    - phys : see usb-hcd.txt in the current directory
> > >
> > > This should be implied by the HCI or phy compatible string (depending
> > > on who exactly needs the quirky behavior).
> > Stingray USB HS PHY connected to xHCI port has an issue, if full speed
> > devices connected to this port then
> > after all High Speed devices connected to this port are detected at
> > full speed instead of high speed.
> > So that we need to do PHY (which is connected to port) reset on xHCI
> > port disconnect event.
> > That is the reason we required to add quirk in xHCI.
>
> So, by looking at the xhci host and phy compatible strings (or maybe
> just the phy) you can determine whether you need to reset the port or
> not. All the information you need is in DT already.
xHCI controller in our SOC has three ports each port has one
PHY(SS/HS) connected to it.
HS PHY has to reset on its corresponding port disconnect event. port
disconnect event is
captured in xHCI host framework so, quirk has to be registered in xHCI
framework only.
But we are using "generic-xhci" generic compatible string for our xHCI
controller.
As per your advice, we will add new compatible string in xhci-plat.c
driver for our xHCI controller
and will add quirk part of that.

Thank you.

>
> Rob

Patch

diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt
index fea8b15..ecbdb15 100644
--- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
+++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
@@ -40,6 +40,7 @@  Optional properties:
   - usb3-lpm-capable: determines if platform is USB3 LPM capable
   - quirk-broken-port-ped: set if the controller has broken port disable mechanism
   - imod-interval-ns: default interrupt moderation interval is 5000ns
+  - usb-phy-port-reset: set this to do USB PORT PHY reset while disconnect
   - phys : see usb-hcd.txt in the current directory
 
 additionally the properties from usb-hcd.txt (in the current directory) are