diff mbox series

[v4,1/4] arm64: dts: imx8: add cm40 subsystem dtsi

Message ID 20240329-m4_lpuart-v4-1-c11d9ca2a317@nxp.com (mailing list archive)
State Superseded
Headers show
Series arm64: dts: imx8: add cm40 and cm40_uart | expand

Commit Message

Frank Li March 29, 2024, 4:37 p.m. UTC
From: Dong Aisheng <aisheng.dong@nxp.com>

Add cm40 subsystem dtsi.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Reviewed-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
---
 arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi | 67 +++++++++++++++++++++++++
 arch/arm64/boot/dts/freescale/imx8dxl.dtsi      |  2 +
 arch/arm64/boot/dts/freescale/imx8qxp.dtsi      |  1 +
 3 files changed, 70 insertions(+)

Comments

Peng Fan April 1, 2024, 2:02 a.m. UTC | #1
On Fri, Mar 29, 2024 at 12:37:05PM -0400, Frank Li wrote:
>From: Dong Aisheng <aisheng.dong@nxp.com>
>
>Add cm40 subsystem dtsi.
>
>Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
>Reviewed-by: Alexander Stein <alexander.stein@ew.tq-group.com>
>Signed-off-by: Frank Li <Frank.Li@nxp.com>
>---
> arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi | 67 +++++++++++++++++++++++++
> arch/arm64/boot/dts/freescale/imx8dxl.dtsi      |  2 +
> arch/arm64/boot/dts/freescale/imx8qxp.dtsi      |  1 +
> 3 files changed, 70 insertions(+)
>
>diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi
>new file mode 100644
>index 0000000000000..10a05db06ade9
>--- /dev/null
>+++ b/arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi
>@@ -0,0 +1,67 @@
>+// SPDX-License-Identifier: GPL-2.0+
>+/*
>+ * Copyright 2019 NXP
The time needs to be 2024, otherwise LGTM:

Reviewed-by: Peng Fan <peng.fan@nxp.com>

>+ *	Dong Aisheng <aisheng.dong@nxp.com>
>+ */
>+
>+#include <dt-bindings/firmware/imx/rsrc.h>
>+
>+cm40_ipg_clk: clock-cm40-ipg {
>+	compatible = "fixed-clock";
>+	#clock-cells = <0>;
>+	clock-frequency = <132000000>;
>+	clock-output-names = "cm40_ipg_clk";
>+};
>+
>+cm40_subsys: bus@34000000 {
>+	compatible = "simple-bus";
>+	#address-cells = <1>;
>+	#size-cells = <1>;
>+	ranges = <0x34000000 0x0 0x34000000 0x4000000>;
>+	interrupt-parent = <&cm40_intmux>;
>+
>+	cm40_i2c: i2c@37230000 {
>+		compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
>+		reg = <0x37230000 0x1000>;
>+		interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
>+		clocks = <&cm40_i2c_lpcg IMX_LPCG_CLK_0>,
>+			 <&cm40_i2c_lpcg IMX_LPCG_CLK_4>;
>+		clock-names = "per", "ipg";
>+		assigned-clocks = <&clk IMX_SC_R_M4_0_I2C IMX_SC_PM_CLK_PER>;
>+		assigned-clock-rates = <24000000>;
>+		power-domains = <&pd IMX_SC_R_M4_0_I2C>;
>+		status = "disabled";
>+	};
>+
>+	cm40_intmux: intmux@37400000 {
>+		compatible = "fsl,imx-intmux";
>+		reg = <0x37400000 0x1000>;
>+		interrupt-parent = <&gic>;
>+		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
>+			     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
>+			     <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
>+			     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
>+			     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
>+			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
>+			     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
>+			     <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
>+		interrupt-controller;
>+		#interrupt-cells = <2>;
>+		clocks = <&cm40_ipg_clk>;
>+		clock-names = "ipg";
>+		power-domains = <&pd IMX_SC_R_M4_0_INTMUX>;
>+		status = "disabled";
>+	};
>+
>+	cm40_i2c_lpcg: clock-controller@37630000 {
>+		compatible = "fsl,imx8qxp-lpcg";
>+		reg = <0x37630000 0x1000>;
>+		#clock-cells = <1>;
>+		clocks = <&clk IMX_SC_R_M4_0_I2C IMX_SC_PM_CLK_PER>,
>+			 <&cm40_ipg_clk>;
>+		clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
>+		clock-output-names = "cm40_lpcg_i2c_clk",
>+				     "cm40_lpcg_i2c_ipg_clk";
>+		power-domains = <&pd IMX_SC_R_M4_0_I2C>;
>+	};
>+};
>diff --git a/arch/arm64/boot/dts/freescale/imx8dxl.dtsi b/arch/arm64/boot/dts/freescale/imx8dxl.dtsi
>index a0674c5c55766..9d49c75a26222 100644
>--- a/arch/arm64/boot/dts/freescale/imx8dxl.dtsi
>+++ b/arch/arm64/boot/dts/freescale/imx8dxl.dtsi
>@@ -5,6 +5,7 @@
> 
> #include <dt-bindings/clock/imx8-clock.h>
> #include <dt-bindings/dma/fsl-edma.h>
>+#include <dt-bindings/clock/imx8-lpcg.h>
> #include <dt-bindings/firmware/imx/rsrc.h>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/interrupt-controller/arm-gic.h>
>@@ -231,6 +232,7 @@ xtal24m: clock-xtal24m {
> 	};
> 
> 	/* sorted in register address */
>+	#include "imx8-ss-cm40.dtsi"
> 	#include "imx8-ss-adma.dtsi"
> 	#include "imx8-ss-conn.dtsi"
> 	#include "imx8-ss-ddr.dtsi"
>diff --git a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
>index 10e16d84c0c3b..0313f295de2e9 100644
>--- a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
>+++ b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
>@@ -317,6 +317,7 @@ map0 {
> 	/* sorted in register address */
> 	#include "imx8-ss-img.dtsi"
> 	#include "imx8-ss-vpu.dtsi"
>+	#include "imx8-ss-cm40.dtsi"
> 	#include "imx8-ss-gpu0.dtsi"
> 	#include "imx8-ss-adma.dtsi"
> 	#include "imx8-ss-conn.dtsi"
>
>-- 
>2.34.1
>

--
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi b/arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi
new file mode 100644
index 0000000000000..10a05db06ade9
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8-ss-cm40.dtsi
@@ -0,0 +1,67 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2019 NXP
+ *	Dong Aisheng <aisheng.dong@nxp.com>
+ */
+
+#include <dt-bindings/firmware/imx/rsrc.h>
+
+cm40_ipg_clk: clock-cm40-ipg {
+	compatible = "fixed-clock";
+	#clock-cells = <0>;
+	clock-frequency = <132000000>;
+	clock-output-names = "cm40_ipg_clk";
+};
+
+cm40_subsys: bus@34000000 {
+	compatible = "simple-bus";
+	#address-cells = <1>;
+	#size-cells = <1>;
+	ranges = <0x34000000 0x0 0x34000000 0x4000000>;
+	interrupt-parent = <&cm40_intmux>;
+
+	cm40_i2c: i2c@37230000 {
+		compatible = "fsl,imx8qxp-lpi2c", "fsl,imx7ulp-lpi2c";
+		reg = <0x37230000 0x1000>;
+		interrupts = <9 IRQ_TYPE_LEVEL_HIGH>;
+		clocks = <&cm40_i2c_lpcg IMX_LPCG_CLK_0>,
+			 <&cm40_i2c_lpcg IMX_LPCG_CLK_4>;
+		clock-names = "per", "ipg";
+		assigned-clocks = <&clk IMX_SC_R_M4_0_I2C IMX_SC_PM_CLK_PER>;
+		assigned-clock-rates = <24000000>;
+		power-domains = <&pd IMX_SC_R_M4_0_I2C>;
+		status = "disabled";
+	};
+
+	cm40_intmux: intmux@37400000 {
+		compatible = "fsl,imx-intmux";
+		reg = <0x37400000 0x1000>;
+		interrupt-parent = <&gic>;
+		interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-controller;
+		#interrupt-cells = <2>;
+		clocks = <&cm40_ipg_clk>;
+		clock-names = "ipg";
+		power-domains = <&pd IMX_SC_R_M4_0_INTMUX>;
+		status = "disabled";
+	};
+
+	cm40_i2c_lpcg: clock-controller@37630000 {
+		compatible = "fsl,imx8qxp-lpcg";
+		reg = <0x37630000 0x1000>;
+		#clock-cells = <1>;
+		clocks = <&clk IMX_SC_R_M4_0_I2C IMX_SC_PM_CLK_PER>,
+			 <&cm40_ipg_clk>;
+		clock-indices = <IMX_LPCG_CLK_0>, <IMX_LPCG_CLK_4>;
+		clock-output-names = "cm40_lpcg_i2c_clk",
+				     "cm40_lpcg_i2c_ipg_clk";
+		power-domains = <&pd IMX_SC_R_M4_0_I2C>;
+	};
+};
diff --git a/arch/arm64/boot/dts/freescale/imx8dxl.dtsi b/arch/arm64/boot/dts/freescale/imx8dxl.dtsi
index a0674c5c55766..9d49c75a26222 100644
--- a/arch/arm64/boot/dts/freescale/imx8dxl.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8dxl.dtsi
@@ -5,6 +5,7 @@ 
 
 #include <dt-bindings/clock/imx8-clock.h>
 #include <dt-bindings/dma/fsl-edma.h>
+#include <dt-bindings/clock/imx8-lpcg.h>
 #include <dt-bindings/firmware/imx/rsrc.h>
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/arm-gic.h>
@@ -231,6 +232,7 @@  xtal24m: clock-xtal24m {
 	};
 
 	/* sorted in register address */
+	#include "imx8-ss-cm40.dtsi"
 	#include "imx8-ss-adma.dtsi"
 	#include "imx8-ss-conn.dtsi"
 	#include "imx8-ss-ddr.dtsi"
diff --git a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
index 10e16d84c0c3b..0313f295de2e9 100644
--- a/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
+++ b/arch/arm64/boot/dts/freescale/imx8qxp.dtsi
@@ -317,6 +317,7 @@  map0 {
 	/* sorted in register address */
 	#include "imx8-ss-img.dtsi"
 	#include "imx8-ss-vpu.dtsi"
+	#include "imx8-ss-cm40.dtsi"
 	#include "imx8-ss-gpu0.dtsi"
 	#include "imx8-ss-adma.dtsi"
 	#include "imx8-ss-conn.dtsi"