The Resource Power Manager (RPM) currently does not have a dedicated device tree node that represents the remoteproc/subsystem. The functionality exposed through the SMD/GLINK channels is described in top-level nodes of the device tree. This makes it hard to group other functionality provided by the RPM together in the device tree. This series adds a single top-level remoteproc-rpm/rpm-proc device tree node that groups all RPM functionality together. Signed-off-by: Stephan Gerhold <stephan@xxxxxxxxxxx> --- Changes in v2: - Pick up review/test tags from Konrad and Krzysztof - Rename "remoteproc-rpm" -> "remoteproc" everywhere (Krzysztof/Konrad) - "dt-bindings: remoteproc: Add Qualcomm RPM processor/subsystem" - Squash with other dt-bindings changes to have atomic refactoring (Krzysztof) - Add diagrams from discussion as clarification - "soc: qcom: smem: Add qcom_smem_is_available()" - Add return documentation in qcom_smem_is_available() (Konrad) - "soc: qcom: Add RPM processor/subsystem driver" - Add missing of_node_put(), fix children (Konrad) - Add depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n to fix build error in weird kernel configurations (kernel test robot) - Link to v1: https://lore.kernel.org/r/20230531-rpm-rproc-v1-0-e0a3b6de1f14@xxxxxxxxxxx --- Stephan Gerhold (12): dt-bindings soc: qcom: smd-rpm: Fix sort order dt-bindings: soc: qcom: smd-rpm: Add MSM8909 to qcom,smd-channels dt-bindings: soc: qcom: smd-rpm: Add some more compatibles soc: qcom: smd-rpm: Match rpmsg channel instead of compatible dt-bindings: remoteproc: Add Qualcomm RPM processor/subsystem soc: qcom: smem: Add qcom_smem_is_available() rpmsg: qcom_smd: Use qcom_smem_is_available() soc: qcom: Add RPM processor/subsystem driver arm64: dts: qcom: Add rpm-proc node for SMD platforms arm64: dts: qcom: Add rpm-proc node for GLINK gplatforms ARM: dts: qcom: Add rpm-proc node for SMD platforms ARM: dts: qcom: apq8064: Drop redundant /smd node .../bindings/remoteproc/qcom,rpm-proc.yaml | 171 +++++++++++++++++++++ .../devicetree/bindings/soc/qcom/qcom,smd-rpm.yaml | 23 ++- .../devicetree/bindings/soc/qcom/qcom,smd.yaml | 7 + arch/arm/boot/dts/qcom-apq8064.dtsi | 40 ----- arch/arm/boot/dts/qcom-apq8084.dtsi | 6 +- arch/arm/boot/dts/qcom-msm8226.dtsi | 38 ++--- arch/arm/boot/dts/qcom-msm8974.dtsi | 44 +++--- arch/arm64/boot/dts/qcom/ipq6018.dtsi | 48 +++--- arch/arm64/boot/dts/qcom/ipq9574.dtsi | 28 ++-- arch/arm64/boot/dts/qcom/msm8916.dtsi | 6 +- arch/arm64/boot/dts/qcom/msm8939.dtsi | 112 +++++++------- arch/arm64/boot/dts/qcom/msm8953.dtsi | 136 ++++++++-------- arch/arm64/boot/dts/qcom/msm8976.dtsi | 152 +++++++++--------- arch/arm64/boot/dts/qcom/msm8994.dtsi | 99 ++++++------ arch/arm64/boot/dts/qcom/msm8996.dtsi | 113 +++++++------- arch/arm64/boot/dts/qcom/msm8998.dtsi | 98 ++++++------ arch/arm64/boot/dts/qcom/qcm2290.dtsi | 126 +++++++-------- arch/arm64/boot/dts/qcom/qcs404.dtsi | 152 +++++++++--------- arch/arm64/boot/dts/qcom/sdm630.dtsi | 132 ++++++++-------- arch/arm64/boot/dts/qcom/sm6115.dtsi | 128 +++++++-------- arch/arm64/boot/dts/qcom/sm6125.dtsi | 140 +++++++++-------- arch/arm64/boot/dts/qcom/sm6375.dtsi | 126 +++++++-------- drivers/rpmsg/qcom_smd.c | 10 +- drivers/soc/qcom/Kconfig | 1 + drivers/soc/qcom/Makefile | 2 +- drivers/soc/qcom/rpm-proc.c | 77 ++++++++++ drivers/soc/qcom/smd-rpm.c | 35 ++--- drivers/soc/qcom/smem.c | 11 ++ include/linux/soc/qcom/smem.h | 1 + 29 files changed, 1161 insertions(+), 901 deletions(-) --- base-commit: 8d5a57ea6a0b1722725170e32e511701ca7c454c change-id: 20230531-rpm-rproc-758364839cdd Best regards, -- Stephan Gerhold <stephan@xxxxxxxxxxx>