diff mbox series

arm64: dts: renesas: r8a77990: Add DRIF support

Message ID 20200911121259.5669-1-fabrizio.castro.jz@renesas.com (mailing list archive)
State Accepted
Commit 1ada85b6201dfaf0c5b40ceaa31789d8605b086f
Delegated to: Geert Uytterhoeven
Headers show
Series arm64: dts: renesas: r8a77990: Add DRIF support | expand

Commit Message

Fabrizio Castro Sept. 11, 2020, 12:12 p.m. UTC
Add the DRIF controller nodes for the r8a77990 (a.k.a. R-Car E3).

Please note that R-Car E3 has register BITCTR located at offset
0x80 (this register is not available on the r8a77960 and r8a77951,
whose support has already been upstreamed), and even though it is
not dealt with just yet within the driver, we have to keep that
into account with our device tree nodes.

Also, please note that while testing it has emerged that the
HW User Manual has the wrong DMA details for DRIF2 and DRIF3
on E3, as they are only allowed SYS-DMAC0 rather than SYS-DMAC1
and SYS-DMAC2. An errata addressing this issue will be available
soon.

Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
---
 arch/arm64/boot/dts/renesas/r8a77990.dtsi | 120 ++++++++++++++++++++++
 1 file changed, 120 insertions(+)

Comments

Chris Paterson Sept. 11, 2020, 2:24 p.m. UTC | #1
Hi Fab,

> From: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> Sent: 11 September 2020 13:13
> 
> Add the DRIF controller nodes for the r8a77990 (a.k.a. R-Car E3).
> 
> Please note that R-Car E3 has register BITCTR located at offset
> 0x80 (this register is not available on the r8a77960 and r8a77951,
> whose support has already been upstreamed), and even though it is
> not dealt with just yet within the driver, we have to keep that
> into account with our device tree nodes.
> 
> Also, please note that while testing it has emerged that the
> HW User Manual has the wrong DMA details for DRIF2 and DRIF3
> on E3, as they are only allowed SYS-DMAC0 rather than SYS-DMAC1
> and SYS-DMAC2. An errata addressing this issue will be available
> soon.
> 
> Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>

Looks okay to me. Thanks for the patch.

Reviewed-by: Chris Paterson <chris.paterson2@renesas.com>

Kind regards, Chris

