xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx93-tqma9352.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1*aa1a8ff2SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT)
2*aa1a8ff2SEmmanuel Vadot/*
3*aa1a8ff2SEmmanuel Vadot * Copyright (c) 2022 TQ-Systems GmbH <linux@ew.tq-group.com>,
4*aa1a8ff2SEmmanuel Vadot * D-82229 Seefeld, Germany.
5*aa1a8ff2SEmmanuel Vadot * Author: Markus Niebel
6*aa1a8ff2SEmmanuel Vadot */
7*aa1a8ff2SEmmanuel Vadot
8*aa1a8ff2SEmmanuel Vadot#include "imx93.dtsi"
9*aa1a8ff2SEmmanuel Vadot
10*aa1a8ff2SEmmanuel Vadot/{
11*aa1a8ff2SEmmanuel Vadot	model = "TQ-Systems i.MX93 TQMa93xxLA/TQMa93xxCA SOM";
12*aa1a8ff2SEmmanuel Vadot	compatible = "tq,imx93-tqma9352", "fsl,imx93";
13*aa1a8ff2SEmmanuel Vadot
14*aa1a8ff2SEmmanuel Vadot	reserved-memory {
15*aa1a8ff2SEmmanuel Vadot		#address-cells = <2>;
16*aa1a8ff2SEmmanuel Vadot		#size-cells = <2>;
17*aa1a8ff2SEmmanuel Vadot		ranges;
18*aa1a8ff2SEmmanuel Vadot
19*aa1a8ff2SEmmanuel Vadot		linux,cma {
20*aa1a8ff2SEmmanuel Vadot			compatible = "shared-dma-pool";
21*aa1a8ff2SEmmanuel Vadot			reusable;
22*aa1a8ff2SEmmanuel Vadot			alloc-ranges = <0 0x60000000 0 0x40000000>;
23*aa1a8ff2SEmmanuel Vadot			size = <0 0x10000000>;
24*aa1a8ff2SEmmanuel Vadot			linux,cma-default;
25*aa1a8ff2SEmmanuel Vadot		};
26*aa1a8ff2SEmmanuel Vadot	};
27*aa1a8ff2SEmmanuel Vadot
28*aa1a8ff2SEmmanuel Vadot	reg_v1v8: regulator-v1v8 {
29*aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
30*aa1a8ff2SEmmanuel Vadot		regulator-name = "V_1V8";
31*aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
32*aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
33*aa1a8ff2SEmmanuel Vadot	};
34*aa1a8ff2SEmmanuel Vadot
35*aa1a8ff2SEmmanuel Vadot	reg_v3v3: regulator-v3v3 {
36*aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
37*aa1a8ff2SEmmanuel Vadot		regulator-name = "V_3V3";
38*aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
39*aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
40*aa1a8ff2SEmmanuel Vadot	};
41*aa1a8ff2SEmmanuel Vadot
42*aa1a8ff2SEmmanuel Vadot	/* SD2 RST# via PMIC SW_EN */
43*aa1a8ff2SEmmanuel Vadot	reg_usdhc2_vmmc: regulator-usdhc2 {
44*aa1a8ff2SEmmanuel Vadot		compatible = "regulator-fixed";
45*aa1a8ff2SEmmanuel Vadot		pinctrl-names = "default";
46*aa1a8ff2SEmmanuel Vadot		pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>;
47*aa1a8ff2SEmmanuel Vadot		regulator-name = "VSD_3V3";
48*aa1a8ff2SEmmanuel Vadot		regulator-min-microvolt = <3300000>;
49*aa1a8ff2SEmmanuel Vadot		regulator-max-microvolt = <3300000>;
50*aa1a8ff2SEmmanuel Vadot		vin-supply = <&reg_v3v3>;
51*aa1a8ff2SEmmanuel Vadot		gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>;
52*aa1a8ff2SEmmanuel Vadot		enable-active-high;
53*aa1a8ff2SEmmanuel Vadot	};
54*aa1a8ff2SEmmanuel Vadot};
55*aa1a8ff2SEmmanuel Vadot
56*aa1a8ff2SEmmanuel Vadot&adc1 {
57*aa1a8ff2SEmmanuel Vadot	vref-supply = <&reg_v1v8>;
58*aa1a8ff2SEmmanuel Vadot};
59*aa1a8ff2SEmmanuel Vadot
60*aa1a8ff2SEmmanuel Vadot&flexspi1 {
61*aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
62*aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_flexspi1>;
63*aa1a8ff2SEmmanuel Vadot	status = "okay";
64*aa1a8ff2SEmmanuel Vadot
65*aa1a8ff2SEmmanuel Vadot	flash0: flash@0 {
66*aa1a8ff2SEmmanuel Vadot		compatible = "jedec,spi-nor";
67*aa1a8ff2SEmmanuel Vadot		reg = <0>;
68*aa1a8ff2SEmmanuel Vadot		/*
69*aa1a8ff2SEmmanuel Vadot		 * no DQS, RXCLKSRC internal loop back, max 66 MHz
70*aa1a8ff2SEmmanuel Vadot		 * clk framework uses CLK_DIVIDER_ROUND_CLOSEST
71*aa1a8ff2SEmmanuel Vadot		 * selected value together with root from
72*aa1a8ff2SEmmanuel Vadot		 * IMX93_CLK_SYS_PLL_PFD1 @ 800.000.000 Hz helps to
73*aa1a8ff2SEmmanuel Vadot		 * respect the maximum value.
74*aa1a8ff2SEmmanuel Vadot		 */
75*aa1a8ff2SEmmanuel Vadot		spi-max-frequency = <62000000>;
76*aa1a8ff2SEmmanuel Vadot		spi-tx-bus-width = <4>;
77*aa1a8ff2SEmmanuel Vadot		spi-rx-bus-width = <4>;
78*aa1a8ff2SEmmanuel Vadot	};
79*aa1a8ff2SEmmanuel Vadot};
80*aa1a8ff2SEmmanuel Vadot
81*aa1a8ff2SEmmanuel Vadot&gpio1 {
82*aa1a8ff2SEmmanuel Vadot	pmic-irq-hog {
83*aa1a8ff2SEmmanuel Vadot		gpio-hog;
84*aa1a8ff2SEmmanuel Vadot		gpios = <3 GPIO_ACTIVE_LOW>;
85*aa1a8ff2SEmmanuel Vadot		input;
86*aa1a8ff2SEmmanuel Vadot		line-name = "PMIC_IRQ#";
87*aa1a8ff2SEmmanuel Vadot	};
88*aa1a8ff2SEmmanuel Vadot};
89*aa1a8ff2SEmmanuel Vadot
90*aa1a8ff2SEmmanuel Vadot&lpi2c1 {
91*aa1a8ff2SEmmanuel Vadot	clock-frequency = <400000>;
92*aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "sleep";
93*aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_lpi2c1>;
94*aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&pinctrl_lpi2c1>;
95*aa1a8ff2SEmmanuel Vadot	status = "okay";
96*aa1a8ff2SEmmanuel Vadot
97*aa1a8ff2SEmmanuel Vadot	se97_som: temperature-sensor@1b {
98*aa1a8ff2SEmmanuel Vadot		compatible = "nxp,se97b", "jedec,jc-42.4-temp";
99*aa1a8ff2SEmmanuel Vadot		reg = <0x1b>;
100*aa1a8ff2SEmmanuel Vadot	};
101*aa1a8ff2SEmmanuel Vadot
102*aa1a8ff2SEmmanuel Vadot	pcf85063: rtc@51 {
103*aa1a8ff2SEmmanuel Vadot		compatible = "nxp,pcf85063a";
104*aa1a8ff2SEmmanuel Vadot		reg = <0x51>;
105*aa1a8ff2SEmmanuel Vadot		quartz-load-femtofarads = <7000>;
106*aa1a8ff2SEmmanuel Vadot	};
107*aa1a8ff2SEmmanuel Vadot
108*aa1a8ff2SEmmanuel Vadot	eeprom0: eeprom@53 {
109*aa1a8ff2SEmmanuel Vadot		compatible = "nxp,se97b", "atmel,24c02";
110*aa1a8ff2SEmmanuel Vadot		reg = <0x53>;
111*aa1a8ff2SEmmanuel Vadot		pagesize = <16>;
112*aa1a8ff2SEmmanuel Vadot		read-only;
113*aa1a8ff2SEmmanuel Vadot		vcc-supply = <&reg_v3v3>;
114*aa1a8ff2SEmmanuel Vadot	};
115*aa1a8ff2SEmmanuel Vadot
116*aa1a8ff2SEmmanuel Vadot	eeprom1: eeprom@57 {
117*aa1a8ff2SEmmanuel Vadot		compatible = "atmel,24c64";
118*aa1a8ff2SEmmanuel Vadot		reg = <0x57>;
119*aa1a8ff2SEmmanuel Vadot		pagesize = <32>;
120*aa1a8ff2SEmmanuel Vadot		vcc-supply = <&reg_v3v3>;
121*aa1a8ff2SEmmanuel Vadot	};
122*aa1a8ff2SEmmanuel Vadot
123*aa1a8ff2SEmmanuel Vadot	/* protectable identification memory (part of M24C64-D @57) */
124*aa1a8ff2SEmmanuel Vadot	eeprom@5f {
125*aa1a8ff2SEmmanuel Vadot		compatible = "st,24c64", "atmel,24c64";
126*aa1a8ff2SEmmanuel Vadot		reg = <0x5f>;
127*aa1a8ff2SEmmanuel Vadot		size = <32>;
128*aa1a8ff2SEmmanuel Vadot		pagesize = <32>;
129*aa1a8ff2SEmmanuel Vadot		vcc-supply = <&reg_v3v3>;
130*aa1a8ff2SEmmanuel Vadot	};
131*aa1a8ff2SEmmanuel Vadot
132*aa1a8ff2SEmmanuel Vadot	imu@6a {
133*aa1a8ff2SEmmanuel Vadot		compatible = "st,ism330dhcx";
134*aa1a8ff2SEmmanuel Vadot		reg = <0x6a>;
135*aa1a8ff2SEmmanuel Vadot		vdd-supply = <&reg_v3v3>;
136*aa1a8ff2SEmmanuel Vadot		vddio-supply = <&reg_v3v3>;
137*aa1a8ff2SEmmanuel Vadot	};
138*aa1a8ff2SEmmanuel Vadot};
139*aa1a8ff2SEmmanuel Vadot
140*aa1a8ff2SEmmanuel Vadot&usdhc1 {
141*aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default", "state_100mhz", "state_200mhz";
142*aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_usdhc1>;
143*aa1a8ff2SEmmanuel Vadot	pinctrl-1 = <&pinctrl_usdhc1>;
144*aa1a8ff2SEmmanuel Vadot	pinctrl-2 = <&pinctrl_usdhc1>;
145*aa1a8ff2SEmmanuel Vadot	bus-width = <8>;
146*aa1a8ff2SEmmanuel Vadot	non-removable;
147*aa1a8ff2SEmmanuel Vadot	no-sdio;
148*aa1a8ff2SEmmanuel Vadot	no-sd;
149*aa1a8ff2SEmmanuel Vadot	status = "okay";
150*aa1a8ff2SEmmanuel Vadot};
151*aa1a8ff2SEmmanuel Vadot
152*aa1a8ff2SEmmanuel Vadot&wdog3 {
153*aa1a8ff2SEmmanuel Vadot	pinctrl-names = "default";
154*aa1a8ff2SEmmanuel Vadot	pinctrl-0 = <&pinctrl_wdog>;
155*aa1a8ff2SEmmanuel Vadot	status = "okay";
156*aa1a8ff2SEmmanuel Vadot};
157*aa1a8ff2SEmmanuel Vadot
158*aa1a8ff2SEmmanuel Vadot&iomuxc {
159*aa1a8ff2SEmmanuel Vadot	pinctrl_flexspi1: flexspi1grp {
160*aa1a8ff2SEmmanuel Vadot		fsl,pins = <
161*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD3_CMD__FLEXSPI1_A_SS0_B	0x3fe
162*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD3_CLK__FLEXSPI1_A_SCLK	0x3fe
163*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD3_DATA0__FLEXSPI1_A_DATA00	0x3fe
164*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD3_DATA1__FLEXSPI1_A_DATA01	0x3fe
165*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD3_DATA2__FLEXSPI1_A_DATA02	0x3fe
166*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD3_DATA3__FLEXSPI1_A_DATA03	0x3fe
167*aa1a8ff2SEmmanuel Vadot		>;
168*aa1a8ff2SEmmanuel Vadot	};
169*aa1a8ff2SEmmanuel Vadot
170*aa1a8ff2SEmmanuel Vadot	pinctrl_lpi2c1: lpi2c1grp {
171*aa1a8ff2SEmmanuel Vadot		fsl,pins = <
172*aa1a8ff2SEmmanuel Vadot			MX93_PAD_I2C1_SCL__LPI2C1_SCL		0x40000b9e
173*aa1a8ff2SEmmanuel Vadot			MX93_PAD_I2C1_SDA__LPI2C1_SDA		0x40000b9e
174*aa1a8ff2SEmmanuel Vadot		>;
175*aa1a8ff2SEmmanuel Vadot	};
176*aa1a8ff2SEmmanuel Vadot
177*aa1a8ff2SEmmanuel Vadot	pinctrl_pca9451: pca9451grp {
178*aa1a8ff2SEmmanuel Vadot		fsl,pins = <
179*aa1a8ff2SEmmanuel Vadot			MX93_PAD_I2C2_SDA__GPIO1_IO03		0x1306
180*aa1a8ff2SEmmanuel Vadot		>;
181*aa1a8ff2SEmmanuel Vadot	};
182*aa1a8ff2SEmmanuel Vadot
183*aa1a8ff2SEmmanuel Vadot	pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
184*aa1a8ff2SEmmanuel Vadot		fsl,pins = <
185*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD2_RESET_B__GPIO3_IO07	0x1306
186*aa1a8ff2SEmmanuel Vadot		>;
187*aa1a8ff2SEmmanuel Vadot	};
188*aa1a8ff2SEmmanuel Vadot
189*aa1a8ff2SEmmanuel Vadot	pinctrl_usdhc1: usdhc1grp {
190*aa1a8ff2SEmmanuel Vadot		fsl,pins = <
191*aa1a8ff2SEmmanuel Vadot			/* HYS | PU | PD | FSEL_3 | X5 */
192*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_CLK__USDHC1_CLK		0x17be
193*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_STROBE__USDHC1_STROBE	0x17be
194*aa1a8ff2SEmmanuel Vadot			/* HYS | PU | FSEL_3 | X5 */
195*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_CMD__USDHC1_CMD		0x13be
196*aa1a8ff2SEmmanuel Vadot			/* HYS | PU | FSEL_3 | X4 */
197*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_DATA0__USDHC1_DATA0	0x139e
198*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_DATA1__USDHC1_DATA1	0x139e
199*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_DATA2__USDHC1_DATA2	0x139e
200*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_DATA3__USDHC1_DATA3	0x139e
201*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_DATA4__USDHC1_DATA4	0x139e
202*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_DATA5__USDHC1_DATA5	0x139e
203*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_DATA6__USDHC1_DATA6	0x139e
204*aa1a8ff2SEmmanuel Vadot			MX93_PAD_SD1_DATA7__USDHC1_DATA7	0x139e
205*aa1a8ff2SEmmanuel Vadot		>;
206*aa1a8ff2SEmmanuel Vadot	};
207*aa1a8ff2SEmmanuel Vadot
208*aa1a8ff2SEmmanuel Vadot	pinctrl_wdog: wdoggrp {
209*aa1a8ff2SEmmanuel Vadot		fsl,pins = <
210*aa1a8ff2SEmmanuel Vadot			MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY	0x31e
211*aa1a8ff2SEmmanuel Vadot		>;
212*aa1a8ff2SEmmanuel Vadot	};
213*aa1a8ff2SEmmanuel Vadot};
214