mbox series

[0/3] usb: dwc3: add fsl,ls-dwc3 glue layer support

Message ID 20240710-ls-dwc-v1-0-62f8cbed31d7@nxp.com
Headers show
Series usb: dwc3: add fsl,ls-dwc3 glue layer support | expand

Message

Frank Li July 10, 2024, 11:02 p.m. UTC
Add freescale layerscape dwc3 usb glue layer support.
Create binding doc for fsl,ls-dwc3.
Add compatible string fsl,ls1028a-dwc3 in dwc3-of-simple.c
Passdown software managed node property snps,gsbuscfg0-reqinfo.
Update dts to support dwc3 glue layer and enable dma-coherent.

Based on usb-next

To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
To: Shawn Guo <shawnguo@kernel.org>
Cc: linux-usb@vger.kernel.org
Cc: devicetree@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: imx@lists.linux.dev

Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
Frank Li (3):
      dt-bindings: usb: Add fsl,ls-dwc3.yaml for layerscape usb3 glue layer
      usb: dwc3: of-simple: Add compatible string fsl,ls1028a-dwc3
      arm64: dts: layerscape: move dwc3 usb under glue layer node

 .../devicetree/bindings/usb/fsl,ls-dwc3.yaml       | 50 ++++++++++++++++++++++
 arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi     | 43 +++++++++++--------
 drivers/usb/dwc3/dwc3-of-simple.c                  | 22 ++++++++++
 3 files changed, 98 insertions(+), 17 deletions(-)
---
base-commit: e60284b63245b84c3ae352427ed5ff8b79266b91
change-id: 20240710-ls-dwc-01ac03f3828a

Best regards,
---
Frank Li <Frank.Li@nxp.com>

Comments

Rob Herring (Arm) July 11, 2024, 9:38 p.m. UTC | #1
On Wed, Jul 10, 2024 at 07:02:24PM -0400, Frank Li wrote:
> New usb glue layer driver support enable dma-coherent. So put dwc3 usb node
> under glue layer node and enable dma-coherent.
> 
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
>  arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 43 ++++++++++++++++----------
>  1 file changed, 26 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> index 70b8731029c4e..24b937032480f 100644
> --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> @@ -615,24 +615,33 @@ gpio3: gpio@2320000 {
>  			little-endian;
>  		};
>  
> -		usb0: usb@3100000 {
> -			compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
> -			reg = <0x0 0x3100000 0x0 0x10000>;
> -			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
> -			snps,dis_rxdet_inp3_quirk;
> -			snps,quirk-frame-length-adjustment = <0x20>;
> -			snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
> -			status = "disabled";
> -		};
> +		usb {
> +			compatible = "fsl,ls1028a-dwc3";
> +			#address-cells = <2>;
> +			#size-cells = <2>;
> +			ranges;

No, the existing way is preferred unless you have actual glue/wrapper 
registers. Plus this breaks compatibility.

> +
> +			usb0: usb@3100000 {
> +				compatible = "snps,dwc3";
> +				reg = <0x0 0x3100000 0x0 0x10000>;
> +				interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
> +				dma-coherent;
> +				snps,dis_rxdet_inp3_quirk;
> +				snps,quirk-frame-length-adjustment = <0x20>;
> +				snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
> +				status = "disabled";
> +			};
Frank Li Aug. 7, 2024, 2:30 p.m. UTC | #2
On Wed, Aug 07, 2024 at 12:41:09AM +0000, Thinh Nguyen wrote:
> Hi Frank,
>
> On Tue, Jul 30, 2024, Frank Li wrote:
> > On Thu, Jul 11, 2024 at 03:38:46PM -0600, Rob Herring wrote:
> > > On Wed, Jul 10, 2024 at 07:02:24PM -0400, Frank Li wrote:
> > > > New usb glue layer driver support enable dma-coherent. So put dwc3 usb node
> > > > under glue layer node and enable dma-coherent.
> > > >
> > > > Signed-off-by: Frank Li <Frank.Li@nxp.com>
> > > > ---
> > > >  arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 43 ++++++++++++++++----------
> > > >  1 file changed, 26 insertions(+), 17 deletions(-)
> > > >
> > > > diff --git a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> > > > index 70b8731029c4e..24b937032480f 100644
> > > > --- a/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> > > > +++ b/arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
> > > > @@ -615,24 +615,33 @@ gpio3: gpio@2320000 {
> > > >  			little-endian;
> > > >  		};
> > > >
> > > > -		usb0: usb@3100000 {
> > > > -			compatible = "fsl,ls1028a-dwc3", "snps,dwc3";
> > > > -			reg = <0x0 0x3100000 0x0 0x10000>;
> > > > -			interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
> > > > -			snps,dis_rxdet_inp3_quirk;
> > > > -			snps,quirk-frame-length-adjustment = <0x20>;
> > > > -			snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
> > > > -			status = "disabled";
> > > > -		};
> > > > +		usb {
> > > > +			compatible = "fsl,ls1028a-dwc3";
> > > > +			#address-cells = <2>;
> > > > +			#size-cells = <2>;
> > > > +			ranges;
> > >
> > > No, the existing way is preferred unless you have actual glue/wrapper
> > > registers. Plus this breaks compatibility.
> >
> > Actually, it has glue layer, such as wakeup controller. Remote wakeup have
> > not implement at layerscape platform yet. But this register distribute to
> > difference place with other module misc controller registers. It is
> > difference for difference chips. I can think deep how to handle this.
> >
> > but anyways, it will break compatibility. I have not find good way to
> > keep compatibility and add glue layer, such as wakeup support.
> >
> > Frank
> >
>
> Will this impact how the rest of the series look? If so, I'll wait until
> you resolve this issue and review the rest.

Rob:
	I checked many dwc3-of-simple.c compatible string, which have not
'reg' and just have some clocks and reset.

	Is it okay to add missed clock and fsl,rcpm for usb wakeup support
in gluelayer node?

Frank

>
> BR,
> Thinh