public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] usb: dwc2: Another attempt handling rk3288's remote wake quirk
@ 2019-04-16 21:53 Douglas Anderson
       [not found] ` <20190416215351.242246-1-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Douglas Anderson @ 2019-04-16 21:53 UTC (permalink / raw)
  To: Rob Herring, Minas Harutyunyan, Heiko Stuebner, Felipe Balbi
  Cc: amstan, linux-rockchip, linux-usb, Randy Li, mka, ryandcase,
	jwerner, Elaine Zhang, Douglas Anderson, devicetree, linux-kernel,
	Greg Kroah-Hartman, Mark Rutland, linux-arm-kernel

This is another attempt to upstream the code to unwedge the rk3288's
"host" USB port when it sees a remote wakeup.  Previously I attempted
this [1] and it appears that Randy Li made some attempts too [2] which
resulted in at least the PHY bindings for the USB PHY landing as well
as the USB PHY support.  Nice!

Hopefully this addresses previous comments and could land this time?

[1] https://lkml.kernel.org/r/1446236275-12698-2-git-send-email-dianders@chromium.org
[2] https://lkml.kernel.org/r/1472939729-15187-4-git-send-email-ayaka@soulik.info

Changes in v2:
- Cancel the work when dwc2 is freed (Matthias).

Douglas Anderson (4):
  dt-bindings: usb: dwc2: Document quirk to reset PHY upon wakeup
  usb: dwc2: optionally assert phy reset when waking up
  ARM: dts: rockchip: Hook resets up to USB PHYs on rk3288.
  ARM: dts: rockchip: Add quirk for resetting rk3288's dwc2 host on
    wakeup

 Documentation/devicetree/bindings/usb/dwc2.txt |  2 ++
 arch/arm/boot/dts/rk3288.dtsi                  |  7 +++++++
 drivers/usb/dwc2/core.h                        |  5 +++++
 drivers/usb/dwc2/core_intr.c                   | 12 ++++++++++++
 drivers/usb/dwc2/hcd.c                         | 18 +++++++++++++++---
 drivers/usb/dwc2/platform.c                    |  9 +++++++++
 6 files changed, 50 insertions(+), 3 deletions(-)

-- 
2.21.0.593.g511ec345e18-goog

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 1/4] dt-bindings: usb: dwc2: Document quirk to reset PHY upon wakeup
       [not found] ` <20190416215351.242246-1-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
@ 2019-04-16 21:53   ` Douglas Anderson
  2019-04-30  0:53     ` Rob Herring
  0 siblings, 1 reply; 7+ messages in thread
From: Douglas Anderson @ 2019-04-16 21:53 UTC (permalink / raw)
  To: Rob Herring, Minas Harutyunyan, Heiko Stuebner, Felipe Balbi
  Cc: Mark Rutland, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, amstan-F7+t8E8rja9g9hUCZPvPmw,
	Greg Kroah-Hartman, Randy Li, Douglas Anderson,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	mka-F7+t8E8rja9g9hUCZPvPmw, ryandcase-F7+t8E8rja9g9hUCZPvPmw,
	Elaine Zhang, jwerner-F7+t8E8rja9g9hUCZPvPmw

On Rockchip rk3288 there's a hardware quirk where we need to assert
the reset signal to the PHY when we get a remote wakeup on one of the
two ports.  Document this quirk in the bindings.

Signed-off-by: Douglas Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
Reviewed-by: Matthias Kaehlcke <mka-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
---

Changes in v2: None

 Documentation/devicetree/bindings/usb/dwc2.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
index 6dc3c4a34483..f70f3aee4bfc 100644
--- a/Documentation/devicetree/bindings/usb/dwc2.txt
+++ b/Documentation/devicetree/bindings/usb/dwc2.txt
@@ -37,6 +37,8 @@ Refer to phy/phy-bindings.txt for generic phy consumer properties
 - g-rx-fifo-size: size of rx fifo size in gadget mode.
 - g-np-tx-fifo-size: size of non-periodic tx fifo size in gadget mode.
 - g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
+- snps,reset-phy-on-wake: If present indicates that we need to reset the PHY when
+                          we detect a wakeup.  This is due to a hardware errata.
 
 Deprecated properties:
 - g-use-dma: gadget DMA mode is automatically detected
