diff mbox series

[v2,2/2] arm64: dts: qcom: sm6125: Add GPI DMA nodes

Message ID 20221216231528.1268447-3-marijn.suijten@somainline.org (mailing list archive)
State Superseded
Headers show
Series arm64: dts: qcom: sm6125: Enable GPI DMA | expand

Commit Message

Marijn Suijten Dec. 16, 2022, 11:15 p.m. UTC
From: Martin Botka <martin.botka@somainline.org>

Add nodes for GPI DMA hosts on SM6125.

Signed-off-by: Martin Botka <martin.botka@somainline.org>
[Marijn: reorder properties, use sdm845 fallback compatible, disable by
 default, use 3 instead of 5 dma cells]
Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
---
 arch/arm64/boot/dts/qcom/sm6125.dtsi | 37 ++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

Comments

Konrad Dybcio Dec. 17, 2022, 2:35 p.m. UTC | #1
On 17.12.2022 00:15, Marijn Suijten wrote:
> From: Martin Botka <martin.botka@somainline.org>
> 
> Add nodes for GPI DMA hosts on SM6125.
> 
> Signed-off-by: Martin Botka <martin.botka@somainline.org>
> [Marijn: reorder properties, use sdm845 fallback compatible, disable by
>  default, use 3 instead of 5 dma cells]
> Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
> ---
>  arch/arm64/boot/dts/qcom/sm6125.dtsi | 37 ++++++++++++++++++++++++++++
>  1 file changed, 37 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sm6125.dtsi b/arch/arm64/boot/dts/qcom/sm6125.dtsi
> index a205121ab4a7..abcd634c4f6d 100644
> --- a/arch/arm64/boot/dts/qcom/sm6125.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm6125.dtsi
> @@ -5,6 +5,7 @@
>  
>  #include <dt-bindings/clock/qcom,gcc-sm6125.h>
>  #include <dt-bindings/clock/qcom,rpmcc.h>
> +#include <dt-bindings/dma/qcom-gpi.h>
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/interrupt-controller/arm-gic.h>
>  #include <dt-bindings/power/qcom-rpmpd.h>
> @@ -510,6 +511,42 @@ sdhc_2: mmc@4784000 {
>  			status = "disabled";
>  		};
>  
> +		gpi_dma0: dma-controller@4a00000 {
> +			compatible = "qcom,sm6125-gpi-dma", "qcom,sdm845-gpi-dma";
> +			reg = <0x04a00000 0x60000>;
> +			interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
> +			dma-channels = <8>;
> +			dma-channel-mask = <0x1f>;
> +			iommus = <&apps_smmu 0x0136 0x0>;
The stream id does not need the leading zero.
You made the mask a decimal zero in the previous patchset, please
decide on one convention. Masks are generally more useful as hex,
but for zero values I suppose zero is less noise for the same thing..

The DMA nodes however, look good otherwise.

Konrad
> +			#dma-cells = <3>;
> +			status = "disabled";
> +		};
> +
> +		gpi_dma1: dma-controller@4c00000 {
> +			compatible = "qcom,sm6125-gpi-dma", "qcom,sdm845-gpi-dma";
> +			reg = <0x04c00000 0x60000>;
> +			interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
> +				     <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>;
> +			dma-channels = <8>;
> +			dma-channel-mask = <0x0f>;
> +			iommus = <&apps_smmu 0x0156 0x0>;
> +			#dma-cells = <3>;
> +			status = "disabled";
> +		};
> +
>  		usb3: usb@4ef8800 {
>  			compatible = "qcom,sm6125-dwc3", "qcom,dwc3";
>  			reg = <0x04ef8800 0x400>;
Marijn Suijten Dec. 18, 2022, 10:23 a.m. UTC | #2
On 2022-12-17 15:35:18, Konrad Dybcio wrote:
> 
> 
> On 17.12.2022 00:15, Marijn Suijten wrote:
> > From: Martin Botka <martin.botka@somainline.org>
> > 
> > Add nodes for GPI DMA hosts on SM6125.
> > 
> > Signed-off-by: Martin Botka <martin.botka@somainline.org>
> > [Marijn: reorder properties, use sdm845 fallback compatible, disable by
> >  default, use 3 instead of 5 dma cells]
> > Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
> > ---
> >  arch/arm64/boot/dts/qcom/sm6125.dtsi | 37 ++++++++++++++++++++++++++++
> >  1 file changed, 37 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/qcom/sm6125.dtsi b/arch/arm64/boot/dts/qcom/sm6125.dtsi
> > index a205121ab4a7..abcd634c4f6d 100644
> > --- a/arch/arm64/boot/dts/qcom/sm6125.dtsi
> > +++ b/arch/arm64/boot/dts/qcom/sm6125.dtsi
> > @@ -5,6 +5,7 @@
> >  
> >  #include <dt-bindings/clock/qcom,gcc-sm6125.h>
> >  #include <dt-bindings/clock/qcom,rpmcc.h>
> > +#include <dt-bindings/dma/qcom-gpi.h>
> >  #include <dt-bindings/gpio/gpio.h>
> >  #include <dt-bindings/interrupt-controller/arm-gic.h>
> >  #include <dt-bindings/power/qcom-rpmpd.h>
> > @@ -510,6 +511,42 @@ sdhc_2: mmc@4784000 {
> >  			status = "disabled";
> >  		};
> >  
> > +		gpi_dma0: dma-controller@4a00000 {
> > +			compatible = "qcom,sm6125-gpi-dma", "qcom,sdm845-gpi-dma";
> > +			reg = <0x04a00000 0x60000>;
> > +			interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
> > +				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
> > +				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
> > +				     <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
> > +				     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
> > +				     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
> > +				     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
> > +				     <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
> > +			dma-channels = <8>;
> > +			dma-channel-mask = <0x1f>;
> > +			iommus = <&apps_smmu 0x0136 0x0>;
> The stream id does not need the leading zero.

Good catch!  Will clean this up for V2.

> You made the mask a decimal zero in the previous patchset, please
> decide on one convention. Masks are generally more useful as hex,
> but for zero values I suppose zero is less noise for the same thing..

The _vast majority_ of qcom dts uses 0x0, I'll fix that in the previous
patch series.  Looks like I did even clean that up when directly
transplanting that patch ("Add apps_smmu with streamID to SDHCI 1/2
nodes") to sm6350 even...

> The DMA nodes however, look good otherwise.

And they work great, too!

- Marijn
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sm6125.dtsi b/arch/arm64/boot/dts/qcom/sm6125.dtsi
index a205121ab4a7..abcd634c4f6d 100644
--- a/arch/arm64/boot/dts/qcom/sm6125.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6125.dtsi
@@ -5,6 +5,7 @@ 
 
 #include <dt-bindings/clock/qcom,gcc-sm6125.h>
 #include <dt-bindings/clock/qcom,rpmcc.h>
+#include <dt-bindings/dma/qcom-gpi.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
@@ -510,6 +511,42 @@  sdhc_2: mmc@4784000 {
 			status = "disabled";
 		};
 
+		gpi_dma0: dma-controller@4a00000 {
+			compatible = "qcom,sm6125-gpi-dma", "qcom,sdm845-gpi-dma";
+			reg = <0x04a00000 0x60000>;
+			interrupts = <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 338 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 339 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 340 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 341 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 342 IRQ_TYPE_LEVEL_HIGH>;
+			dma-channels = <8>;
+			dma-channel-mask = <0x1f>;
+			iommus = <&apps_smmu 0x0136 0x0>;
+			#dma-cells = <3>;
+			status = "disabled";
+		};
+
+		gpi_dma1: dma-controller@4c00000 {
+			compatible = "qcom,sm6125-gpi-dma", "qcom,sdm845-gpi-dma";
+			reg = <0x04c00000 0x60000>;
+			interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 315 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 316 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 317 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 318 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 319 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 320 IRQ_TYPE_LEVEL_HIGH>,
+				     <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>;
+			dma-channels = <8>;
+			dma-channel-mask = <0x0f>;
+			iommus = <&apps_smmu 0x0156 0x0>;
+			#dma-cells = <3>;
+			status = "disabled";
+		};
+
 		usb3: usb@4ef8800 {
 			compatible = "qcom,sm6125-dwc3", "qcom,dwc3";
 			reg = <0x04ef8800 0x400>;