ARM: dts: qcom: Add rpm-proc node for SMD platforms
authorStephan Gerhold <stephan@gerhold.net>
Thu, 15 Jun 2023 16:50:45 +0000 (18:50 +0200)
committerBjorn Andersson <andersson@kernel.org>
Fri, 14 Jul 2023 05:25:21 +0000 (22:25 -0700)
Rather than having the RPM SMD channels as the only child of a dummy
SMD node, switch to representing the RPM as remoteproc like all the
other remoteprocs (WCNSS, modem DSP).

This allows assigning additional subdevices to it like the MPM
interrupt-controller or rpm-master-stats.

Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Link: https://lore.kernel.org/r/20230531-rpm-rproc-v3-12-a07dcdefd918@gerhold.net
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm/boot/dts/qcom/qcom-apq8084.dtsi
arch/arm/boot/dts/qcom/qcom-msm8226.dtsi
arch/arm/boot/dts/qcom/qcom-msm8974.dtsi

index 8f178bc..2b1f9d0 100644 (file)
                };
        };
 
-       smd {
-               compatible = "qcom,smd";
+       rpm: remoteproc {
+               compatible = "qcom,apq8084-rpm-proc", "qcom,rpm-proc";
 
-               rpm {
+               smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
                        qcom,ipc = <&apcs 8 0>;
                        qcom,smd-edge = <15>;
index b6ae4b7..44f3f01 100644 (file)
                                         IRQ_TYPE_LEVEL_HIGH)>;
        };
 
-       reserved-memory {
-               #address-cells = <1>;
-               #size-cells = <1>;
-               ranges;
-
-               smem_region: smem@3000000 {
-                       reg = <0x3000000 0x100000>;
-                       no-map;
-               };
-
-               adsp_region: adsp@dc00000 {
-                       reg = <0x0dc00000 0x1900000>;
-                       no-map;
-               };
-       };
-
-       smd {
-               compatible = "qcom,smd";
+       rpm: remoteproc {
+               compatible = "qcom,msm8226-rpm-proc", "qcom,rpm-proc";
 
-               rpm {
+               smd-edge {
                        interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
                        qcom,ipc = <&apcs 8 0>;
                        qcom,smd-edge = <15>;
                };
        };
 
+       reserved-memory {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               ranges;
+
+               smem_region: smem@3000000 {
+                       reg = <0x3000000 0x100000>;
+                       no-map;
+               };
+
+               adsp_region: adsp@dc00000 {
+                       reg = <0x0dc00000 0x1900000>;
+                       no-map;
+               };
+       };
+
        smem {
                compatible = "qcom,smem";
 
index aeca504..706fef5 100644 (file)
                interrupts = <GIC_PPI 7 0xf04>;
        };
 
+       rpm: remoteproc {
+               compatible = "qcom,msm8974-rpm-proc", "qcom,rpm-proc";
+
+               smd-edge {
+                       interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
+                       qcom,ipc = <&apcs 8 0>;
+                       qcom,smd-edge = <15>;
+
+                       rpm_requests: rpm-requests {
+                               compatible = "qcom,rpm-msm8974";
+                               qcom,smd-channels = "rpm_requests";
+
+                               rpmcc: clock-controller {
+                                       compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
+                                       #clock-cells = <1>;
+                                       clocks = <&xo_board>;
+                                       clock-names = "xo";
+                               };
+                       };
+               };
+       };
+
        reserved-memory {
                #address-cells = <1>;
                #size-cells = <1>;
                };
        };
 
-       smd {
-               compatible = "qcom,smd";
-
-               rpm {
-                       interrupts = <GIC_SPI 168 IRQ_TYPE_EDGE_RISING>;
-                       qcom,ipc = <&apcs 8 0>;
-                       qcom,smd-edge = <15>;
-
-                       rpm_requests: rpm-requests {
-                               compatible = "qcom,rpm-msm8974";
-                               qcom,smd-channels = "rpm_requests";
-
-                               rpmcc: clock-controller {
-                                       compatible = "qcom,rpmcc-msm8974", "qcom,rpmcc";
-                                       #clock-cells = <1>;
-                                       clocks = <&xo_board>;
-                                       clock-names = "xo";
-                               };
-                       };
-               };
-       };
-
        soc: soc {
                #address-cells = <1>;
                #size-cells = <1>;