xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx95-tqma9596la.dtsi (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1*4185d10aSMarkus Niebel// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2*4185d10aSMarkus Niebel/*
3*4185d10aSMarkus Niebel * Copyright (c) 2024-2026 TQ-Systems GmbH <linux@ew.tq-group.com>,
4*4185d10aSMarkus Niebel * D-82229 Seefeld, Germany.
5*4185d10aSMarkus Niebel * Author: Alexander Stein
6*4185d10aSMarkus Niebel * Author: Markus Niebel
7*4185d10aSMarkus Niebel */
8*4185d10aSMarkus Niebel
9*4185d10aSMarkus Niebel/dts-v1/;
10*4185d10aSMarkus Niebel
11*4185d10aSMarkus Niebel#include <dt-bindings/gpio/gpio.h>
12*4185d10aSMarkus Niebel#include "imx95.dtsi"
13*4185d10aSMarkus Niebel
14*4185d10aSMarkus Niebel/ {
15*4185d10aSMarkus Niebel	memory@80000000 {
16*4185d10aSMarkus Niebel		device_type = "memory";
17*4185d10aSMarkus Niebel		/*
18*4185d10aSMarkus Niebel		 * DRAM base addr, size : 2048 MiB DRAM
19*4185d10aSMarkus Niebel		 * should be corrected by bootloader
20*4185d10aSMarkus Niebel		 */
21*4185d10aSMarkus Niebel		reg = <0 0x80000000 0 0x80000000>;
22*4185d10aSMarkus Niebel	};
23*4185d10aSMarkus Niebel
24*4185d10aSMarkus Niebel	reg_1v8: regulator-1v8 {
25*4185d10aSMarkus Niebel		compatible = "regulator-fixed";
26*4185d10aSMarkus Niebel		regulator-name = "V_1V8";
27*4185d10aSMarkus Niebel		regulator-min-microvolt = <1800000>;
28*4185d10aSMarkus Niebel		regulator-max-microvolt = <1800000>;
29*4185d10aSMarkus Niebel		regulator-always-on;
30*4185d10aSMarkus Niebel	};
31*4185d10aSMarkus Niebel
32*4185d10aSMarkus Niebel	reg_3v3: regulator-3v3 {
33*4185d10aSMarkus Niebel		compatible = "regulator-fixed";
34*4185d10aSMarkus Niebel		regulator-name = "V_3V3";
35*4185d10aSMarkus Niebel		regulator-min-microvolt = <3300000>;
36*4185d10aSMarkus Niebel		regulator-max-microvolt = <3300000>;
37*4185d10aSMarkus Niebel		regulator-always-on;
38*4185d10aSMarkus Niebel	};
39*4185d10aSMarkus Niebel
40*4185d10aSMarkus Niebel	reg_sdvmmc: regulator-sdvmmc {
41*4185d10aSMarkus Niebel		compatible = "regulator-fixed";
42*4185d10aSMarkus Niebel		pinctrl-names = "default";
43*4185d10aSMarkus Niebel		pinctrl-0 = <&pinctrl_sdvmmc>;
44*4185d10aSMarkus Niebel		regulator-name = "SD_PWR_EN";
45*4185d10aSMarkus Niebel		regulator-min-microvolt = <3300000>;
46*4185d10aSMarkus Niebel		regulator-max-microvolt = <3300000>;
47*4185d10aSMarkus Niebel		gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
48*4185d10aSMarkus Niebel		off-on-delay-us = <12000>;
49*4185d10aSMarkus Niebel		enable-active-high;
50*4185d10aSMarkus Niebel		/* can be enabled by mainboard with SD-Card support */
51*4185d10aSMarkus Niebel		status = "disabled";
52*4185d10aSMarkus Niebel	};
53*4185d10aSMarkus Niebel};
54*4185d10aSMarkus Niebel
55*4185d10aSMarkus Niebel&adc1 {
56*4185d10aSMarkus Niebel	vref-supply = <&reg_1v8>;
57*4185d10aSMarkus Niebel};
58*4185d10aSMarkus Niebel
59*4185d10aSMarkus Niebel&flexspi1 {
60*4185d10aSMarkus Niebel	pinctrl-names = "default";
61*4185d10aSMarkus Niebel	pinctrl-0 = <&pinctrl_flexspi1>;
62*4185d10aSMarkus Niebel	status = "okay";
63*4185d10aSMarkus Niebel
64*4185d10aSMarkus Niebel	flash0: flash@0 {
65*4185d10aSMarkus Niebel		compatible = "jedec,spi-nor";
66*4185d10aSMarkus Niebel		reg = <0>;
67*4185d10aSMarkus Niebel		spi-max-frequency = <66000000>;
68*4185d10aSMarkus Niebel		spi-tx-bus-width = <4>;
69*4185d10aSMarkus Niebel		spi-rx-bus-width = <4>;
70*4185d10aSMarkus Niebel		vcc-supply = <&reg_1v8>;
71*4185d10aSMarkus Niebel
72*4185d10aSMarkus Niebel		partitions {
73*4185d10aSMarkus Niebel			compatible = "fixed-partitions";
74*4185d10aSMarkus Niebel			#address-cells = <1>;
75*4185d10aSMarkus Niebel			#size-cells = <1>;
76*4185d10aSMarkus Niebel		};
77*4185d10aSMarkus Niebel	};
78*4185d10aSMarkus Niebel};
79*4185d10aSMarkus Niebel
80*4185d10aSMarkus Niebel/* System Manager */
81*4185d10aSMarkus Niebel&gpio1 {
82*4185d10aSMarkus Niebel	status = "reserved";
83*4185d10aSMarkus Niebel};
84*4185d10aSMarkus Niebel
85*4185d10aSMarkus Niebel/* System Manager */
86*4185d10aSMarkus Niebel&lpi2c1 {
87*4185d10aSMarkus Niebel	status = "reserved";
88*4185d10aSMarkus Niebel};
89*4185d10aSMarkus Niebel
90*4185d10aSMarkus Niebel&lpi2c2 {
91*4185d10aSMarkus Niebel	clock-frequency = <400000>;
92*4185d10aSMarkus Niebel	pinctrl-names = "default";
93*4185d10aSMarkus Niebel	pinctrl-0 = <&pinctrl_lpi2c2>;
94*4185d10aSMarkus Niebel	status = "okay";
95*4185d10aSMarkus Niebel
96*4185d10aSMarkus Niebel	pcf85063: rtc@51 {
97*4185d10aSMarkus Niebel		compatible = "nxp,pcf85063a";
98*4185d10aSMarkus Niebel		reg = <0x51>;
99*4185d10aSMarkus Niebel		quartz-load-femtofarads = <7000>;
100*4185d10aSMarkus Niebel	};
101*4185d10aSMarkus Niebel
102*4185d10aSMarkus Niebel	m24c64: eeprom@54 {
103*4185d10aSMarkus Niebel		compatible = "atmel,24c64";
104*4185d10aSMarkus Niebel		reg = <0x54>;
105*4185d10aSMarkus Niebel		pagesize = <32>;
106*4185d10aSMarkus Niebel		vcc-supply = <&reg_3v3>;
107*4185d10aSMarkus Niebel	};
108*4185d10aSMarkus Niebel
109*4185d10aSMarkus Niebel	/* protectable identification memory (part of M24C64-D @54) */
110*4185d10aSMarkus Niebel	eeprom@5c {
111*4185d10aSMarkus Niebel		compatible = "atmel,24c64d-wl";
112*4185d10aSMarkus Niebel		reg = <0x5c>;
113*4185d10aSMarkus Niebel		pagesize = <32>;
114*4185d10aSMarkus Niebel		vcc-supply = <&reg_3v3>;
115*4185d10aSMarkus Niebel	};
116*4185d10aSMarkus Niebel
117*4185d10aSMarkus Niebel	imu@6b {
118*4185d10aSMarkus Niebel		compatible = "st,ism330dhcx";
119*4185d10aSMarkus Niebel		reg = <0x6b>;
120*4185d10aSMarkus Niebel		vdd-supply = <&reg_3v3>;
121*4185d10aSMarkus Niebel		vddio-supply = <&reg_3v3>;
122*4185d10aSMarkus Niebel	};
123*4185d10aSMarkus Niebel};
124*4185d10aSMarkus Niebel
125*4185d10aSMarkus Niebel&thermal_zones {
126*4185d10aSMarkus Niebel	pf09-thermal {
127*4185d10aSMarkus Niebel		polling-delay = <2000>;
128*4185d10aSMarkus Niebel		polling-delay-passive = <250>;
129*4185d10aSMarkus Niebel		thermal-sensors = <&scmi_sensor 2>;
130*4185d10aSMarkus Niebel
131*4185d10aSMarkus Niebel		trips {
132*4185d10aSMarkus Niebel			pf09_alert: trip0 {
133*4185d10aSMarkus Niebel				hysteresis = <2000>;
134*4185d10aSMarkus Niebel				temperature = <140000>;
135*4185d10aSMarkus Niebel				type = "passive";
136*4185d10aSMarkus Niebel			};
137*4185d10aSMarkus Niebel
138*4185d10aSMarkus Niebel			pf09_crit: trip1 {
139*4185d10aSMarkus Niebel				hysteresis = <2000>;
140*4185d10aSMarkus Niebel				temperature = <155000>;
141*4185d10aSMarkus Niebel				type = "critical";
142*4185d10aSMarkus Niebel			};
143*4185d10aSMarkus Niebel		};
144*4185d10aSMarkus Niebel	};
145*4185d10aSMarkus Niebel
146*4185d10aSMarkus Niebel	pf53arm-thermal {
147*4185d10aSMarkus Niebel		polling-delay = <2000>;
148*4185d10aSMarkus Niebel		polling-delay-passive = <250>;
149*4185d10aSMarkus Niebel		thermal-sensors = <&scmi_sensor 4>;
150*4185d10aSMarkus Niebel
151*4185d10aSMarkus Niebel		cooling-maps {
152*4185d10aSMarkus Niebel			map0 {
153*4185d10aSMarkus Niebel				trip = <&pf5301_alert>;
154*4185d10aSMarkus Niebel				cooling-device =
155*4185d10aSMarkus Niebel					<&A55_0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
156*4185d10aSMarkus Niebel					<&A55_1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
157*4185d10aSMarkus Niebel					<&A55_2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
158*4185d10aSMarkus Niebel					<&A55_3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
159*4185d10aSMarkus Niebel					<&A55_4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
160*4185d10aSMarkus Niebel					<&A55_5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
161*4185d10aSMarkus Niebel			};
162*4185d10aSMarkus Niebel		};
163*4185d10aSMarkus Niebel
164*4185d10aSMarkus Niebel		trips {
165*4185d10aSMarkus Niebel			pf5301_alert: trip0 {
166*4185d10aSMarkus Niebel				hysteresis = <2000>;
167*4185d10aSMarkus Niebel				temperature = <140000>;
168*4185d10aSMarkus Niebel				type = "passive";
169*4185d10aSMarkus Niebel			};
170*4185d10aSMarkus Niebel
171*4185d10aSMarkus Niebel			pf5301_crit: trip1 {
172*4185d10aSMarkus Niebel				hysteresis = <2000>;
173*4185d10aSMarkus Niebel				temperature = <155000>;
174*4185d10aSMarkus Niebel				type = "critical";
175*4185d10aSMarkus Niebel			};
176*4185d10aSMarkus Niebel		};
177*4185d10aSMarkus Niebel	};
178*4185d10aSMarkus Niebel
179*4185d10aSMarkus Niebel	pf53soc-thermal {
180*4185d10aSMarkus Niebel		polling-delay = <2000>;
181*4185d10aSMarkus Niebel		polling-delay-passive = <250>;
182*4185d10aSMarkus Niebel		thermal-sensors = <&scmi_sensor 3>;
183*4185d10aSMarkus Niebel
184*4185d10aSMarkus Niebel		trips {
185*4185d10aSMarkus Niebel			pf5302_alert: trip0 {
186*4185d10aSMarkus Niebel				hysteresis = <2000>;
187*4185d10aSMarkus Niebel				temperature = <140000>;
188*4185d10aSMarkus Niebel				type = "passive";
189*4185d10aSMarkus Niebel			};
190*4185d10aSMarkus Niebel
191*4185d10aSMarkus Niebel			pf5302_crit: trip1 {
192*4185d10aSMarkus Niebel				hysteresis = <2000>;
193*4185d10aSMarkus Niebel				temperature = <155000>;
194*4185d10aSMarkus Niebel				type = "critical";
195*4185d10aSMarkus Niebel			};
196*4185d10aSMarkus Niebel		};
197*4185d10aSMarkus Niebel	};
198*4185d10aSMarkus Niebel};
199*4185d10aSMarkus Niebel
200*4185d10aSMarkus Niebel&usdhc1 {
201*4185d10aSMarkus Niebel	pinctrl-names = "default", "state_100mhz", "state_200mhz";
202*4185d10aSMarkus Niebel	pinctrl-0 = <&pinctrl_usdhc1>;
203*4185d10aSMarkus Niebel	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
204*4185d10aSMarkus Niebel	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
205*4185d10aSMarkus Niebel	bus-width = <8>;
206*4185d10aSMarkus Niebel	non-removable;
207*4185d10aSMarkus Niebel	no-sdio;
208*4185d10aSMarkus Niebel	no-sd;
209*4185d10aSMarkus Niebel	status = "okay";
210*4185d10aSMarkus Niebel};
211*4185d10aSMarkus Niebel
212*4185d10aSMarkus Niebel&wdog3 {
213*4185d10aSMarkus Niebel	status = "okay";
214*4185d10aSMarkus Niebel};
215*4185d10aSMarkus Niebel
216*4185d10aSMarkus Niebel&scmi_iomuxc {
217*4185d10aSMarkus Niebel	pinctrl_flexspi1: flexspi1grp {
218*4185d10aSMarkus Niebel		fsl,pins = <IMX95_PAD_XSPI1_SS0_B__FLEXSPI1_A_SS0_B	0x19e>,
219*4185d10aSMarkus Niebel			   <IMX95_PAD_XSPI1_DATA0__FLEXSPI1_A_DATA_BIT0	0x19e>,
220*4185d10aSMarkus Niebel			   <IMX95_PAD_XSPI1_DATA1__FLEXSPI1_A_DATA_BIT1	0x19e>,
221*4185d10aSMarkus Niebel			   <IMX95_PAD_XSPI1_DATA2__FLEXSPI1_A_DATA_BIT2	0x19e>,
222*4185d10aSMarkus Niebel			   <IMX95_PAD_XSPI1_DATA3__FLEXSPI1_A_DATA_BIT3	0x19e>,
223*4185d10aSMarkus Niebel			   /* SION to allow clock loopback from pad */
224*4185d10aSMarkus Niebel			   <IMX95_PAD_XSPI1_SCLK__FLEXSPI1_A_SCLK	0x4000019e>,
225*4185d10aSMarkus Niebel			   <IMX95_PAD_XSPI1_DQS__FLEXSPI1_A_DQS		0x4000019e>;
226*4185d10aSMarkus Niebel	};
227*4185d10aSMarkus Niebel
228*4185d10aSMarkus Niebel	pinctrl_lpi2c2: lpi2c2grp {
229*4185d10aSMarkus Niebel		fsl,pins = <IMX95_PAD_I2C2_SCL__AONMIX_TOP_LPI2C2_SCL	0x4000191e>,
230*4185d10aSMarkus Niebel			   <IMX95_PAD_I2C2_SDA__AONMIX_TOP_LPI2C2_SDA	0x4000191e>;
231*4185d10aSMarkus Niebel	};
232*4185d10aSMarkus Niebel
233*4185d10aSMarkus Niebel	pinctrl_sdvmmc: sdvmmcgrp {
234*4185d10aSMarkus Niebel		fsl,pins = <IMX95_PAD_SD2_RESET_B__GPIO3_IO_BIT7	0x11e>;
235*4185d10aSMarkus Niebel	};
236*4185d10aSMarkus Niebel
237*4185d10aSMarkus Niebel	pinctrl_usdhc1: usdhc1grp {
238*4185d10aSMarkus Niebel		fsl,pins = <IMX95_PAD_SD1_CLK__USDHC1_CLK	0x158e>,
239*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_CMD__USDHC1_CMD	0x138e>,
240*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA0__USDHC1_DATA0	0x138e>,
241*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA1__USDHC1_DATA1	0x138e>,
242*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA2__USDHC1_DATA2	0x138e>,
243*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA3__USDHC1_DATA3	0x138e>,
244*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA4__USDHC1_DATA4	0x138e>,
245*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA5__USDHC1_DATA5	0x138e>,
246*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA6__USDHC1_DATA6	0x138e>,
247*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA7__USDHC1_DATA7	0x138e>,
248*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_STROBE__USDHC1_STROBE	0x158e>;
249*4185d10aSMarkus Niebel	};
250*4185d10aSMarkus Niebel
251*4185d10aSMarkus Niebel	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
252*4185d10aSMarkus Niebel		fsl,pins = <IMX95_PAD_SD1_CLK__USDHC1_CLK	0x158e>,
253*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_CMD__USDHC1_CMD	0x138e>,
254*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA0__USDHC1_DATA0	0x138e>,
255*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA1__USDHC1_DATA1	0x138e>,
256*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA2__USDHC1_DATA2	0x138e>,
257*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA3__USDHC1_DATA3	0x138e>,
258*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA4__USDHC1_DATA4	0x138e>,
259*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA5__USDHC1_DATA5	0x138e>,
260*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA6__USDHC1_DATA6	0x138e>,
261*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA7__USDHC1_DATA7	0x138e>,
262*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_STROBE__USDHC1_STROBE	0x158e>;
263*4185d10aSMarkus Niebel	};
264*4185d10aSMarkus Niebel
265*4185d10aSMarkus Niebel	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
266*4185d10aSMarkus Niebel		fsl,pins = <IMX95_PAD_SD1_CLK__USDHC1_CLK	0x15fe>,
267*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_CMD__USDHC1_CMD	0x13fe>,
268*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA0__USDHC1_DATA0	0x13fe>,
269*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA1__USDHC1_DATA1	0x13fe>,
270*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA2__USDHC1_DATA2	0x13fe>,
271*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA3__USDHC1_DATA3	0x13fe>,
272*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA4__USDHC1_DATA4	0x13fe>,
273*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA5__USDHC1_DATA5	0x13fe>,
274*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA6__USDHC1_DATA6	0x13fe>,
275*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_DATA7__USDHC1_DATA7	0x13fe>,
276*4185d10aSMarkus Niebel			   <IMX95_PAD_SD1_STROBE__USDHC1_STROBE	0x15fe>;
277*4185d10aSMarkus Niebel	};
278*4185d10aSMarkus Niebel};
279