> ---
>  arch/arm64/boot/dts/renesas/r8a77990.dtsi | 120
> ++++++++++++++++++++++
>  1 file changed, 120 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> index 1991bdc36792..caeddc2c1a70 100644
> --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> @@ -1288,6 +1288,126 @@ vin5csi40: endpoint@2 {
>  			};
>  		};
> 
> +		drif00: rif@e6f40000 {
> +			compatible = "renesas,r8a77990-drif",
> +				     "renesas,rcar-gen3-drif";
> +			reg = <0 0xe6f40000 0 0x84>;
> +			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&cpg CPG_MOD 515>;
> +			clock-names = "fck";
> +			dmas = <&dmac1 0x20>, <&dmac2 0x20>;
> +			dma-names = "rx", "rx";
> +			power-domains = <&sysc
> R8A77990_PD_ALWAYS_ON>;
> +			resets = <&cpg 515>;
> +			renesas,bonding = <&drif01>;
> +			status = "disabled";
> +		};
> +
> +		drif01: rif@e6f50000 {
> +			compatible = "renesas,r8a77990-drif",
> +				     "renesas,rcar-gen3-drif";
> +			reg = <0 0xe6f50000 0 0x84>;
> +			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&cpg CPG_MOD 514>;
> +			clock-names = "fck";
> +			dmas = <&dmac1 0x22>, <&dmac2 0x22>;
> +			dma-names = "rx", "rx";
> +			power-domains = <&sysc
> R8A77990_PD_ALWAYS_ON>;
> +			resets = <&cpg 514>;
> +			renesas,bonding = <&drif00>;
> +			status = "disabled";
> +		};
> +
> +		drif10: rif@e6f60000 {
> +			compatible = "renesas,r8a77990-drif",
> +				     "renesas,rcar-gen3-drif";
> +			reg = <0 0xe6f60000 0 0x84>;
> +			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&cpg CPG_MOD 513>;
> +			clock-names = "fck";
> +			dmas = <&dmac1 0x24>, <&dmac2 0x24>;
> +			dma-names = "rx", "rx";
> +			power-domains = <&sysc
> R8A77990_PD_ALWAYS_ON>;
> +			resets = <&cpg 513>;
> +			renesas,bonding = <&drif11>;
> +			status = "disabled";
> +		};
> +
> +		drif11: rif@e6f70000 {
> +			compatible = "renesas,r8a77990-drif",
> +				     "renesas,rcar-gen3-drif";
> +			reg = <0 0xe6f70000 0 0x84>;
> +			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&cpg CPG_MOD 512>;
> +			clock-names = "fck";
> +			dmas = <&dmac1 0x26>, <&dmac2 0x26>;
> +			dma-names = "rx", "rx";
> +			power-domains = <&sysc
> R8A77990_PD_ALWAYS_ON>;
> +			resets = <&cpg 512>;
> +			renesas,bonding = <&drif10>;
> +			status = "disabled";
> +		};
> +
> +		drif20: rif@e6f80000 {
> +			compatible = "renesas,r8a77990-drif",
> +				     "renesas,rcar-gen3-drif";
> +			reg = <0 0xe6f80000 0 0x84>;
> +			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&cpg CPG_MOD 511>;
> +			clock-names = "fck";
> +			dmas = <&dmac0 0x28>;
> +			dma-names = "rx";
> +			power-domains = <&sysc
> R8A77990_PD_ALWAYS_ON>;
> +			resets = <&cpg 511>;
> +			renesas,bonding = <&drif21>;
> +			status = "disabled";
> +		};
> +
> +		drif21: rif@e6f90000 {
> +			compatible = "renesas,r8a77990-drif",
> +				     "renesas,rcar-gen3-drif";
> +			reg = <0 0xe6f90000 0 0x84>;
> +			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&cpg CPG_MOD 510>;
> +			clock-names = "fck";
> +			dmas = <&dmac0 0x2a>;
> +			dma-names = "rx";
> +			power-domains = <&sysc
> R8A77990_PD_ALWAYS_ON>;
> +			resets = <&cpg 510>;
> +			renesas,bonding = <&drif20>;
> +			status = "disabled";
> +		};
> +
> +		drif30: rif@e6fa0000 {
> +			compatible = "renesas,r8a77990-drif",
> +				     "renesas,rcar-gen3-drif";
> +			reg = <0 0xe6fa0000 0 0x84>;
> +			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&cpg CPG_MOD 509>;
> +			clock-names = "fck";
> +			dmas = <&dmac0 0x2c>;
> +			dma-names = "rx";
> +			power-domains = <&sysc
> R8A77990_PD_ALWAYS_ON>;
> +			resets = <&cpg 509>;
> +			renesas,bonding = <&drif31>;
> +			status = "disabled";
> +		};
> +
> +		drif31: rif@e6fb0000 {
> +			compatible = "renesas,r8a77990-drif",
> +				     "renesas,rcar-gen3-drif";
> +			reg = <0 0xe6fb0000 0 0x84>;
> +			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
> +			clocks = <&cpg CPG_MOD 508>;
> +			clock-names = "fck";
> +			dmas = <&dmac0 0x2e>;
> +			dma-names = "rx";
> +			power-domains = <&sysc
> R8A77990_PD_ALWAYS_ON>;
> +			resets = <&cpg 508>;
> +			renesas,bonding = <&drif30>;
> +			status = "disabled";
> +		};
> +
>  		rcar_sound: sound@ec500000 {
>  			/*
>  			 * #sound-dai-cells is required
> --
> 2.25.1
Chris Paterson Sept. 11, 2020, 2:44 p.m. UTC | #2
> From: Chris Paterson
> Sent: 11 September 2020 15:25
> 
> Hi Fab,
> 
> > From: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> > Sent: 11 September 2020 13:13
> >
> > Add the DRIF controller nodes for the r8a77990 (a.k.a. R-Car E3).
> >
> > Please note that R-Car E3 has register BITCTR located at offset
> > 0x80 (this register is not available on the r8a77960 and r8a77951,
> > whose support has already been upstreamed), and even though it is
> > not dealt with just yet within the driver, we have to keep that
> > into account with our device tree nodes.
> >
> > Also, please note that while testing it has emerged that the
> > HW User Manual has the wrong DMA details for DRIF2 and DRIF3
> > on E3, as they are only allowed SYS-DMAC0 rather than SYS-DMAC1
> > and SYS-DMAC2. An errata addressing this issue will be available
> > soon.
> >
> > Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> 
> Looks okay to me. Thanks for the patch.

Assuming you're going to update the bindings...
 
> Reviewed-by: Chris Paterson <chris.paterson2@renesas.com>
> 
> Kind regards, Chris
> 
> > ---
> >  arch/arm64/boot/dts/renesas/r8a77990.dtsi | 120
> > ++++++++++++++++++++++
> >  1 file changed, 120 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > index 1991bdc36792..caeddc2c1a70 100644
> > --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > @@ -1288,6 +1288,126 @@ vin5csi40: endpoint@2 {
> >  			};
> >  		};
> >
> > +		drif00: rif@e6f40000 {
> > +			compatible = "renesas,r8a77990-drif",
> > +				     "renesas,rcar-gen3-drif";
> > +			reg = <0 0xe6f40000 0 0x84>;
> > +			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
> > +			clocks = <&cpg CPG_MOD 515>;
> > +			clock-names = "fck";
> > +			dmas = <&dmac1 0x20>, <&dmac2 0x20>;
> > +			dma-names = "rx", "rx";
> > +			power-domains = <&sysc
> > R8A77990_PD_ALWAYS_ON>;
> > +			resets = <&cpg 515>;
> > +			renesas,bonding = <&drif01>;
> > +			status = "disabled";
> > +		};
> > +
> > +		drif01: rif@e6f50000 {
> > +			compatible = "renesas,r8a77990-drif",
> > +				     "renesas,rcar-gen3-drif";
> > +			reg = <0 0xe6f50000 0 0x84>;
> > +			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> > +			clocks = <&cpg CPG_MOD 514>;
> > +			clock-names = "fck";
> > +			dmas = <&dmac1 0x22>, <&dmac2 0x22>;
> > +			dma-names = "rx", "rx";
> > +			power-domains = <&sysc
> > R8A77990_PD_ALWAYS_ON>;
> > +			resets = <&cpg 514>;
> > +			renesas,bonding = <&drif00>;
> > +			status = "disabled";
> > +		};
> > +
> > +		drif10: rif@e6f60000 {
> > +			compatible = "renesas,r8a77990-drif",
> > +				     "renesas,rcar-gen3-drif";
> > +			reg = <0 0xe6f60000 0 0x84>;
> > +			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
> > +			clocks = <&cpg CPG_MOD 513>;
> > +			clock-names = "fck";
> > +			dmas = <&dmac1 0x24>, <&dmac2 0x24>;
> > +			dma-names = "rx", "rx";
> > +			power-domains = <&sysc
> > R8A77990_PD_ALWAYS_ON>;
> > +			resets = <&cpg 513>;
> > +			renesas,bonding = <&drif11>;
> > +			status = "disabled";
> > +		};
> > +
> > +		drif11: rif@e6f70000 {
> > +			compatible = "renesas,r8a77990-drif",
> > +				     "renesas,rcar-gen3-drif";
> > +			reg = <0 0xe6f70000 0 0x84>;
> > +			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
> > +			clocks = <&cpg CPG_MOD 512>;
> > +			clock-names = "fck";
> > +			dmas = <&dmac1 0x26>, <&dmac2 0x26>;
> > +			dma-names = "rx", "rx";
> > +			power-domains = <&sysc
> > R8A77990_PD_ALWAYS_ON>;
> > +			resets = <&cpg 512>;
> > +			renesas,bonding = <&drif10>;
> > +			status = "disabled";
> > +		};
> > +
> > +		drif20: rif@e6f80000 {
> > +			compatible = "renesas,r8a77990-drif",
> > +				     "renesas,rcar-gen3-drif";
> > +			reg = <0 0xe6f80000 0 0x84>;
> > +			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
> > +			clocks = <&cpg CPG_MOD 511>;
> > +			clock-names = "fck";
> > +			dmas = <&dmac0 0x28>;
> > +			dma-names = "rx";
> > +			power-domains = <&sysc
> > R8A77990_PD_ALWAYS_ON>;
> > +			resets = <&cpg 511>;
> > +			renesas,bonding = <&drif21>;
> > +			status = "disabled";
> > +		};
> > +
> > +		drif21: rif@e6f90000 {
> > +			compatible = "renesas,r8a77990-drif",
> > +				     "renesas,rcar-gen3-drif";
> > +			reg = <0 0xe6f90000 0 0x84>;
> > +			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> > +			clocks = <&cpg CPG_MOD 510>;
> > +			clock-names = "fck";
> > +			dmas = <&dmac0 0x2a>;
> > +			dma-names = "rx";
> > +			power-domains = <&sysc
> > R8A77990_PD_ALWAYS_ON>;
> > +			resets = <&cpg 510>;
> > +			renesas,bonding = <&drif20>;
> > +			status = "disabled";
> > +		};
> > +
> > +		drif30: rif@e6fa0000 {
> > +			compatible = "renesas,r8a77990-drif",
> > +				     "renesas,rcar-gen3-drif";
> > +			reg = <0 0xe6fa0000 0 0x84>;
> > +			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> > +			clocks = <&cpg CPG_MOD 509>;
> > +			clock-names = "fck";
> > +			dmas = <&dmac0 0x2c>;
> > +			dma-names = "rx";
> > +			power-domains = <&sysc
> > R8A77990_PD_ALWAYS_ON>;
> > +			resets = <&cpg 509>;
> > +			renesas,bonding = <&drif31>;
> > +			status = "disabled";
> > +		};
> > +
> > +		drif31: rif@e6fb0000 {
> > +			compatible = "renesas,r8a77990-drif",
> > +				     "renesas,rcar-gen3-drif";
> > +			reg = <0 0xe6fb0000 0 0x84>;
> > +			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
> > +			clocks = <&cpg CPG_MOD 508>;
> > +			clock-names = "fck";
> > +			dmas = <&dmac0 0x2e>;
> > +			dma-names = "rx";
> > +			power-domains = <&sysc
> > R8A77990_PD_ALWAYS_ON>;
> > +			resets = <&cpg 508>;
> > +			renesas,bonding = <&drif30>;
> > +			status = "disabled";
> > +		};
> > +
> >  		rcar_sound: sound@ec500000 {
> >  			/*
> >  			 * #sound-dai-cells is required
> > --
> > 2.25.1
Fabrizio Castro Sept. 11, 2020, 3:07 p.m. UTC | #3
Hi Chris,

Thank you for your feedback!

> From: Chris Paterson <Chris.Paterson2@renesas.com>
> Sent: 11 September 2020 15:44
> Subject: RE: [PATCH] arm64: dts: renesas: r8a77990: Add DRIF support
>
> > From: Chris Paterson
> > Sent: 11 September 2020 15:25
> >
> > Hi Fab,
> >
> > > From: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> > > Sent: 11 September 2020 13:13
> > >
> > > Add the DRIF controller nodes for the r8a77990 (a.k.a. R-Car E3).
> > >
> > > Please note that R-Car E3 has register BITCTR located at offset
> > > 0x80 (this register is not available on the r8a77960 and r8a77951,
> > > whose support has already been upstreamed), and even though it is
> > > not dealt with just yet within the driver, we have to keep that
> > > into account with our device tree nodes.
> > >
> > > Also, please note that while testing it has emerged that the
> > > HW User Manual has the wrong DMA details for DRIF2 and DRIF3
> > > on E3, as they are only allowed SYS-DMAC0 rather than SYS-DMAC1
> > > and SYS-DMAC2. An errata addressing this issue will be available
> > > soon.
> > >
> > > Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>
> >
> > Looks okay to me. Thanks for the patch.
>
> Assuming you're going to update the bindings...

Will do.

Thanks,
Fab

>
> > Reviewed-by: Chris Paterson <chris.paterson2@renesas.com>
> >
> > Kind regards, Chris
> >
> > > ---
> > >  arch/arm64/boot/dts/renesas/r8a77990.dtsi | 120
> > > ++++++++++++++++++++++
> > >  1 file changed, 120 insertions(+)
> > >
> > > diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > > b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > > index 1991bdc36792..caeddc2c1a70 100644
> > > --- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > > +++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
> > > @@ -1288,6 +1288,126 @@ vin5csi40: endpoint@2 {
> > >  };
> > >  };
> > >
> > > +drif00: rif@e6f40000 {
> > > +compatible = "renesas,r8a77990-drif",
> > > +     "renesas,rcar-gen3-drif";
> > > +reg = <0 0xe6f40000 0 0x84>;
> > > +interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
> > > +clocks = <&cpg CPG_MOD 515>;
> > > +clock-names = "fck";
> > > +dmas = <&dmac1 0x20>, <&dmac2 0x20>;
> > > +dma-names = "rx", "rx";
> > > +power-domains = <&sysc
> > > R8A77990_PD_ALWAYS_ON>;
> > > +resets = <&cpg 515>;
> > > +renesas,bonding = <&drif01>;
> > > +status = "disabled";
> > > +};
> > > +
> > > +drif01: rif@e6f50000 {
> > > +compatible = "renesas,r8a77990-drif",
> > > +     "renesas,rcar-gen3-drif";
> > > +reg = <0 0xe6f50000 0 0x84>;
> > > +interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
> > > +clocks = <&cpg CPG_MOD 514>;
> > > +clock-names = "fck";
> > > +dmas = <&dmac1 0x22>, <&dmac2 0x22>;
> > > +dma-names = "rx", "rx";
> > > +power-domains = <&sysc
> > > R8A77990_PD_ALWAYS_ON>;
> > > +resets = <&cpg 514>;
> > > +renesas,bonding = <&drif00>;
> > > +status = "disabled";
> > > +};
> > > +
> > > +drif10: rif@e6f60000 {
> > > +compatible = "renesas,r8a77990-drif",
> > > +     "renesas,rcar-gen3-drif";
> > > +reg = <0 0xe6f60000 0 0x84>;
> > > +interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
> > > +clocks = <&cpg CPG_MOD 513>;
> > > +clock-names = "fck";
> > > +dmas = <&dmac1 0x24>, <&dmac2 0x24>;
> > > +dma-names = "rx", "rx";
> > > +power-domains = <&sysc
> > > R8A77990_PD_ALWAYS_ON>;
> > > +resets = <&cpg 513>;
> > > +renesas,bonding = <&drif11>;
> > > +status = "disabled";
> > > +};
> > > +
> > > +drif11: rif@e6f70000 {
> > > +compatible = "renesas,r8a77990-drif",
> > > +     "renesas,rcar-gen3-drif";
> > > +reg = <0 0xe6f70000 0 0x84>;
> > > +interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
> > > +clocks = <&cpg CPG_MOD 512>;
> > > +clock-names = "fck";
> > > +dmas = <&dmac1 0x26>, <&dmac2 0x26>;
> > > +dma-names = "rx", "rx";
> > > +power-domains = <&sysc
> > > R8A77990_PD_ALWAYS_ON>;
> > > +resets = <&cpg 512>;
> > > +renesas,bonding = <&drif10>;
> > > +status = "disabled";
> > > +};
> > > +
> > > +drif20: rif@e6f80000 {
> > > +compatible = "renesas,r8a77990-drif",
> > > +     "renesas,rcar-gen3-drif";
> > > +reg = <0 0xe6f80000 0 0x84>;
> > > +interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
> > > +clocks = <&cpg CPG_MOD 511>;
> > > +clock-names = "fck";
> > > +dmas = <&dmac0 0x28>;
> > > +dma-names = "rx";
> > > +power-domains = <&sysc
> > > R8A77990_PD_ALWAYS_ON>;
> > > +resets = <&cpg 511>;
> > > +renesas,bonding = <&drif21>;
> > > +status = "disabled";
> > > +};
> > > +
> > > +drif21: rif@e6f90000 {
> > > +compatible = "renesas,r8a77990-drif",
> > > +     "renesas,rcar-gen3-drif";
> > > +reg = <0 0xe6f90000 0 0x84>;
> > > +interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
> > > +clocks = <&cpg CPG_MOD 510>;
> > > +clock-names = "fck";
> > > +dmas = <&dmac0 0x2a>;
> > > +dma-names = "rx";
> > > +power-domains = <&sysc
> > > R8A77990_PD_ALWAYS_ON>;
> > > +resets = <&cpg 510>;
> > > +renesas,bonding = <&drif20>;
> > > +status = "disabled";
> > > +};
> > > +
> > > +drif30: rif@e6fa0000 {
> > > +compatible = "renesas,r8a77990-drif",
> > > +     "renesas,rcar-gen3-drif";
> > > +reg = <0 0xe6fa0000 0 0x84>;
> > > +interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
> > > +clocks = <&cpg CPG_MOD 509>;
> > > +clock-names = "fck";
> > > +dmas = <&dmac0 0x2c>;
> > > +dma-names = "rx";
> > > +power-domains = <&sysc
> > > R8A77990_PD_ALWAYS_ON>;
> > > +resets = <&cpg 509>;
> > > +renesas,bonding = <&drif31>;
> > > +status = "disabled";
> > > +};
> > > +
> > > +drif31: rif@e6fb0000 {
> > > +compatible = "renesas,r8a77990-drif",
> > > +     "renesas,rcar-gen3-drif";
> > > +reg = <0 0xe6fb0000 0 0x84>;
> > > +interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
> > > +clocks = <&cpg CPG_MOD 508>;
> > > +clock-names = "fck";
> > > +dmas = <&dmac0 0x2e>;
> > > +dma-names = "rx";
> > > +power-domains = <&sysc
> > > R8A77990_PD_ALWAYS_ON>;
> > > +resets = <&cpg 508>;
> > > +renesas,bonding = <&drif30>;
> > > +status = "disabled";
> > > +};
> > > +
> > >  rcar_sound: sound@ec500000 {
> > >  /*
> > >   * #sound-dai-cells is required
> > > --
> > > 2.25.1



Renesas Electronics Europe GmbH, Geschaeftsfuehrer/President: Carsten Jauch, Sitz der Gesellschaft/Registered office: Duesseldorf, Arcadiastrasse 10, 40472 Duesseldorf, Germany, Handelsregister/Commercial Register: Duesseldorf, HRB 3708 USt-IDNr./Tax identification no.: DE 119353406 WEEE-Reg.-Nr./WEEE reg. no.: DE 14978647
Geert Uytterhoeven Sept. 14, 2020, 12:22 p.m. UTC | #4
On Fri, Sep 11, 2020 at 2:13 PM Fabrizio Castro
<fabrizio.castro.jz@renesas.com> wrote:
> Add the DRIF controller nodes for the r8a77990 (a.k.a. R-Car E3).
>
> Please note that R-Car E3 has register BITCTR located at offset
> 0x80 (this register is not available on the r8a77960 and r8a77951,
> whose support has already been upstreamed), and even though it is
> not dealt with just yet within the driver, we have to keep that
> into account with our device tree nodes.

Indeed.

> Also, please note that while testing it has emerged that the
> HW User Manual has the wrong DMA details for DRIF2 and DRIF3
> on E3, as they are only allowed SYS-DMAC0 rather than SYS-DMAC1
> and SYS-DMAC2. An errata addressing this issue will be available
> soon.
>
> Signed-off-by: Fabrizio Castro <fabrizio.castro.jz@renesas.com>

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
i.e. will queue in renesas-devel for v5.10.

Gr{oetje,eeting}s,

                        Geert
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/renesas/r8a77990.dtsi b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
index 1991bdc36792..caeddc2c1a70 100644
--- a/arch/arm64/boot/dts/renesas/r8a77990.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a77990.dtsi
@@ -1288,6 +1288,126 @@  vin5csi40: endpoint@2 {
 			};
 		};
 
+		drif00: rif@e6f40000 {
+			compatible = "renesas,r8a77990-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f40000 0 0x84>;
+			interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 515>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x20>, <&dmac2 0x20>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+			resets = <&cpg 515>;
+			renesas,bonding = <&drif01>;
+			status = "disabled";
+		};
+
+		drif01: rif@e6f50000 {
+			compatible = "renesas,r8a77990-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f50000 0 0x84>;
+			interrupts = <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 514>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x22>, <&dmac2 0x22>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+			resets = <&cpg 514>;
+			renesas,bonding = <&drif00>;
+			status = "disabled";
+		};
+
+		drif10: rif@e6f60000 {
+			compatible = "renesas,r8a77990-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f60000 0 0x84>;
+			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 513>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x24>, <&dmac2 0x24>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+			resets = <&cpg 513>;
+			renesas,bonding = <&drif11>;
+			status = "disabled";
+		};
+
+		drif11: rif@e6f70000 {
+			compatible = "renesas,r8a77990-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f70000 0 0x84>;
+			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 512>;
+			clock-names = "fck";
+			dmas = <&dmac1 0x26>, <&dmac2 0x26>;
+			dma-names = "rx", "rx";
+			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+			resets = <&cpg 512>;
+			renesas,bonding = <&drif10>;
+			status = "disabled";
+		};
+
+		drif20: rif@e6f80000 {
+			compatible = "renesas,r8a77990-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f80000 0 0x84>;
+			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 511>;
+			clock-names = "fck";
+			dmas = <&dmac0 0x28>;
+			dma-names = "rx";
+			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+			resets = <&cpg 511>;
+			renesas,bonding = <&drif21>;
+			status = "disabled";
+		};
+
+		drif21: rif@e6f90000 {
+			compatible = "renesas,r8a77990-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6f90000 0 0x84>;
+			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 510>;
+			clock-names = "fck";
+			dmas = <&dmac0 0x2a>;
+			dma-names = "rx";
+			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+			resets = <&cpg 510>;
+			renesas,bonding = <&drif20>;
+			status = "disabled";
+		};
+
+		drif30: rif@e6fa0000 {
+			compatible = "renesas,r8a77990-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6fa0000 0 0x84>;
+			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 509>;
+			clock-names = "fck";
+			dmas = <&dmac0 0x2c>;
+			dma-names = "rx";
+			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+			resets = <&cpg 509>;
+			renesas,bonding = <&drif31>;
+			status = "disabled";
+		};
+
+		drif31: rif@e6fb0000 {
+			compatible = "renesas,r8a77990-drif",
+				     "renesas,rcar-gen3-drif";
+			reg = <0 0xe6fb0000 0 0x84>;
+			interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
+			clocks = <&cpg CPG_MOD 508>;
+			clock-names = "fck";
+			dmas = <&dmac0 0x2e>;
+			dma-names = "rx";
+			power-domains = <&sysc R8A77990_PD_ALWAYS_ON>;
+			resets = <&cpg 508>;
+			renesas,bonding = <&drif30>;
+			status = "disabled";
+		};
+
 		rcar_sound: sound@ec500000 {
 			/*
 			 * #sound-dai-cells is required