On 8.06.2023 09:10, Stephan Gerhold wrote: > 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. > > Signed-off-by: Stephan Gerhold <stephan@xxxxxxxxxxx> > --- Reviewed-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> Konrad > arch/arm/boot/dts/qcom-apq8084.dtsi | 6 ++--- > arch/arm/boot/dts/qcom-msm8226.dtsi | 38 ++++++++++++++++---------------- > arch/arm/boot/dts/qcom-msm8974.dtsi | 44 ++++++++++++++++++------------------- > 3 files changed, 44 insertions(+), 44 deletions(-) > > diff --git a/arch/arm/boot/dts/qcom-apq8084.dtsi b/arch/arm/boot/dts/qcom-apq8084.dtsi > index 8f178bc87e1d..2b1f9d0fb510 100644 > --- a/arch/arm/boot/dts/qcom-apq8084.dtsi > +++ b/arch/arm/boot/dts/qcom-apq8084.dtsi > @@ -784,10 +784,10 @@ spmi_bus: spmi@fc4cf000 { > }; > }; > > - 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>; > diff --git a/arch/arm/boot/dts/qcom-msm8226.dtsi b/arch/arm/boot/dts/qcom-msm8226.dtsi > index a3a9162e9c28..a3e8d023d0e6 100644 > --- a/arch/arm/boot/dts/qcom-msm8226.dtsi > +++ b/arch/arm/boot/dts/qcom-msm8226.dtsi > @@ -53,26 +53,10 @@ pmu { > 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>; > @@ -120,6 +104,22 @@ rpmpd_opp_super_turbo: opp6 { > }; > }; > > + 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"; > > diff --git a/arch/arm/boot/dts/qcom-msm8974.dtsi b/arch/arm/boot/dts/qcom-msm8974.dtsi > index 58e144957c5d..0a5b5ecb5dfa 100644 > --- a/arch/arm/boot/dts/qcom-msm8974.dtsi > +++ b/arch/arm/boot/dts/qcom-msm8974.dtsi > @@ -113,6 +113,28 @@ pmu { > 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>; > @@ -293,28 +315,6 @@ wcnss_smsm: wcnss@7 { > }; > }; > > - 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>; >