mbox series

[v2,0/2] arm64: dts: qcom: sm6125: Enable GPI DMA

Message ID 20221216231528.1268447-1-marijn.suijten@somainline.org
Headers show
Series arm64: dts: qcom: sm6125: Enable GPI DMA | expand

Message

Marijn Suijten Dec. 16, 2022, 11:15 p.m. UTC
Enable GPI DMA on SM6125 by using the new sdm845 compatible with
ee_offset 0.

Changes since v1:
- Drop driver patch in favour of using generic qcom,sdm845-gpi-dma
  compatible [1];
- Replace status = "okay" with "disabled";
- Use 3 instead of 5 dma cells;
- Reorder properties;
- Explicitly depend on APPS SMMU series to have apps_smmu label available.

v1: https://lore.kernel.org/all/20221001185526.494095-1-martin.botka@somainline.org/T/#u

Depends on:
- SM6125 APPS SMMU: https://lore.kernel.org/linux-arm-msm/20221216215819.1164973-1-marijn.suijten@somainline.org/T/#u

[1]: https://lore.kernel.org/all/20220927014846.32892-2-mailingradian@gmail.com/

Martin Botka (2):
  dt-bindings: dma: gpi: Document SM6125 compatible
  arm64: dts: qcom: sm6125: Add GPI DMA nodes

 .../devicetree/bindings/dma/qcom,gpi.yaml     |  1 +
 arch/arm64/boot/dts/qcom/sm6125.dtsi          | 37 +++++++++++++++++++
 2 files changed, 38 insertions(+)

--
2.39.0

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