Re: [PATCH 2/2] arm64: dts: qcom: eliza: Add QUPv3, GPI DMA, SDHCI and LLCC nodes

From: Abel Vesa

Date: Fri May 15 2026 - 08:53:08 EST


On 26-05-15 11:10:28, Konrad Dybcio wrote:
> On 5/13/26 2:33 PM, Abel Vesa wrote:
> > Describe the missing Eliza SoC nodes for the QUPv3 WRAP1 and WRAP2 serial
> > engines, add the matching GPI DMA controllers, the SDHCI controllers and
> > the LLCC system cache controller.
> >
> > Also add the TLMM pinctrl states for the QUPv3 serial engines and the
> > SD card/eMMC interfaces, plus OPP tables for the SDHCI controllers.
> >
> > Signed-off-by: Abel Vesa <abel.vesa@xxxxxxxxxxxxxxxx>
> > ---
>
> [...]
>
> > + gpi_dma1: dma-controller@a00000 {
> > + compatible = "qcom,eliza-gpi-dma", "qcom,sm6350-gpi-dma";
> > + reg = <0x0 0x00a00000 0x0 0x60000>;
> > +
> > + interrupts = <GIC_SPI 279 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 280 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 281 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 293 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 294 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 295 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 296 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 297 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 298 IRQ_TYPE_LEVEL_HIGH>;
> > +
> > + dma-channels = <12>;
> > + dma-channel-mask = <0x3f>;
> > + #dma-cells = <3>;
> > +
> > + iommus = <&apps_smmu 0xb6 0x0>;
> > + dma-coherent;
> > +
> > + status = "disabled";
>
> Let's keep the GPIs enabled

Will do.

>
> [...]
>
> > + sdhc_1: mmc@f44000 {
> > + compatible = "qcom,eliza-sdhci", "qcom,sdhci-msm-v5";
> > + reg = <0x0 0x00f44000 0x0 0x1000>,
> > + <0x0 0x00f45000 0x0 0x1000>,
> > + <0x0 0x00f48000 0x0 0x8000>;
> > + reg-names = "hc",
> > + "cqhci",
> > + "ice";
>
> This should be a separate node

Will drop for now. Will be added later as a separate node.

>
> > +
> > + interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>,
> > + <GIC_SPI 417 IRQ_TYPE_LEVEL_HIGH>;
> > + interrupt-names = "hc_irq",
> > + "pwr_irq";
> > +
> > + clocks = <&gcc GCC_SDCC1_AHB_CLK>,
> > + <&gcc GCC_SDCC1_APPS_CLK>,
> > + <&rpmhcc RPMH_CXO_CLK>;
> > + clock-names = "iface",
> > + "core",
> > + "xo";
> > +
> > + interconnects = <&aggre2_noc MASTER_SDCC_1 QCOM_ICC_TAG_ALWAYS
> > + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>,
> > + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY
> > + &config_noc SLAVE_SDCC_1 QCOM_ICC_TAG_ACTIVE_ONLY>;
> > + interconnect-names = "sdhc-ddr",
> > + "cpu-sdhc";
> > +
> > + power-domains = <&rpmhpd RPMHPD_CX>;
> > + operating-points-v2 = <&sdhc1_opp_table>;
> > +
> > + qcom,dll-config = <0x000f44ec>;
> > + qcom,ddr-config = <0x80040868>;
> > +
> > + iommus = <&apps_smmu 0x520 0x0>;
> > + dma-coherent;
> > +
> > + bus-width = <4>;
>
> That's definitely 8

Yes.

>
> > + max-sd-hs-hz = <37500000>;
>
> This should be fixed in Eliza

Will drop.

>
> [...]
>
> > + max-sd-hs-hz = <37500000>;
>
> ditto for sdcc2

Will drop.

>
> > +
> > + resets = <&gcc GCC_SDCC2_BCR>;
> > +
> > + status = "disabled";
> > +
> > + sdhc2_opp_table: opp-table {
> > + compatible = "operating-points-v2";
> > +
> > + opp-100000000 {
> > + opp-hz = /bits/ 64 <100000000>;
>
> The clock plan says 100, but the SDC doc says 50. What does
> downstream set here?

Downstream says 100 and 384 for sdhc1, and then 100 and 202 for sdhc2.

Thanks for reviewing!