xref: /openbmc/linux/arch/arm64/boot/dts/freescale/imx8dxl.dtsi (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1f537ee7fSShenwei Wang// SPDX-License-Identifier: GPL-2.0+
2f537ee7fSShenwei Wang/*
3f537ee7fSShenwei Wang * Copyright 2019~2020, 2022 NXP
4f537ee7fSShenwei Wang */
5f537ee7fSShenwei Wang
6f537ee7fSShenwei Wang#include <dt-bindings/clock/imx8-clock.h>
7f537ee7fSShenwei Wang#include <dt-bindings/firmware/imx/rsrc.h>
8f537ee7fSShenwei Wang#include <dt-bindings/gpio/gpio.h>
9f537ee7fSShenwei Wang#include <dt-bindings/interrupt-controller/arm-gic.h>
10f537ee7fSShenwei Wang#include <dt-bindings/input/input.h>
11f537ee7fSShenwei Wang#include <dt-bindings/pinctrl/pads-imx8dxl.h>
12f537ee7fSShenwei Wang#include <dt-bindings/thermal/thermal.h>
13f537ee7fSShenwei Wang
14f537ee7fSShenwei Wang/ {
15f537ee7fSShenwei Wang	interrupt-parent = <&gic>;
16f537ee7fSShenwei Wang	#address-cells = <2>;
17f537ee7fSShenwei Wang	#size-cells = <2>;
18f537ee7fSShenwei Wang
19f537ee7fSShenwei Wang	aliases {
20f537ee7fSShenwei Wang		ethernet0 = &fec1;
21f537ee7fSShenwei Wang		ethernet1 = &eqos;
22f537ee7fSShenwei Wang		gpio0 = &lsio_gpio0;
23f537ee7fSShenwei Wang		gpio1 = &lsio_gpio1;
24f537ee7fSShenwei Wang		gpio2 = &lsio_gpio2;
25f537ee7fSShenwei Wang		gpio3 = &lsio_gpio3;
26f537ee7fSShenwei Wang		gpio4 = &lsio_gpio4;
27f537ee7fSShenwei Wang		gpio5 = &lsio_gpio5;
28f537ee7fSShenwei Wang		gpio6 = &lsio_gpio6;
29f537ee7fSShenwei Wang		gpio7 = &lsio_gpio7;
30f537ee7fSShenwei Wang		mu1 = &lsio_mu1;
31f537ee7fSShenwei Wang	};
32f537ee7fSShenwei Wang
33f537ee7fSShenwei Wang	cpus: cpus {
34f537ee7fSShenwei Wang		#address-cells = <2>;
35f537ee7fSShenwei Wang		#size-cells = <0>;
36f537ee7fSShenwei Wang
37f537ee7fSShenwei Wang		/* We have 1 clusters with 2 Cortex-A35 cores */
38f537ee7fSShenwei Wang		A35_0: cpu@0 {
39f537ee7fSShenwei Wang			device_type = "cpu";
40f537ee7fSShenwei Wang			compatible = "arm,cortex-a35";
41f537ee7fSShenwei Wang			reg = <0x0 0x0>;
42f537ee7fSShenwei Wang			enable-method = "psci";
43f537ee7fSShenwei Wang			next-level-cache = <&A35_L2>;
44f537ee7fSShenwei Wang			clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
45f537ee7fSShenwei Wang			#cooling-cells = <2>;
46f537ee7fSShenwei Wang			operating-points-v2 = <&a35_opp_table>;
47f537ee7fSShenwei Wang		};
48f537ee7fSShenwei Wang
49f537ee7fSShenwei Wang		A35_1: cpu@1 {
50f537ee7fSShenwei Wang			device_type = "cpu";
51f537ee7fSShenwei Wang			compatible = "arm,cortex-a35";
52f537ee7fSShenwei Wang			reg = <0x0 0x1>;
53f537ee7fSShenwei Wang			enable-method = "psci";
54f537ee7fSShenwei Wang			next-level-cache = <&A35_L2>;
55f537ee7fSShenwei Wang			clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
56f537ee7fSShenwei Wang			#cooling-cells = <2>;
57f537ee7fSShenwei Wang			operating-points-v2 = <&a35_opp_table>;
58f537ee7fSShenwei Wang		};
59f537ee7fSShenwei Wang
60f537ee7fSShenwei Wang		A35_L2: l2-cache0 {
61f537ee7fSShenwei Wang			compatible = "cache";
623b450831SPierre Gondois			cache-level = <2>;
63f537ee7fSShenwei Wang			cache-unified;
64f537ee7fSShenwei Wang		};
65f537ee7fSShenwei Wang	};
66f537ee7fSShenwei Wang
67f537ee7fSShenwei Wang	a35_opp_table: opp-table {
68f537ee7fSShenwei Wang		compatible = "operating-points-v2";
69f537ee7fSShenwei Wang		opp-shared;
70f537ee7fSShenwei Wang
71f537ee7fSShenwei Wang		opp-900000000 {
72f537ee7fSShenwei Wang			opp-hz = /bits/ 64 <900000000>;
73f537ee7fSShenwei Wang			opp-microvolt = <1000000>;
74f537ee7fSShenwei Wang			clock-latency-ns = <150000>;
75f537ee7fSShenwei Wang		};
76f537ee7fSShenwei Wang
77f537ee7fSShenwei Wang		opp-1200000000 {
78f537ee7fSShenwei Wang			opp-hz = /bits/ 64 <1200000000>;
79f537ee7fSShenwei Wang			opp-microvolt = <1100000>;
80f537ee7fSShenwei Wang			clock-latency-ns = <150000>;
81f537ee7fSShenwei Wang			opp-suspend;
82f537ee7fSShenwei Wang		};
83f537ee7fSShenwei Wang	};
84f537ee7fSShenwei Wang
85f537ee7fSShenwei Wang	gic: interrupt-controller@51a00000 {
86f537ee7fSShenwei Wang		compatible = "arm,gic-v3";
87f537ee7fSShenwei Wang		reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
88f537ee7fSShenwei Wang		      <0x0 0x51b00000 0 0xc0000>; /* GICR (RD_base + SGI_base) */
89f537ee7fSShenwei Wang		#interrupt-cells = <3>;
90f537ee7fSShenwei Wang		interrupt-controller;
91f537ee7fSShenwei Wang		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
92f537ee7fSShenwei Wang	};
93f537ee7fSShenwei Wang
94f537ee7fSShenwei Wang	reserved-memory {
95f537ee7fSShenwei Wang		#address-cells = <2>;
96f537ee7fSShenwei Wang		#size-cells = <2>;
97f537ee7fSShenwei Wang		ranges;
98f537ee7fSShenwei Wang
99f537ee7fSShenwei Wang		dsp_reserved: dsp@92400000 {
100f537ee7fSShenwei Wang			reg = <0 0x92400000 0 0x2000000>;
101f537ee7fSShenwei Wang			no-map;
102f537ee7fSShenwei Wang		};
103f537ee7fSShenwei Wang	};
104f537ee7fSShenwei Wang
105f537ee7fSShenwei Wang	pmu {
106f537ee7fSShenwei Wang		compatible = "arm,armv8-pmuv3";
107f537ee7fSShenwei Wang		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
108f537ee7fSShenwei Wang	};
109f537ee7fSShenwei Wang
110f537ee7fSShenwei Wang	psci {
111f537ee7fSShenwei Wang		compatible = "arm,psci-1.0";
112f537ee7fSShenwei Wang		method = "smc";
113f537ee7fSShenwei Wang	};
114f537ee7fSShenwei Wang
115f537ee7fSShenwei Wang	system-controller {
116f537ee7fSShenwei Wang		compatible = "fsl,imx-scu";
117f537ee7fSShenwei Wang		mbox-names = "tx0",
118f537ee7fSShenwei Wang			     "rx0",
119f537ee7fSShenwei Wang			     "gip3";
120f537ee7fSShenwei Wang		mboxes = <&lsio_mu1 0 0
121f537ee7fSShenwei Wang			  &lsio_mu1 1 0
122f537ee7fSShenwei Wang			  &lsio_mu1 3 3>;
123f537ee7fSShenwei Wang
124f537ee7fSShenwei Wang		pd: power-controller {
125f537ee7fSShenwei Wang			compatible = "fsl,scu-pd";
126f537ee7fSShenwei Wang			#power-domain-cells = <1>;
127f537ee7fSShenwei Wang			wakeup-irq = <160 163 235 236 237 228 229 230 231 238
128f537ee7fSShenwei Wang				     239 240 166 169>;
129f537ee7fSShenwei Wang		};
130f537ee7fSShenwei Wang
131f537ee7fSShenwei Wang		clk: clock-controller {
132f537ee7fSShenwei Wang			compatible = "fsl,imx8dxl-clk", "fsl,scu-clk";
133f537ee7fSShenwei Wang			#clock-cells = <2>;
134f537ee7fSShenwei Wang		};
135b202ac0cSShenwei Wang
136b202ac0cSShenwei Wang		scu_gpio: gpio {
137b202ac0cSShenwei Wang			compatible = "fsl,imx8qxp-sc-gpio";
138b202ac0cSShenwei Wang			gpio-controller;
139b202ac0cSShenwei Wang			#gpio-cells = <2>;
140b202ac0cSShenwei Wang		};
141f537ee7fSShenwei Wang
142f537ee7fSShenwei Wang		iomuxc: pinctrl {
143f537ee7fSShenwei Wang			compatible = "fsl,imx8dxl-iomuxc";
144f537ee7fSShenwei Wang		};
145f537ee7fSShenwei Wang
146f537ee7fSShenwei Wang		ocotp: ocotp {
147f537ee7fSShenwei Wang			compatible = "fsl,imx8qxp-scu-ocotp";
148f537ee7fSShenwei Wang			#address-cells = <1>;
149f537ee7fSShenwei Wang			#size-cells = <1>;
150f537ee7fSShenwei Wang
151f537ee7fSShenwei Wang			fec_mac0: mac@2c4 {
152f537ee7fSShenwei Wang				reg = <0x2c4 6>;
153f537ee7fSShenwei Wang			};
154f537ee7fSShenwei Wang
155f537ee7fSShenwei Wang			fec_mac1: mac@2c6 {
156f537ee7fSShenwei Wang				reg = <0x2c6 6>;
157f537ee7fSShenwei Wang			};
158f537ee7fSShenwei Wang		};
159f537ee7fSShenwei Wang
160f537ee7fSShenwei Wang		rtc: rtc {
161f537ee7fSShenwei Wang			compatible = "fsl,imx8qxp-sc-rtc";
162f537ee7fSShenwei Wang		};
163f537ee7fSShenwei Wang
164f537ee7fSShenwei Wang		sc_pwrkey: keys {
165cfb47bf5SFrank Li			compatible = "fsl,imx8qxp-sc-key", "fsl,imx-sc-key";
166f537ee7fSShenwei Wang			linux,keycodes = <KEY_POWER>;
167f537ee7fSShenwei Wang			wakeup-source;
168f537ee7fSShenwei Wang		};
169f537ee7fSShenwei Wang
170f537ee7fSShenwei Wang		watchdog {
171f537ee7fSShenwei Wang			compatible = "fsl,imx-sc-wdt";
172f537ee7fSShenwei Wang			timeout-sec = <60>;
173f537ee7fSShenwei Wang		};
174f537ee7fSShenwei Wang
175f537ee7fSShenwei Wang		tsens: thermal-sensor {
176f537ee7fSShenwei Wang			compatible = "fsl,imx-sc-thermal";
177f537ee7fSShenwei Wang			#thermal-sensor-cells = <1>;
178f537ee7fSShenwei Wang		};
179f537ee7fSShenwei Wang	};
180f537ee7fSShenwei Wang
181f537ee7fSShenwei Wang	timer {
182f537ee7fSShenwei Wang		compatible = "arm,armv8-timer";
183f537ee7fSShenwei Wang		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
184f537ee7fSShenwei Wang			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
185f537ee7fSShenwei Wang			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
186f537ee7fSShenwei Wang			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
187f537ee7fSShenwei Wang	};
188f537ee7fSShenwei Wang
189*ba179ae1SKrzysztof Kozlowski	thermal_zones: thermal-zones {
190f537ee7fSShenwei Wang		cpu-thermal {
191f537ee7fSShenwei Wang			polling-delay-passive = <250>;
192f537ee7fSShenwei Wang			polling-delay = <2000>;
193f537ee7fSShenwei Wang			thermal-sensors = <&tsens IMX_SC_R_SYSTEM>;
194f537ee7fSShenwei Wang
195f537ee7fSShenwei Wang			trips {
196f537ee7fSShenwei Wang				cpu_alert0: trip0 {
197f537ee7fSShenwei Wang					temperature = <107000>;
198f537ee7fSShenwei Wang					hysteresis = <2000>;
199f537ee7fSShenwei Wang					type = "passive";
200f537ee7fSShenwei Wang				};
201f537ee7fSShenwei Wang				cpu_crit0: trip1 {
202f537ee7fSShenwei Wang					temperature = <127000>;
203f537ee7fSShenwei Wang					hysteresis = <2000>;
204f537ee7fSShenwei Wang					type = "critical";
205f537ee7fSShenwei Wang				};
206f537ee7fSShenwei Wang			};
207f537ee7fSShenwei Wang
208f537ee7fSShenwei Wang			cooling-maps {
209f537ee7fSShenwei Wang				map0 {
210f537ee7fSShenwei Wang					trip = <&cpu_alert0>;
211f537ee7fSShenwei Wang					cooling-device =
212f537ee7fSShenwei Wang					<&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
213f537ee7fSShenwei Wang					<&A35_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
214f537ee7fSShenwei Wang				};
215f537ee7fSShenwei Wang			};
216f537ee7fSShenwei Wang		};
217f537ee7fSShenwei Wang	};
218f537ee7fSShenwei Wang
219f537ee7fSShenwei Wang	/* The two values below cannot be changed by the board */
220f537ee7fSShenwei Wang	xtal32k: clock-xtal32k {
221f537ee7fSShenwei Wang		compatible = "fixed-clock";
222f537ee7fSShenwei Wang		#clock-cells = <0>;
223f537ee7fSShenwei Wang		clock-frequency = <32768>;
224f537ee7fSShenwei Wang		clock-output-names = "xtal_32KHz";
225f537ee7fSShenwei Wang	};
226f537ee7fSShenwei Wang
227f537ee7fSShenwei Wang	xtal24m: clock-xtal24m {
228f537ee7fSShenwei Wang		compatible = "fixed-clock";
229f537ee7fSShenwei Wang		#clock-cells = <0>;
230f537ee7fSShenwei Wang		clock-frequency = <24000000>;
231f537ee7fSShenwei Wang		clock-output-names = "xtal_24MHz";
232f537ee7fSShenwei Wang	};
233f537ee7fSShenwei Wang
234f537ee7fSShenwei Wang	/* sorted in register address */
235f537ee7fSShenwei Wang	#include "imx8-ss-adma.dtsi"
236f537ee7fSShenwei Wang	#include "imx8-ss-conn.dtsi"
237f537ee7fSShenwei Wang	#include "imx8-ss-ddr.dtsi"
238f537ee7fSShenwei Wang	#include "imx8-ss-lsio.dtsi"
239f537ee7fSShenwei Wang};
240f537ee7fSShenwei Wang
241f537ee7fSShenwei Wang#include "imx8dxl-ss-adma.dtsi"
242f537ee7fSShenwei Wang#include "imx8dxl-ss-conn.dtsi"
243f537ee7fSShenwei Wang#include "imx8dxl-ss-lsio.dtsi"
244#include "imx8dxl-ss-ddr.dtsi"
245