summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Zhu <hongxing.zhu@nxp.com>2018-05-21 11:00:38 +0800
committerLeonard Crestez <leonard.crestez@nxp.com>2018-08-24 12:41:33 +0300
commitab3fe190f60b4cdae17e647b42b42cb79142c61e (patch)
treefda0a530e5d1a2c0ca23ead8bb74f25da1655b8b
parentca81dfb5d0be78f05fb8d0d921211e0ea76de323 (diff)
MLK-18381-1 ARM64: dts: imx8mm: enable rpmsg
enable rpmsg on imx8mm Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
-rw-r--r--Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt2
-rw-r--r--arch/arm64/boot/dts/freescale/Makefile3
-rw-r--r--arch/arm64/boot/dts/freescale/fsl-imx8mm-evk-m4.dts54
-rwxr-xr-xarch/arm64/boot/dts/freescale/fsl-imx8mm-evk.dts14
-rwxr-xr-xarch/arm64/boot/dts/freescale/fsl-imx8mm.dtsi29
5 files changed, 99 insertions, 3 deletions
diff --git a/Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt b/Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt
index bd2bd237144f..331520494c95 100644
--- a/Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt
+++ b/Documentation/devicetree/bindings/rpmsg/imx-rpmsg.txt
@@ -17,7 +17,7 @@ message unit module for RPMSG
- mu_rpmsg : The message unit module used to do the communications
between the asymmetric cores.
-- compatible : "fsl,imx6sx-mu", "fsl,imx-mu-rpmsg1".
+- compatible : "fsl,imx8mq-mu", "fsl,imx6sx-mu", "fsl,imx-mu-rpmsg1".
Different mu module would be used by the different remote processor.
The "fsl, imx6sx-mu" is used by the first remote processor.
The "fsl,imx-mu-rpmsg1" is used by the second remote process.
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile
index afbd2e0d24ac..61cf72b160fe 100644
--- a/arch/arm64/boot/dts/freescale/Makefile
+++ b/arch/arm64/boot/dts/freescale/Makefile
@@ -67,7 +67,8 @@ dtb-$(CONFIG_ARCH_FSL_IMX8MQ) += fsl-imx8mq-ddr3l-arm2.dtb \
fsl-imx8mq-evk-audio-tdm.dtb \
fsl-imx8mq-evk-drm.dtb
dtb-$(CONFIG_ARCH_FSL_IMX8MM) += fsl-imx8mm-evk.dtb \
- fsl-imx8mm-evk-ak4497.dtb
+ fsl-imx8mm-evk-ak4497.dtb \
+ fsl-imx8mm-evk-m4.dtb
always := $(dtb-y)
subdir-y := $(dts-dirs)
clean-files := *.dtb
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8mm-evk-m4.dts b/arch/arm64/boot/dts/freescale/fsl-imx8mm-evk-m4.dts
new file mode 100644
index 000000000000..cd5abda2d727
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8mm-evk-m4.dts
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2018 NXP
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include "fsl-imx8mm-evk.dts"
+
+/ {
+ reserved-memory {
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ m4_reserved: m4@0x80000000 {
+ no-map;
+ reg = <0 0x80000000 0 0x1000000>;
+ };
+
+ };
+
+ sound-wm8524 {
+ status = "disabled";
+ };
+};
+
+/*
+ * ATTENTION: M4 may use IPs like below
+ * ECSPI0/ECSPI2, GPIO1/GPIO5, GPT1, I2C3, I2S3, WDOG1, UART4, PWM3, SDMA1
+ */
+
+&i2c3 {
+ status = "disabled";
+};
+
+&sdma1{
+ status = "disabled";
+};
+
+&uart4 {
+ status = "disabled";
+};
+
+&wdog1{
+ status = "disabled";
+};
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8mm-evk.dts b/arch/arm64/boot/dts/freescale/fsl-imx8mm-evk.dts
index 82308803f7d8..c6a3140d3d47 100755
--- a/arch/arm64/boot/dts/freescale/fsl-imx8mm-evk.dts
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8mm-evk.dts
@@ -630,6 +630,20 @@
};
};
+&mu {
+ status = "okay";
+};
+
+&rpmsg{
+ /*
+ * 64K for one rpmsg instance:
+ * --0xb8000000~0xb800ffff: pingpong
+ */
+ vdev-nums = <1>;
+ reg = <0x0 0xb8000000 0x0 0x10000>;
+ status = "okay";
+};
+
&sai1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai1>;
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8mm.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8mm.dtsi
index 4d426f28ebbb..7674366c15c1 100755
--- a/arch/arm64/boot/dts/freescale/fsl-imx8mm.dtsi
+++ b/arch/arm64/boot/dts/freescale/fsl-imx8mm.dtsi
@@ -77,9 +77,14 @@
compatible = "shared-dma-pool";
reusable;
size = <0 0x28000000>;
- alloc-ranges = <0 0x40000000 0 0x80000000>;
+ alloc-ranges = <0 0x40000000 0 0x60000000>;
linux,cma-default;
};
+
+ rpmsg_reserved: rpmsg@0xb8000000 {
+ no-map;
+ reg = <0 0xb8000000 0 0x400000>;
+ };
};
gic: interrupt-controller@38800000 {
@@ -458,6 +463,28 @@
status = "disabled";
};
+
+ imx_rpmsg: imx_rpmsg {
+ compatible = "fsl,rpmsg-bus", "simple-bus";
+ #address-cells = <2>;
+ #size-cells = <2>;
+ ranges;
+
+ mu: mu@30aa0000 {
+ compatible = "fsl,imx8mq-mu", "fsl,imx6sx-mu";
+ reg = <0x0 0x30aa0000 0x0 0x10000>;
+ interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clk IMX8MM_CLK_MU_ROOT>;
+ clock-names = "mu";
+ status = "disabled";
+ };
+
+ rpmsg: rpmsg{
+ compatible = "fsl,imx8qm-rpmsg";
+ status = "disabled";
+ };
+ };
+
usbotg1: usb@32e40000 {
compatible = "fsl,imx7d-usb", "fsl,imx27-usb";
reg = <0x0 0x32e40000 0x0 0x200>;