17ef62cebSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+
27ef62cebSEmmanuel Vadot/*
37ef62cebSEmmanuel Vadot * Copyright 2019~2020, 2022 NXP
47ef62cebSEmmanuel Vadot */
57ef62cebSEmmanuel Vadot
67ef62cebSEmmanuel Vadot#include <dt-bindings/clock/imx8-clock.h>
77ef62cebSEmmanuel Vadot#include <dt-bindings/firmware/imx/rsrc.h>
87ef62cebSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
97ef62cebSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
107ef62cebSEmmanuel Vadot#include <dt-bindings/input/input.h>
117ef62cebSEmmanuel Vadot#include <dt-bindings/pinctrl/pads-imx8dxl.h>
127ef62cebSEmmanuel Vadot#include <dt-bindings/thermal/thermal.h>
137ef62cebSEmmanuel Vadot
147ef62cebSEmmanuel Vadot/ {
157ef62cebSEmmanuel Vadot	interrupt-parent = <&gic>;
167ef62cebSEmmanuel Vadot	#address-cells = <2>;
177ef62cebSEmmanuel Vadot	#size-cells = <2>;
187ef62cebSEmmanuel Vadot
197ef62cebSEmmanuel Vadot	aliases {
207ef62cebSEmmanuel Vadot		ethernet0 = &fec1;
217ef62cebSEmmanuel Vadot		ethernet1 = &eqos;
227ef62cebSEmmanuel Vadot		gpio0 = &lsio_gpio0;
237ef62cebSEmmanuel Vadot		gpio1 = &lsio_gpio1;
247ef62cebSEmmanuel Vadot		gpio2 = &lsio_gpio2;
257ef62cebSEmmanuel Vadot		gpio3 = &lsio_gpio3;
267ef62cebSEmmanuel Vadot		gpio4 = &lsio_gpio4;
277ef62cebSEmmanuel Vadot		gpio5 = &lsio_gpio5;
287ef62cebSEmmanuel Vadot		gpio6 = &lsio_gpio6;
297ef62cebSEmmanuel Vadot		gpio7 = &lsio_gpio7;
307ef62cebSEmmanuel Vadot		mu1 = &lsio_mu1;
317ef62cebSEmmanuel Vadot	};
327ef62cebSEmmanuel Vadot
337ef62cebSEmmanuel Vadot	cpus: cpus {
347ef62cebSEmmanuel Vadot		#address-cells = <2>;
357ef62cebSEmmanuel Vadot		#size-cells = <0>;
367ef62cebSEmmanuel Vadot
377ef62cebSEmmanuel Vadot		/* We have 1 clusters with 2 Cortex-A35 cores */
387ef62cebSEmmanuel Vadot		A35_0: cpu@0 {
397ef62cebSEmmanuel Vadot			device_type = "cpu";
407ef62cebSEmmanuel Vadot			compatible = "arm,cortex-a35";
417ef62cebSEmmanuel Vadot			reg = <0x0 0x0>;
427ef62cebSEmmanuel Vadot			enable-method = "psci";
437ef62cebSEmmanuel Vadot			next-level-cache = <&A35_L2>;
447ef62cebSEmmanuel Vadot			clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
457ef62cebSEmmanuel Vadot			#cooling-cells = <2>;
467ef62cebSEmmanuel Vadot			operating-points-v2 = <&a35_opp_table>;
477ef62cebSEmmanuel Vadot		};
487ef62cebSEmmanuel Vadot
497ef62cebSEmmanuel Vadot		A35_1: cpu@1 {
507ef62cebSEmmanuel Vadot			device_type = "cpu";
517ef62cebSEmmanuel Vadot			compatible = "arm,cortex-a35";
527ef62cebSEmmanuel Vadot			reg = <0x0 0x1>;
537ef62cebSEmmanuel Vadot			enable-method = "psci";
547ef62cebSEmmanuel Vadot			next-level-cache = <&A35_L2>;
557ef62cebSEmmanuel Vadot			clocks = <&clk IMX_SC_R_A35 IMX_SC_PM_CLK_CPU>;
567ef62cebSEmmanuel Vadot			#cooling-cells = <2>;
577ef62cebSEmmanuel Vadot			operating-points-v2 = <&a35_opp_table>;
587ef62cebSEmmanuel Vadot		};
597ef62cebSEmmanuel Vadot
607ef62cebSEmmanuel Vadot		A35_L2: l2-cache0 {
617ef62cebSEmmanuel Vadot			compatible = "cache";
628bab661aSEmmanuel Vadot			cache-level = <2>;
63f126890aSEmmanuel Vadot			cache-unified;
647ef62cebSEmmanuel Vadot		};
657ef62cebSEmmanuel Vadot	};
667ef62cebSEmmanuel Vadot
677ef62cebSEmmanuel Vadot	a35_opp_table: opp-table {
687ef62cebSEmmanuel Vadot		compatible = "operating-points-v2";
697ef62cebSEmmanuel Vadot		opp-shared;
707ef62cebSEmmanuel Vadot
717ef62cebSEmmanuel Vadot		opp-900000000 {
727ef62cebSEmmanuel Vadot			opp-hz = /bits/ 64 <900000000>;
737ef62cebSEmmanuel Vadot			opp-microvolt = <1000000>;
747ef62cebSEmmanuel Vadot			clock-latency-ns = <150000>;
757ef62cebSEmmanuel Vadot		};
767ef62cebSEmmanuel Vadot
777ef62cebSEmmanuel Vadot		opp-1200000000 {
787ef62cebSEmmanuel Vadot			opp-hz = /bits/ 64 <1200000000>;
797ef62cebSEmmanuel Vadot			opp-microvolt = <1100000>;
807ef62cebSEmmanuel Vadot			clock-latency-ns = <150000>;
817ef62cebSEmmanuel Vadot			opp-suspend;
827ef62cebSEmmanuel Vadot		};
837ef62cebSEmmanuel Vadot	};
847ef62cebSEmmanuel Vadot
857ef62cebSEmmanuel Vadot	gic: interrupt-controller@51a00000 {
867ef62cebSEmmanuel Vadot		compatible = "arm,gic-v3";
877ef62cebSEmmanuel Vadot		reg = <0x0 0x51a00000 0 0x10000>, /* GIC Dist */
887ef62cebSEmmanuel Vadot		      <0x0 0x51b00000 0 0xc0000>; /* GICR (RD_base + SGI_base) */
897ef62cebSEmmanuel Vadot		#interrupt-cells = <3>;
907ef62cebSEmmanuel Vadot		interrupt-controller;
917ef62cebSEmmanuel Vadot		interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
927ef62cebSEmmanuel Vadot	};
937ef62cebSEmmanuel Vadot
947ef62cebSEmmanuel Vadot	reserved-memory {
957ef62cebSEmmanuel Vadot		#address-cells = <2>;
967ef62cebSEmmanuel Vadot		#size-cells = <2>;
977ef62cebSEmmanuel Vadot		ranges;
987ef62cebSEmmanuel Vadot
997ef62cebSEmmanuel Vadot		dsp_reserved: dsp@92400000 {
1007ef62cebSEmmanuel Vadot			reg = <0 0x92400000 0 0x2000000>;
1017ef62cebSEmmanuel Vadot			no-map;
1027ef62cebSEmmanuel Vadot		};
1037ef62cebSEmmanuel Vadot	};
1047ef62cebSEmmanuel Vadot
1057ef62cebSEmmanuel Vadot	pmu {
1067ef62cebSEmmanuel Vadot		compatible = "arm,armv8-pmuv3";
1077ef62cebSEmmanuel Vadot		interrupts = <GIC_PPI 7 IRQ_TYPE_LEVEL_HIGH>;
1087ef62cebSEmmanuel Vadot	};
1097ef62cebSEmmanuel Vadot
1107ef62cebSEmmanuel Vadot	psci {
1117ef62cebSEmmanuel Vadot		compatible = "arm,psci-1.0";
1127ef62cebSEmmanuel Vadot		method = "smc";
1137ef62cebSEmmanuel Vadot	};
1147ef62cebSEmmanuel Vadot
1157ef62cebSEmmanuel Vadot	system-controller {
1167ef62cebSEmmanuel Vadot		compatible = "fsl,imx-scu";
1177ef62cebSEmmanuel Vadot		mbox-names = "tx0",
1187ef62cebSEmmanuel Vadot			     "rx0",
1197ef62cebSEmmanuel Vadot			     "gip3";
1207ef62cebSEmmanuel Vadot		mboxes = <&lsio_mu1 0 0
1217ef62cebSEmmanuel Vadot			  &lsio_mu1 1 0
1227ef62cebSEmmanuel Vadot			  &lsio_mu1 3 3>;
1237ef62cebSEmmanuel Vadot
1247ef62cebSEmmanuel Vadot		pd: power-controller {
125*84943d6fSEmmanuel Vadot			compatible = "fsl,imx8dl-scu-pd", "fsl,scu-pd";
1267ef62cebSEmmanuel Vadot			#power-domain-cells = <1>;
1277ef62cebSEmmanuel Vadot		};
1287ef62cebSEmmanuel Vadot
1297ef62cebSEmmanuel Vadot		clk: clock-controller {
1307ef62cebSEmmanuel Vadot			compatible = "fsl,imx8dxl-clk", "fsl,scu-clk";
1317ef62cebSEmmanuel Vadot			#clock-cells = <2>;
1327ef62cebSEmmanuel Vadot		};
1337ef62cebSEmmanuel Vadot
1348bab661aSEmmanuel Vadot		scu_gpio: gpio {
1358bab661aSEmmanuel Vadot			compatible = "fsl,imx8qxp-sc-gpio";
1368bab661aSEmmanuel Vadot			gpio-controller;
1378bab661aSEmmanuel Vadot			#gpio-cells = <2>;
1388bab661aSEmmanuel Vadot		};
1398bab661aSEmmanuel Vadot
1407ef62cebSEmmanuel Vadot		iomuxc: pinctrl {
1417ef62cebSEmmanuel Vadot			compatible = "fsl,imx8dxl-iomuxc";
1427ef62cebSEmmanuel Vadot		};
1437ef62cebSEmmanuel Vadot
1447ef62cebSEmmanuel Vadot		ocotp: ocotp {
1457ef62cebSEmmanuel Vadot			compatible = "fsl,imx8qxp-scu-ocotp";
1467ef62cebSEmmanuel Vadot			#address-cells = <1>;
1477ef62cebSEmmanuel Vadot			#size-cells = <1>;
1487ef62cebSEmmanuel Vadot
1497ef62cebSEmmanuel Vadot			fec_mac0: mac@2c4 {
1507ef62cebSEmmanuel Vadot				reg = <0x2c4 6>;
1517ef62cebSEmmanuel Vadot			};
1527ef62cebSEmmanuel Vadot
1537ef62cebSEmmanuel Vadot			fec_mac1: mac@2c6 {
1547ef62cebSEmmanuel Vadot				reg = <0x2c6 6>;
1557ef62cebSEmmanuel Vadot			};
1567ef62cebSEmmanuel Vadot		};
1577ef62cebSEmmanuel Vadot
1587ef62cebSEmmanuel Vadot		rtc: rtc {
1597ef62cebSEmmanuel Vadot			compatible = "fsl,imx8qxp-sc-rtc";
1607ef62cebSEmmanuel Vadot		};
1617ef62cebSEmmanuel Vadot
1627ef62cebSEmmanuel Vadot		sc_pwrkey: keys {
1637ef62cebSEmmanuel Vadot			compatible = "fsl,imx8qxp-sc-key", "fsl,imx-sc-key";
1648bab661aSEmmanuel Vadot			linux,keycodes = <KEY_POWER>;
1657ef62cebSEmmanuel Vadot			wakeup-source;
1667ef62cebSEmmanuel Vadot		};
1677ef62cebSEmmanuel Vadot
1687ef62cebSEmmanuel Vadot		watchdog {
169*84943d6fSEmmanuel Vadot			compatible = "fsl,imx8dxl-sc-wdt", "fsl,imx-sc-wdt";
1707ef62cebSEmmanuel Vadot			timeout-sec = <60>;
1717ef62cebSEmmanuel Vadot		};
1727ef62cebSEmmanuel Vadot
1737ef62cebSEmmanuel Vadot		tsens: thermal-sensor {
174*84943d6fSEmmanuel Vadot			compatible = "fsl,imx8dxl-sc-thermal", "fsl,imx-sc-thermal";
1757ef62cebSEmmanuel Vadot			#thermal-sensor-cells = <1>;
1767ef62cebSEmmanuel Vadot		};
1777ef62cebSEmmanuel Vadot	};
1787ef62cebSEmmanuel Vadot
1797ef62cebSEmmanuel Vadot	timer {
1807ef62cebSEmmanuel Vadot		compatible = "arm,armv8-timer";
1817ef62cebSEmmanuel Vadot		interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Physical Secure */
1827ef62cebSEmmanuel Vadot			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Physical Non-Secure */
1837ef62cebSEmmanuel Vadot			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virtual */
1847ef62cebSEmmanuel Vadot			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hypervisor */
1857ef62cebSEmmanuel Vadot	};
1867ef62cebSEmmanuel Vadot
1877ef62cebSEmmanuel Vadot	thermal_zones: thermal-zones {
188fac71e4eSEmmanuel Vadot		cpu-thermal {
1897ef62cebSEmmanuel Vadot			polling-delay-passive = <250>;
1907ef62cebSEmmanuel Vadot			polling-delay = <2000>;
1917ef62cebSEmmanuel Vadot			thermal-sensors = <&tsens IMX_SC_R_SYSTEM>;
1927ef62cebSEmmanuel Vadot
1937ef62cebSEmmanuel Vadot			trips {
1947ef62cebSEmmanuel Vadot				cpu_alert0: trip0 {
1957ef62cebSEmmanuel Vadot					temperature = <107000>;
1967ef62cebSEmmanuel Vadot					hysteresis = <2000>;
1977ef62cebSEmmanuel Vadot					type = "passive";
1987ef62cebSEmmanuel Vadot				};
1997ef62cebSEmmanuel Vadot				cpu_crit0: trip1 {
2007ef62cebSEmmanuel Vadot					temperature = <127000>;
2017ef62cebSEmmanuel Vadot					hysteresis = <2000>;
2027ef62cebSEmmanuel Vadot					type = "critical";
2037ef62cebSEmmanuel Vadot				};
2047ef62cebSEmmanuel Vadot			};
2057ef62cebSEmmanuel Vadot
2067ef62cebSEmmanuel Vadot			cooling-maps {
2077ef62cebSEmmanuel Vadot				map0 {
2087ef62cebSEmmanuel Vadot					trip = <&cpu_alert0>;
2097ef62cebSEmmanuel Vadot					cooling-device =
2107ef62cebSEmmanuel Vadot					<&A35_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
2117ef62cebSEmmanuel Vadot					<&A35_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
2127ef62cebSEmmanuel Vadot				};
2137ef62cebSEmmanuel Vadot			};
2147ef62cebSEmmanuel Vadot		};
2157ef62cebSEmmanuel Vadot	};
2167ef62cebSEmmanuel Vadot
2177ef62cebSEmmanuel Vadot	/* The two values below cannot be changed by the board */
2187ef62cebSEmmanuel Vadot	xtal32k: clock-xtal32k {
2197ef62cebSEmmanuel Vadot		compatible = "fixed-clock";
2207ef62cebSEmmanuel Vadot		#clock-cells = <0>;
2217ef62cebSEmmanuel Vadot		clock-frequency = <32768>;
2227ef62cebSEmmanuel Vadot		clock-output-names = "xtal_32KHz";
2237ef62cebSEmmanuel Vadot	};
2247ef62cebSEmmanuel Vadot
2257ef62cebSEmmanuel Vadot	xtal24m: clock-xtal24m {
2267ef62cebSEmmanuel Vadot		compatible = "fixed-clock";
2277ef62cebSEmmanuel Vadot		#clock-cells = <0>;
2287ef62cebSEmmanuel Vadot		clock-frequency = <24000000>;
2297ef62cebSEmmanuel Vadot		clock-output-names = "xtal_24MHz";
2307ef62cebSEmmanuel Vadot	};
2317ef62cebSEmmanuel Vadot
2327ef62cebSEmmanuel Vadot	/* sorted in register address */
2337ef62cebSEmmanuel Vadot	#include "imx8-ss-adma.dtsi"
2347ef62cebSEmmanuel Vadot	#include "imx8-ss-conn.dtsi"
2357ef62cebSEmmanuel Vadot	#include "imx8-ss-ddr.dtsi"
2367ef62cebSEmmanuel Vadot	#include "imx8-ss-lsio.dtsi"
2377ef62cebSEmmanuel Vadot};
2387ef62cebSEmmanuel Vadot
2397ef62cebSEmmanuel Vadot#include "imx8dxl-ss-adma.dtsi"
2407ef62cebSEmmanuel Vadot#include "imx8dxl-ss-conn.dtsi"
2417ef62cebSEmmanuel Vadot#include "imx8dxl-ss-lsio.dtsi"
2427ef62cebSEmmanuel Vadot#include "imx8dxl-ss-ddr.dtsi"
243