xref: /linux/arch/arm64/boot/dts/freescale/imx8mp-nitrogen-smarc-som.dtsi (revision fcc79e1714e8c2b8e216dc3149812edd37884eef)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright 2023 Boundary Devices
4 * Copyright 2024 Silicon Signals Pvt. Ltd.
5 *
6 * Author : Bhavin Sharma <bhavin.sharma@siliconsignals.io>
7 */
8
9/dts-v1/;
10
11#include <dt-bindings/leds/common.h>
12#include "imx8mp.dtsi"
13
14/ {
15	model = "Boundary Device Nitrogen8MP SMARC SoM";
16	compatible = "boundary,imx8mp-nitrogen-smarc-som", "fsl,imx8mp";
17
18	chosen {
19		stdout-path = &uart2;
20	};
21
22	leds {
23		compatible = "gpio-leds";
24		pinctrl-names = "default";
25		pinctrl-0 = <&pinctrl_gpio_led>;
26
27		led-0 {
28			function = LED_FUNCTION_POWER;
29			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
30			linux,default-trigger = "heartbeat";
31		};
32	};
33
34	reg_usdhc2_vmmc: regulator-usdhc2-vmmc {
35	        compatible = "regulator-fixed";
36	        regulator-name = "VSD_3V3";
37	        regulator-min-microvolt = <3300000>;
38	        regulator-max-microvolt = <3300000>;
39	        gpios = <&gpio2 19 GPIO_ACTIVE_HIGH>;
40	        enable-active-high;
41	};
42};
43
44&A53_0 {
45        cpu-supply = <&buck2>;
46};
47
48&A53_1 {
49        cpu-supply = <&buck2>;
50};
51
52&A53_2 {
53        cpu-supply = <&buck2>;
54};
55
56&A53_3 {
57        cpu-supply = <&buck2>;
58};
59
60&i2c1 {
61	clock-frequency = <400000>;
62	pinctrl-names = "default";
63	pinctrl-0 = <&pinctrl_i2c1>;
64	status = "okay";
65
66	pmic@25 {
67		compatible = "nxp,pca9450c";
68		reg = <0x25>;
69		pinctrl-names = "default";
70		pinctrl-0 = <&pinctrl_pmic>;
71		interrupt-parent = <&gpio1>;
72		interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
73
74		regulators {
75			buck1: BUCK1 {
76				regulator-name = "BUCK1";
77				regulator-min-microvolt = <600000>;
78				regulator-max-microvolt = <2187500>;
79				regulator-boot-on;
80				regulator-always-on;
81				regulator-ramp-delay = <3125>;
82			};
83
84			buck2: BUCK2 {
85				regulator-name = "BUCK2";
86				regulator-min-microvolt = <600000>;
87				regulator-max-microvolt = <2187500>;
88				regulator-boot-on;
89				regulator-always-on;
90				regulator-ramp-delay = <3125>;
91				nxp,dvs-run-voltage = <950000>;
92				nxp,dvs-standby-voltage = <850000>;
93			};
94
95			buck4: BUCK4 {
96				regulator-name = "BUCK4";
97				regulator-min-microvolt = <600000>;
98				regulator-max-microvolt = <3400000>;
99				regulator-boot-on;
100				regulator-always-on;
101			};
102
103			buck5: BUCK5 {
104				regulator-name = "BUCK5";
105				regulator-min-microvolt = <600000>;
106				regulator-max-microvolt = <3400000>;
107				regulator-boot-on;
108				regulator-always-on;
109			};
110
111			buck6: BUCK6 {
112				regulator-name = "BUCK6";
113				regulator-min-microvolt = <600000>;
114				regulator-max-microvolt = <3400000>;
115				regulator-boot-on;
116				regulator-always-on;
117			};
118
119			ldo1: LDO1 {
120				regulator-name = "LDO1";
121				regulator-min-microvolt = <1600000>;
122				regulator-max-microvolt = <3300000>;
123				regulator-boot-on;
124				regulator-always-on;
125			};
126
127			ldo2: LDO2 {
128				regulator-name = "LDO2";
129				regulator-min-microvolt = <800000>;
130				regulator-max-microvolt = <1150000>;
131				regulator-boot-on;
132				regulator-always-on;
133			};
134
135			ldo3: LDO3 {
136				regulator-name = "LDO3";
137				regulator-min-microvolt = <800000>;
138				regulator-max-microvolt = <3300000>;
139				regulator-boot-on;
140				regulator-always-on;
141			};
142
143			ldo4: LDO4 {
144				regulator-name = "LDO4";
145				regulator-min-microvolt = <800000>;
146				regulator-max-microvolt = <3300000>;
147				regulator-boot-on;
148				regulator-always-on;
149			};
150
151			ldo5: LDO5 {
152				regulator-name = "LDO5";
153				regulator-min-microvolt = <1800000>;
154				regulator-max-microvolt = <3300000>;
155				regulator-boot-on;
156				regulator-always-on;
157			};
158		};
159	};
160};
161
162&i2c6 {
163	clock-frequency = <100000>;
164	pinctrl-names = "default";
165	pinctrl-0 = <&pinctrl_i2c6>;
166	status = "okay";
167
168	mcp23018: gpio@20 {
169		compatible = "microchip,mcp23018";
170		gpio-controller;
171		#gpio-cells = <0x2>;
172		reg = <0x20>;
173		interrupts-extended = <&gpio4 22 IRQ_TYPE_LEVEL_LOW>;
174		interrupt-controller;
175		#interrupt-cells = <0x2>;
176		microchip,irq-mirror;
177		pinctrl-names = "default";
178		pinctrl-0 = <&pinctrl_mcp23018>;
179		reset-gpios = <&gpio4 27 GPIO_ACTIVE_LOW>;
180	};
181};
182
183/* Console */
184&uart2 {
185	pinctrl-names = "default";
186	pinctrl-0 = <&pinctrl_uart2>;
187	status = "okay";
188};
189
190/* SD-card */
191&usdhc2 {
192	pinctrl-names = "default", "state_100mhz", "state_200mhz";
193	pinctrl-0 = <&pinctrl_usdhc2>;
194	pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
195	pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
196	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
197	vmmc-supply = <&reg_usdhc2_vmmc>;
198	bus-width = <4>;
199	status = "okay";
200};
201
202/* eMMC */
203&usdhc1 {
204	pinctrl-names = "default", "state_100mhz", "state_200mhz";
205	pinctrl-0 = <&pinctrl_usdhc1>;
206	pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
207	pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
208	bus-width = <8>;
209	non-removable;
210	status = "okay";
211};
212
213&wdog1 {
214	pinctrl-names = "default";
215	pinctrl-0 = <&pinctrl_wdog>;
216	fsl,ext-reset-output;
217	status = "okay";
218};
219
220&iomuxc {
221	pinctrl_gpio_led: gpioledgrp {
222		fsl,pins = <
223		        MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10                     	0x19
224		>;
225	};
226
227	pinctrl_i2c1: i2c1grp {
228		fsl,pins = <
229			MX8MP_IOMUXC_I2C1_SCL__I2C1_SCL					0x400001c3
230			MX8MP_IOMUXC_I2C1_SDA__I2C1_SDA					0x400001c3
231		>;
232	};
233
234	pinctrl_i2c6: i2c6grp {
235		fsl,pins = <
236		        MX8MP_IOMUXC_SAI5_RXFS__I2C6_SCL            			0x400001c3
237		        MX8MP_IOMUXC_SAI5_RXC__I2C6_SDA                 		0x400001c3
238		>;
239	};
240
241	pinctrl_mcp23018: mcp23018grp {
242		fsl,pins = <
243		        MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22            			0x1c0
244			MX8MP_IOMUXC_SAI2_MCLK__GPIO4_IO27             			0x100
245		>;
246	};
247
248	pinctrl_pmic: pmicgrp {
249		fsl,pins = <
250			MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14				0x1c0
251		>;
252	};
253
254	pinctrl_uart2: uart2grp {
255		fsl,pins = <
256			MX8MP_IOMUXC_UART2_RXD__UART2_DCE_RX                            0x40
257			MX8MP_IOMUXC_UART2_TXD__UART2_DCE_TX                            0x40
258		>;
259	};
260
261	pinctrl_usdhc1: usdhc1grp {
262		fsl,pins = <
263			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK        			0x10
264			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD        			0x150
265			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0    			0x150
266			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1    			0x150
267			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2    			0x150
268			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3    			0x150
269			MX8MP_IOMUXC_SD1_DATA4__USDHC1_DATA4    			0x150
270			MX8MP_IOMUXC_SD1_DATA5__USDHC1_DATA5    			0x150
271			MX8MP_IOMUXC_SD1_DATA6__USDHC1_DATA6    			0x150
272			MX8MP_IOMUXC_SD1_DATA7__USDHC1_DATA7    			0x150
273			MX8MP_IOMUXC_SD1_STROBE__USDHC1_STROBE  			0x10
274			MX8MP_IOMUXC_SD1_RESET_B__USDHC1_RESET_B 			0x140
275		>;
276	};
277
278	pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
279		fsl,pins = <
280			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK        			0x14
281			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD        			0x154
282			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0    			0x154
283			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1    			0x154
284			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2    			0x154
285			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3    			0x154
286			MX8MP_IOMUXC_SD1_DATA4__USDHC1_DATA4    			0x154
287			MX8MP_IOMUXC_SD1_DATA5__USDHC1_DATA5    			0x154
288			MX8MP_IOMUXC_SD1_DATA6__USDHC1_DATA6    			0x154
289			MX8MP_IOMUXC_SD1_DATA7__USDHC1_DATA7    			0x154
290			MX8MP_IOMUXC_SD1_STROBE__USDHC1_STROBE  			0x14
291		>;
292	};
293
294	pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
295		fsl,pins = <
296			MX8MP_IOMUXC_SD1_CLK__USDHC1_CLK        			0x12
297			MX8MP_IOMUXC_SD1_CMD__USDHC1_CMD        			0x152
298			MX8MP_IOMUXC_SD1_DATA0__USDHC1_DATA0    			0x152
299			MX8MP_IOMUXC_SD1_DATA1__USDHC1_DATA1    			0x152
300			MX8MP_IOMUXC_SD1_DATA2__USDHC1_DATA2    			0x152
301			MX8MP_IOMUXC_SD1_DATA3__USDHC1_DATA3    			0x152
302			MX8MP_IOMUXC_SD1_DATA4__USDHC1_DATA4    			0x152
303			MX8MP_IOMUXC_SD1_DATA5__USDHC1_DATA5    			0x152
304			MX8MP_IOMUXC_SD1_DATA6__USDHC1_DATA6    			0x152
305			MX8MP_IOMUXC_SD1_DATA7__USDHC1_DATA7    			0x152
306			MX8MP_IOMUXC_SD1_STROBE__USDHC1_STROBE  			0x12
307		>;
308	};
309
310	pinctrl_usdhc2: usdhc2grp {
311		fsl,pins = <
312			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x190
313			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d0
314			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d0
315			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d0
316			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d0
317			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d0
318		>;
319	};
320
321	pinctrl_usdhc2_100mhz: usdhc2-100mhzgrp {
322		fsl,pins = <
323			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x194
324			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d4
325			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d4
326			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d4
327			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d4
328			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d4
329		>;
330	};
331
332	pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
333		fsl,pins = <
334			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK                                0x196
335			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD                                0x1d6
336			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0                            0x1d6
337			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1                            0x1d6
338			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2                            0x1d6
339			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3                            0x1d6
340		>;
341	};
342
343	pinctrl_wdog: wdoggrp {
344		fsl,pins = <
345			MX8MP_IOMUXC_GPIO1_IO02__WDOG1_WDOG_B				0x140
346		>;
347	};
348};
349