-- 
2.21.0.593.g511ec345e18-goog

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 3/4] ARM: dts: rockchip: Hook resets up to USB PHYs on rk3288.
  2019-04-16 21:53 [PATCH v2 0/4] usb: dwc2: Another attempt handling rk3288's remote wake quirk Douglas Anderson
       [not found] ` <20190416215351.242246-1-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
@ 2019-04-16 21:53 ` Douglas Anderson
  2019-04-16 21:53 ` [PATCH v2 4/4] ARM: dts: rockchip: Add quirk for resetting rk3288's dwc2 host on wakeup Douglas Anderson
  2 siblings, 0 replies; 7+ messages in thread
From: Douglas Anderson @ 2019-04-16 21:53 UTC (permalink / raw)
  To: Rob Herring, Minas Harutyunyan, Heiko Stuebner, Felipe Balbi
  Cc: amstan, linux-rockchip, linux-usb, Randy Li, mka, ryandcase,
	jwerner, Elaine Zhang, Douglas Anderson, devicetree, linux-kernel,
	Mark Rutland, linux-arm-kernel

Let's hook up the resets to the three USB PHYs on rk3288 as per the
bindings.  This is in preparation for a future patch that will set the
"snps,reset-phy-on-wake" on the host port.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
---

Changes in v2: None

 arch/arm/boot/dts/rk3288.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 74c9517c4f92..7e70ecf2b95a 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -909,6 +909,8 @@
 				clocks = <&cru SCLK_OTGPHY0>;
 				clock-names = "phyclk";
 				#clock-cells = <0>;
+				resets = <&cru SRST_USBOTG_PHY>;
+				reset-names = "phy-reset";
 			};
 
 			usbphy1: usb-phy@334 {
@@ -917,6 +919,8 @@
 				clocks = <&cru SCLK_OTGPHY1>;
 				clock-names = "phyclk";
 				#clock-cells = <0>;
+				resets = <&cru SRST_USBHOST0_PHY>;
+				reset-names = "phy-reset";
 			};
 
 			usbphy2: usb-phy@348 {
@@ -925,6 +929,8 @@
 				clocks = <&cru SCLK_OTGPHY2>;
 				clock-names = "phyclk";
 				#clock-cells = <0>;
+				resets = <&cru SRST_USBHOST1_PHY>;
+				reset-names = "phy-reset";
 			};
 		};
 	};
-- 
2.21.0.593.g511ec345e18-goog

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH v2 4/4] ARM: dts: rockchip: Add quirk for resetting rk3288's dwc2 host on wakeup
  2019-04-16 21:53 [PATCH v2 0/4] usb: dwc2: Another attempt handling rk3288's remote wake quirk Douglas Anderson
       [not found] ` <20190416215351.242246-1-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
  2019-04-16 21:53 ` [PATCH v2 3/4] ARM: dts: rockchip: Hook resets up to USB PHYs on rk3288 Douglas Anderson
@ 2019-04-16 21:53 ` Douglas Anderson
  2 siblings, 0 replies; 7+ messages in thread
From: Douglas Anderson @ 2019-04-16 21:53 UTC (permalink / raw)
  To: Rob Herring, Minas Harutyunyan, Heiko Stuebner, Felipe Balbi
  Cc: amstan, linux-rockchip, linux-usb, Randy Li, mka, ryandcase,
	jwerner, Elaine Zhang, Douglas Anderson, devicetree, linux-kernel,
	Mark Rutland, linux-arm-kernel

The "host" USB port on rk3288 has a hardware errata where we've got to
assert a PHY reset whenever we see a remote wakeup.  Add that quirk
property to the device tree.

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
---

Changes in v2: None

 arch/arm/boot/dts/rk3288.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 7e70ecf2b95a..aa017abf4f42 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -621,6 +621,7 @@
 		dr_mode = "host";
 		phys = <&usbphy2>;
 		phy-names = "usb2-phy";
+		snps,reset-phy-on-wake;
 		status = "disabled";
 	};
 
