summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt36
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2.dts14
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts10
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi20
4 files changed, 79 insertions, 1 deletions
diff --git a/Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt b/Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt
index 27d710274ec3..855a00b5d4b3 100644
--- a/Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt
+++ b/Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt
@@ -1,11 +1,25 @@
i.MX RPMSG platform implementations
Required properties:
-- compatible : "fsl,imx7d-rpmsg", "fsl,imx6sx-rpmsg"
+- compatible : "fsl,imx7d-rpmsg", "fsl,imx6sx-rpmsg".
+ "fsl,rpmsg-bus", "simple-bus", "fsl,imx8qxp-rpmsg".
- vdev-nums : The number of the remote virtual devices.
- reg : The reserved DDR phisical memory used to store
vring descriptors.
+
+=====================================================================
+message unit module for RPMSG
+
+- mu_rpmsg : The message unit module used to do the communications
+ between the asymmetric cores.
+- compatible : "fsl,imx8-mu", "fsl,imx6sx-mu"
+- reg : Should contain MU registers location and length.
+- interrupts : interrupt mapping for RPMSG MU IRQ
+- interrupt-parent : A single value that points to the interrupt
+ parent to which the child domain is being mapped.
+ Value must be "&intmux_cm40"
+
Example:
rpmsg: rpmsg{
compatible = "fsl,imx6sx-rpmsg";
@@ -17,3 +31,23 @@ rpmsg: rpmsg{
reg = <0xbfff0000 0x10000>;
status = "okay";
};
+
+imx_rpmsg: imx_rpmsg {
+ compatible = "fsl,rpmsg-bus", "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ mu_rpmsg: mu_rpmsg@37440000 {
+ compatible = "fsl,imx8-mu", "fsl,imx6sx-mu";
+ reg = <0x0 0x37440000 0x0 0x10000>;
+ interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&intmux_cm40>;
+ status = "okay";
+ };
+
+ rpmsg: rpmsg{
+ compatible = "fsl,imx8qxp-rpmsg";
+ status = "disabled";
+ };
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2.dts
index 478afd1ad24e..96ef7730369a 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-lpddr4-arm2.dts
@@ -710,3 +710,17 @@
extcon = <&typec_ptn5150>;
status = "okay";
};
+
+&intmux_cm40 {
+ status = "okay";
+};
+
+&rpmsg{
+ /*
+ * 64K for one rpmsg instance:
+ * --0xb8000000~0xb800ffff: pingpong
+ */
+ vdev-nums = <1>;
+ reg = <0x0 0xb8000000 0x0 0x10000>;
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts
index c92cceef917a..876f60d2f95d 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp-mek.dts
@@ -559,3 +559,13 @@
&imx8_gpu_ss {
status = "okay";
};
+
+&rpmsg{
+ /*
+ * 64K for one rpmsg instance:
+ * --0xb8000000~0xb800ffff: pingpong
+ */
+ vdev-nums = <1>;
+ reg = <0x0 0xb8000000 0x0 0x10000>;
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi
index 6e886319c94c..6635345e9233 100644
--- a/arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8qxp.dtsi
@@ -2144,6 +2144,26 @@
compatible = "fsl,mxc-ion";
fsl,heap-id = <0>;
};
+
+ imx_rpmsg: imx_rpmsg {
+ compatible = "fsl,rpmsg-bus", "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ mu_rpmsg: mu_rpmsg@37440000 {
+ compatible = "fsl,imx8-mu", "fsl,imx6sx-mu";
+ reg = <0x0 0x37440000 0x0 0x10000>;
+ interrupts = <31 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-parent = <&intmux_cm40>;
+ status = "okay";
+ };
+
+ rpmsg: rpmsg{
+ compatible = "fsl,imx8qxp-rpmsg";
+ status = "disabled";
+ };
+ };
};
&A35_0 {