arm64: dts: qcom: qcm2290: Hook up MPM
authorKonrad Dybcio <konrad.dybcio@linaro.org>
Fri, 15 Dec 2023 00:01:10 +0000 (01:01 +0100)
committerBjorn Andersson <andersson@kernel.org>
Sun, 17 Dec 2023 05:19:15 +0000 (23:19 -0600)
Wire up MPM and the interrupts it provides.

Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20231215-topic-mpm_dt-v1-3-c6636fc75ce3@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/qcm2290.dtsi

index ce04d0acdede217acdaefe8a14f7900547814a0a..0911fb08ed6327f75d6e2d627324bffef24dec22 100644 (file)
 
                CLUSTER_PD: power-domain-cpu-cluster {
                        #power-domain-cells = <0>;
+                       power-domains = <&mpm>;
                        domain-idle-states = <&CLUSTER_SLEEP>;
                };
        };
                                };
                        };
                };
+
+               mpm: interrupt-controller {
+                       compatible = "qcom,mpm";
+                       qcom,rpm-msg-ram = <&apss_mpm>;
+                       interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
+                       mboxes = <&apcs_glb 1>;
+                       interrupt-controller;
+                       #interrupt-cells = <2>;
+                       #power-domain-cells = <0>;
+                       interrupt-parent = <&intc>;
+                       qcom,mpm-pin-count = <96>;
+                       qcom,mpm-pin-map = <2 275>,  /* TSENS0 uplow */
+                                          <5 296>,  /* Soundwire master_irq */
+                                          <12 422>, /* DWC3 ss_phy_irq */
+                                          <24 79>,  /* Soundwire wake_irq */
+                                          <86 183>, /* MPM wake, SPMI */
+                                          <90 260>; /* QUSB2_PHY DP+DM */
+               };
        };
 
        reserved_memory: reserved-memory {
                        interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>;
                        gpio-controller;
                        gpio-ranges = <&tlmm 0 0 127>;
+                       wakeup-parent = <&mpm>;
                        #gpio-cells = <2>;
                        interrupt-controller;
                        #interrupt-cells = <2>;
                                    "obsrvr",
                                    "intr",
                                    "cnfg";
-                       interrupts = <GIC_SPI 183 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&mpm 86 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "periph_irq";
                        qcom,ee = <0>;
                        qcom,channel = <0>;
                        reg = <0x0 0x04411000 0x0 0x1ff>,
                              <0x0 0x04410000 0x0 0x8>;
                        #qcom,sensors = <10>;
-                       interrupts = <GIC_SPI 275 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts-extended = <&mpm 2 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&intc GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
                        interrupt-names = "uplow", "critical";
                        #thermal-sensor-cells = <1>;
                };
                };
 
                rpm_msg_ram: sram@45f0000 {
-                       compatible = "qcom,rpm-msg-ram";
+                       compatible = "qcom,rpm-msg-ram", "mmio-sram";
                        reg = <0x0 0x045f0000 0x0 0x7000>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x0 0x045f0000 0x7000>;
+
+                       apss_mpm: sram@1b8 {
+                               reg = <0x1b8 0x48>;
+                       };
                };
 
                sram@4690000 {
                usb: usb@4ef8800 {
                        compatible = "qcom,qcm2290-dwc3", "qcom,dwc3";
                        reg = <0x0 0x04ef8800 0x0 0x400>;
-                       interrupts = <GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
-                                    <GIC_SPI 422 IRQ_TYPE_LEVEL_HIGH>;
-                       interrupt-names = "hs_phy_irq", "ss_phy_irq";
+                       interrupts-extended = <&intc GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
+                                             <&mpm 12 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "hs_phy_irq",
+                                         "ss_phy_irq";
 
                        clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>,
                                 <&gcc GCC_USB30_PRIM_MASTER_CLK>,