-- 
2.21.0.593.g511ec345e18-goog

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: usb: dwc2: Document quirk to reset PHY upon wakeup
  2019-04-16 21:53   ` [PATCH v2 1/4] dt-bindings: usb: dwc2: Document quirk to reset PHY upon wakeup Douglas Anderson
@ 2019-04-30  0:53     ` Rob Herring
  2019-04-30  5:29       ` Doug Anderson
  0 siblings, 1 reply; 7+ messages in thread
From: Rob Herring @ 2019-04-30  0:53 UTC (permalink / raw)
  To: Douglas Anderson
  Cc: Minas Harutyunyan, Heiko Stuebner, Felipe Balbi, amstan,
	linux-rockchip, linux-usb, Randy Li, mka, ryandcase, jwerner,
	Elaine Zhang, devicetree, linux-kernel, Greg Kroah-Hartman,
	Mark Rutland

On Tue, Apr 16, 2019 at 02:53:48PM -0700, Douglas Anderson wrote:
> On Rockchip rk3288 there's a hardware quirk where we need to assert
> the reset signal to the PHY when we get a remote wakeup on one of the
> two ports.  Document this quirk in the bindings.
> 
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
> ---
> 
> Changes in v2: None
> 
>  Documentation/devicetree/bindings/usb/dwc2.txt | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
> index 6dc3c4a34483..f70f3aee4bfc 100644
> --- a/Documentation/devicetree/bindings/usb/dwc2.txt
> +++ b/Documentation/devicetree/bindings/usb/dwc2.txt
> @@ -37,6 +37,8 @@ Refer to phy/phy-bindings.txt for generic phy consumer properties
>  - g-rx-fifo-size: size of rx fifo size in gadget mode.
>  - g-np-tx-fifo-size: size of non-periodic tx fifo size in gadget mode.
>  - g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
> +- snps,reset-phy-on-wake: If present indicates that we need to reset the PHY when
> +                          we detect a wakeup.  This is due to a hardware errata.

Synopsys or Rockchip errata?

Ideally, this should be implied by the controller or phy compatible.

Rob

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: usb: dwc2: Document quirk to reset PHY upon wakeup
  2019-04-30  0:53     ` Rob Herring
@ 2019-04-30  5:29       ` Doug Anderson
  2019-04-30 13:51         ` Rob Herring
  0 siblings, 1 reply; 7+ messages in thread
From: Doug Anderson @ 2019-04-30  5:29 UTC (permalink / raw)
  To: Rob Herring
  Cc: Mark Rutland, devicetree-u79uwXL29TY76Z2rM5mHXA, Randy Li,
	Heiko Stuebner, Felipe Balbi, Greg Kroah-Hartman,
	linux-usb-u79uwXL29TY76Z2rM5mHXA, LKML,
	open list:ARM/Rockchip SoC..., Matthias Kaehlcke, Ryan Case,
	Elaine Zhang, Minas Harutyunyan, Julius Werner, Alexandru M Stan

Hi,

On Mon, Apr 29, 2019 at 5:54 PM Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> wrote:
>
> On Tue, Apr 16, 2019 at 02:53:48PM -0700, Douglas Anderson wrote:
> > On Rockchip rk3288 there's a hardware quirk where we need to assert
> > the reset signal to the PHY when we get a remote wakeup on one of the
> > two ports.  Document this quirk in the bindings.
> >
> > Signed-off-by: Douglas Anderson <dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
> > Reviewed-by: Matthias Kaehlcke <mka-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
> > ---
> >
> > Changes in v2: None
> >
> >  Documentation/devicetree/bindings/usb/dwc2.txt | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
> > index 6dc3c4a34483..f70f3aee4bfc 100644
> > --- a/Documentation/devicetree/bindings/usb/dwc2.txt
> > +++ b/Documentation/devicetree/bindings/usb/dwc2.txt
> > @@ -37,6 +37,8 @@ Refer to phy/phy-bindings.txt for generic phy consumer properties
> >  - g-rx-fifo-size: size of rx fifo size in gadget mode.
> >  - g-np-tx-fifo-size: size of non-periodic tx fifo size in gadget mode.
> >  - g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
> > +- snps,reset-phy-on-wake: If present indicates that we need to reset the PHY when
> > +                          we detect a wakeup.  This is due to a hardware errata.
>
> Synopsys or Rockchip errata?
>
> Ideally, this should be implied by the controller or phy compatible.

I have no idea.  The errata was described to me by Rockchip but I
don't know if it's common to more than one board.

You're right that we could do it on the controller compatible, but we
have to be careful.  The two ports on rk3288 currently have the same
compatible string but the errata only applies to one of them.  ...so
I'd have to cue on not just the compatible string but also detect
whether we're on the "OTG" port of the "host only" port.  That's not
too hard, though since it is probe-able.

