diff options
author | Richard Zhu <hongxing.zhu@nxp.com> | 2017-10-09 16:23:50 +0800 |
---|---|---|
committer | Jason Liu <jason.hui.liu@nxp.com> | 2019-02-12 10:28:48 +0800 |
commit | 1568dedc98e075a5992b62a43d21f707e07eedf6 (patch) | |
tree | 6e42a0d59216e4de6e8f82a4fbe629a3dd00aed1 /arch/arm64/boot | |
parent | 21f040b772b07de799943aa9270bcc2cd625197d (diff) |
MLK-16586-2 ARM64: dts: imx: enable multi-core rpmsg support
Because there are two m4 cores on imx8qm,
enable imx8qm multi-core rpmsg support
BuildInfo:
- SCFW a6fd9a48, IMX-MKIMAGE 0, ATF 0
- U-Boot 2017.03-imx_v2017.03_4.9.11_imx8_alpha+g258936c
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Reviewed-by: Robin Gong <yibin.gong@nxp.com>
Reviewed-by: Dong Aisheng <aisheng.dong@nxp.com>
Reviewed-by: Andy Duan <fugang.duan@nxp.com>
Tested-by: Andy Duan <fugang.duan@nxp.com>
Diffstat (limited to 'arch/arm64/boot')
-rw-r--r-- | arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts | 14 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts | 28 | ||||
-rw-r--r-- | arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi | 59 |
3 files changed, 100 insertions, 1 deletions
diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts index 06972c1abcdc..115bea2eab45 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-lpddr4-arm2.dts @@ -878,3 +878,17 @@ reg = <0x0 0xb8000000 0x0 0x10000>; status = "okay"; }; + +&intmux_cm41 { + status = "okay"; +}; + +&rpmsg1{ + /* + * 64K for one rpmsg instance: + * --0xb8100000~0xb810ffff: pingpong + */ + vdev-nums = <1>; + reg = <0x0 0xb8100000 0x0 0x10000>; + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts index bfd3f7b76bb1..f654e3a0d8ef 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm-mek.dts @@ -425,3 +425,31 @@ epdev_on-supply = <&epdev_on>; 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"; +}; + +&intmux_cm41 { + status = "okay"; +}; + +&rpmsg1{ + /* + * 64K for one rpmsg instance: + * --0xb8100000~0xb810ffff: pingpong + */ + vdev-nums = <1>; + reg = <0x0 0xb8100000 0x0 0x10000>; + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi b/arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi index 7d9081d5c365..de612d1368ea 100644 --- a/arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi +++ b/arch/arm64/boot/dts/freescale/fsl-imx8qm.dtsi @@ -985,6 +985,26 @@ power-domains =<&pd_cm40>; }; }; + + pd_cm41: PD_CM41 { + compatible = "nxp,imx8-pd"; + reg = <SC_R_LAST>; + #power-domain-cells = <0>; + #address-cells = <1>; + #size-cells = <0>; + + pd_cm41_mu0a0: PD_CM41_MU0A0{ + reg = <SC_R_M4_1_MU_0A0>; + #power-domain-cells = <0>; + power-domains =<&pd_cm41>; + }; + + pd_cm41_intmux: PD_CM41_INTMUX { + reg = <SC_R_M4_1_INTMUX>; + #power-domain-cells = <0>; + power-domains =<&pd_cm41>; + }; + }; }; tsens: thermal-sensor { @@ -2870,6 +2890,26 @@ status = "disabled"; }; + intmux_cm41: intmux@3b400000 { + compatible = "nxp,imx-intmux"; + reg = <0x0 0x3b400000 0x0 0x1000>; + interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; + interrupt-controller; + interrupt-parent = <&gic>; + #interrupt-cells = <2>; + clocks = <&clk IMX8QM_CM41_IPG_CLK>; + clock-names = "ipg"; + power-domains = <&pd_cm41_intmux>; + status = "disabled"; + }; + imx_rpmsg: imx_rpmsg { compatible = "fsl,rpmsg-bus", "simple-bus"; #address-cells = <2>; @@ -2888,7 +2928,24 @@ }; rpmsg: rpmsg { - compatible = "fsl,imx8qxp-rpmsg"; + compatible = "fsl,imx8qm-rpmsg"; + status = "disabled"; + }; + + mu_rpmsg1: mu_rpmsg1@3b440000 { + compatible = "fsl,imx8-mu", "fsl,imx-mu-rpmsg1"; + reg = <0x0 0x3b440000 0x0 0x10000>; + interrupts = <31 IRQ_TYPE_LEVEL_HIGH>; + interrupt-parent = <&intmux_cm41>; + clocks = <&clk IMX8QM_CM41_IPG_CLK>; + clock-names = "ipg"; + power-domains = <&pd_cm41_mu0a0>; + status = "okay"; + }; + + rpmsg1: rpmsg1{ + compatible = "fsl,imx8qm-rpmsg"; + multi-core-id = <1>; status = "disabled"; }; }; |