I'm happy to spin this but I'll wait to hear from Felipe.  This is
already in his testing tree, so presumably I should do a follow-up
patch.  ...but if he wants me to re-post I can do that too.


-Doug

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 1/4] dt-bindings: usb: dwc2: Document quirk to reset PHY upon wakeup
  2019-04-30  5:29       ` Doug Anderson
@ 2019-04-30 13:51         ` Rob Herring
  0 siblings, 0 replies; 7+ messages in thread
From: Rob Herring @ 2019-04-30 13:51 UTC (permalink / raw)
  To: Doug Anderson
  Cc: Minas Harutyunyan, Heiko Stuebner, Felipe Balbi, Alexandru M Stan,
	open list:ARM/Rockchip SoC..., Linux USB List, Randy Li,
	Matthias Kaehlcke, Ryan Case, Julius Werner, Elaine Zhang,
	devicetree, LKML, Greg Kroah-Hartman, Mark Rutland

On Tue, Apr 30, 2019 at 12:29 AM Doug Anderson <dianders@chromium.org> wrote:
>
> Hi,
>
> On Mon, Apr 29, 2019 at 5:54 PM Rob Herring <robh@kernel.org> wrote:
> >
> > On Tue, Apr 16, 2019 at 02:53:48PM -0700, Douglas Anderson wrote:
> > > On Rockchip rk3288 there's a hardware quirk where we need to assert
> > > the reset signal to the PHY when we get a remote wakeup on one of the
> > > two ports.  Document this quirk in the bindings.
> > >
> > > Signed-off-by: Douglas Anderson <dianders@chromium.org>
> > > Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
> > > ---
> > >
> > > Changes in v2: None
> > >
> > >  Documentation/devicetree/bindings/usb/dwc2.txt | 2 ++
> > >  1 file changed, 2 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/usb/dwc2.txt b/Documentation/devicetree/bindings/usb/dwc2.txt
> > > index 6dc3c4a34483..f70f3aee4bfc 100644
> > > --- a/Documentation/devicetree/bindings/usb/dwc2.txt
> > > +++ b/Documentation/devicetree/bindings/usb/dwc2.txt
> > > @@ -37,6 +37,8 @@ Refer to phy/phy-bindings.txt for generic phy consumer properties
> > >  - g-rx-fifo-size: size of rx fifo size in gadget mode.
> > >  - g-np-tx-fifo-size: size of non-periodic tx fifo size in gadget mode.
> > >  - g-tx-fifo-size: size of periodic tx fifo per endpoint (except ep0) in gadget mode.
> > > +- snps,reset-phy-on-wake: If present indicates that we need to reset the PHY when
> > > +                          we detect a wakeup.  This is due to a hardware errata.
> >
> > Synopsys or Rockchip errata?
> >
> > Ideally, this should be implied by the controller or phy compatible.
>
> I have no idea.  The errata was described to me by Rockchip but I
> don't know if it's common to more than one board.
>
> You're right that we could do it on the controller compatible, but we
> have to be careful.  The two ports on rk3288 currently have the same
> compatible string but the errata only applies to one of them.  ...so
> I'd have to cue on not just the compatible string but also detect
> whether we're on the "OTG" port of the "host only" port.  That's not
> too hard, though since it is probe-able.
>
> I'm happy to spin this but I'll wait to hear from Felipe.  This is
> already in his testing tree, so presumably I should do a follow-up
> patch.  ...but if he wants me to re-post I can do that too.

Okay, I guess it is fine as-is.

Rob

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-04-30 13:51 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-16 21:53 [PATCH v2 0/4] usb: dwc2: Another attempt handling rk3288's remote wake quirk Douglas Anderson
     [not found] ` <20190416215351.242246-1-dianders-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org>
2019-04-16 21:53   ` [PATCH v2 1/4] dt-bindings: usb: dwc2: Document quirk to reset PHY upon wakeup Douglas Anderson
2019-04-30  0:53     ` Rob Herring
2019-04-30  5:29       ` Doug Anderson
2019-04-30 13:51         ` Rob Herring
2019-04-16 21:53 ` [PATCH v2 3/4] ARM: dts: rockchip: Hook resets up to USB PHYs on rk3288 Douglas Anderson
2019-04-16 21:53 ` [PATCH v2 4/4] ARM: dts: rockchip: Add quirk for resetting rk3288's dwc2 host on wakeup Douglas Anderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox