blob: f7e51755569770d9a1ec35817af6d7e353825df9 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: GPL-2.0+
2//
3// Copyright 2021 Dillon Min <dillon.minfei@gmail.com>
4//
5// Based on imx6qdl-sabresd.dtsi which is:
6// Copyright 2012 Freescale Semiconductor, Inc.
7// Copyright 2011 Linaro Ltd.
8
9#include <dt-bindings/clock/imx6qdl-clock.h>
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/input/input.h>
12
13/ {
14 chosen {
15 stdout-path = &uart4;
16 };
17
18 memory@10000000 {
19 device_type = "memory";
20 reg = <0x10000000 0x80000000>;
21 };
22
23 reg_usb_otg_vbus: regulator-usb-otg-vbus {
24 compatible = "regulator-fixed";
25 regulator-name = "usb_otg_vbus";
26 regulator-min-microvolt = <5000000>;
27 regulator-max-microvolt = <5000000>;
28 };
29
30 reg_usb_h1_vbus: regulator-usb-h1-vbus {
31 compatible = "regulator-fixed";
32 regulator-name = "usb_h1_vbus";
33 regulator-min-microvolt = <5000000>;
34 regulator-max-microvolt = <5000000>;
35 };
36
37 leds {
38 compatible = "gpio-leds";
39 pinctrl-names = "default";
40 pinctrl-0 = <&pinctrl_gpio_leds>;
41
42 led-0 {
43 gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>;
44 default-state = "on";
45 linux,default-trigger = "heartbeat";
46 };
47 };
48};
49
50&ipu1_csi0_from_ipu1_csi0_mux {
51 bus-width = <8>;
52 data-shift = <12>; /* Lines 19:12 used */
53 hsync-active = <1>;
54 vsync-active = <1>;
55};
56
57&ipu1_csi0_mux_from_parallel_sensor {
58 remote-endpoint = <&ov2659_to_ipu1_csi0_mux>;
59};
60
61&ipu1_csi0 {
62 pinctrl-names = "default";
63 pinctrl-0 = <&pinctrl_ipu1_csi0>;
64 status = "okay";
65};
66
67&ecspi1 {
68 cs-gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;
69 pinctrl-names = "default";
70 pinctrl-0 = <&pinctrl_ecspi1>, <&pinctrl_ecspi1_gpio>;
71 status = "okay";
72
73 m25p80: flash@0 {
74 #address-cells = <1>;
75 #size-cells = <1>;
76 compatible = "st,m25p80", "jedec,spi-nor";
77 spi-max-frequency = <20000000>;
78 reg = <0>;
79 };
80};
81
82&fec {
83 pinctrl-names = "default";
84 pinctrl-0 = <&pinctrl_enet>;
85 phy-mode = "rgmii-id";
86 phy-handle = <&phy>;
87 fsl,magic-packet;
88 status = "okay";
89
90 mdio {
91 #address-cells = <1>;
92 #size-cells = <0>;
93
94 phy: ethernet-phy@1 {
95 reg = <1>;
96 qca,clk-out-frequency = <125000000>;
97 reset-gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;
98 reset-assert-us = <10000>;
99 };
100 };
101};
102
103&hdmi {
104 pinctrl-names = "default";
105 pinctrl-0 = <&pinctrl_hdmi_cec>;
106 ddc-i2c-bus = <&i2c3>;
107 status = "okay";
108};
109
110&i2c2 {
111 clock-frequency = <100000>;
112 pinctrl-names = "default";
113 pinctrl-0 = <&pinctrl_i2c2>;
114 status = "okay";
115
116 pfuze100: pmic@8 {
117 compatible = "fsl,pfuze100";
118 reg = <0x08>;
119
120 regulators {
121 sw1a_reg: sw1ab {
122 regulator-min-microvolt = <300000>;
123 regulator-max-microvolt = <1875000>;
124 regulator-boot-on;
125 regulator-always-on;
126 regulator-ramp-delay = <6250>;
127 };
128
129 sw1c_reg: sw1c {
130 regulator-min-microvolt = <300000>;
131 regulator-max-microvolt = <1875000>;
132 regulator-boot-on;
133 regulator-always-on;
134 regulator-ramp-delay = <6250>;
135 };
136
137 sw2_reg: sw2 {
138 regulator-min-microvolt = <800000>;
139 regulator-max-microvolt = <3300000>;
140 regulator-boot-on;
141 regulator-always-on;
142 regulator-ramp-delay = <6250>;
143 };
144
145 sw3a_reg: sw3a {
146 regulator-min-microvolt = <400000>;
147 regulator-max-microvolt = <1975000>;
148 regulator-boot-on;
149 regulator-always-on;
150 };
151
152 sw3b_reg: sw3b {
153 regulator-min-microvolt = <400000>;
154 regulator-max-microvolt = <1975000>;
155 regulator-boot-on;
156 regulator-always-on;
157 };
158
159 sw4_reg: sw4 {
160 regulator-min-microvolt = <800000>;
161 regulator-max-microvolt = <3300000>;
162 regulator-always-on;
163 };
164
165 swbst_reg: swbst {
166 regulator-min-microvolt = <5000000>;
167 regulator-max-microvolt = <5150000>;
168 };
169
170 snvs_reg: vsnvs {
171 regulator-min-microvolt = <1000000>;
172 regulator-max-microvolt = <3000000>;
173 regulator-boot-on;
174 regulator-always-on;
175 };
176
177 vref_reg: vrefddr {
178 regulator-boot-on;
179 regulator-always-on;
180 };
181
182 vgen1_reg: vgen1 {
183 regulator-min-microvolt = <800000>;
184 regulator-max-microvolt = <1550000>;
185 };
186
187 vgen2_reg: vgen2 {
188 regulator-min-microvolt = <800000>;
189 regulator-max-microvolt = <1550000>;
190 };
191
192 vgen3_reg: vgen3 {
193 regulator-min-microvolt = <1800000>;
194 regulator-max-microvolt = <3300000>;
195 };
196
197 vgen4_reg: vgen4 {
198 regulator-min-microvolt = <1800000>;
199 regulator-max-microvolt = <3300000>;
200 regulator-always-on;
201 };
202
203 vgen5_reg: vgen5 {
204 regulator-min-microvolt = <1800000>;
205 regulator-max-microvolt = <3300000>;
206 regulator-always-on;
207 };
208
209 vgen6_reg: vgen6 {
210 regulator-min-microvolt = <1800000>;
211 regulator-max-microvolt = <3300000>;
212 regulator-always-on;
213 };
214 };
215 };
216};
217
218&i2c3 {
219 clock-frequency = <100000>;
220 pinctrl-names = "default";
221 pinctrl-0 = <&pinctrl_i2c3>;
222 status = "okay";
223
224 ov2659: camera@30 {
225 compatible = "ovti,ov2659";
226 pinctrl-names = "default";
227 pinctrl-0 = <&pinctrl_ov2659>;
228 clocks = <&clks IMX6QDL_CLK_CKO>;
229 clock-names = "xvclk";
230 reg = <0x30>;
231 powerdown-gpios = <&gpio7 11 GPIO_ACTIVE_HIGH>;
232 reset-gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
233 status = "okay";
234
235 port {
236 ov2659_to_ipu1_csi0_mux: endpoint {
237 remote-endpoint = <&ipu1_csi0_mux_from_parallel_sensor>;
238 link-frequencies = /bits/ 64 <70000000>;
239 bus-width = <8>;
240 hsync-active = <1>;
241 vsync-active = <1>;
242 };
243 };
244 };
245};
246
247&iomuxc {
248 pinctrl_ecspi1: ecspi1grp {
249 fsl,pins = <
250 MX6QDL_PAD_EIM_D16__ECSPI1_SCLK 0x100b1
251 MX6QDL_PAD_EIM_D18__ECSPI1_MOSI 0x100b1
252 MX6QDL_PAD_EIM_D17__ECSPI1_MISO 0x100b1
253 >;
254 };
255
256 pinctrl_ecspi1_gpio: ecspi1grpgpiogrp {
257 fsl,pins = <
258 MX6QDL_PAD_KEY_ROW1__GPIO4_IO09 0x1b0b0
259 MX6QDL_PAD_ENET_RXD0__GPIO1_IO27 0x1b0b0
260 >;
261 };
262
263 pinctrl_enet: enetgrp {
264 fsl,pins = <
265 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0
266 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0
267 MX6QDL_PAD_RGMII_TXC__RGMII_TXC 0x1b030
268 MX6QDL_PAD_RGMII_TD0__RGMII_TD0 0x1b030
269 MX6QDL_PAD_RGMII_TD1__RGMII_TD1 0x1b030
270 MX6QDL_PAD_RGMII_TD2__RGMII_TD2 0x1b030
271 MX6QDL_PAD_RGMII_TD3__RGMII_TD3 0x1b030
272 MX6QDL_PAD_RGMII_TX_CTL__RGMII_TX_CTL 0x1b030
273 MX6QDL_PAD_ENET_REF_CLK__ENET_TX_CLK 0x1b0b0
274 MX6QDL_PAD_RGMII_RXC__RGMII_RXC 0x1b030
275 MX6QDL_PAD_RGMII_RD0__RGMII_RD0 0x1b030
276 MX6QDL_PAD_RGMII_RD1__RGMII_RD1 0x1b030
277 MX6QDL_PAD_RGMII_RD2__RGMII_RD2 0x1b030
278 MX6QDL_PAD_RGMII_RD3__RGMII_RD3 0x1b030
279 MX6QDL_PAD_RGMII_RX_CTL__RGMII_RX_CTL 0x1b030
280 MX6QDL_PAD_KEY_COL2__GPIO4_IO10 0x1b0b0
281 >;
282 };
283
284 pinctrl_hdmi_cec: hdmicecgrp {
285 fsl,pins = <
286 MX6QDL_PAD_EIM_A25__HDMI_TX_CEC_LINE 0x1f8b0
287 >;
288 };
289
290 pinctrl_i2c2: i2c2grp {
291 fsl,pins = <
292 MX6QDL_PAD_EIM_EB2__I2C2_SCL 0x4001b8b1
293 MX6QDL_PAD_KEY_ROW3__I2C2_SDA 0x4001b8b1
294 >;
295 };
296
297 pinctrl_i2c3: i2c3grp {
298 fsl,pins = <
299 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1
300 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1
301 >;
302 };
303
304 pinctrl_ipu1_csi0: ipu1csi0grp {
305 fsl,pins = <
306 MX6QDL_PAD_CSI0_DAT12__IPU1_CSI0_DATA12 0x1b0b0
307 MX6QDL_PAD_CSI0_DAT13__IPU1_CSI0_DATA13 0x1b0b0
308 MX6QDL_PAD_CSI0_DAT14__IPU1_CSI0_DATA14 0x1b0b0
309 MX6QDL_PAD_CSI0_DAT15__IPU1_CSI0_DATA15 0x1b0b0
310 MX6QDL_PAD_CSI0_DAT16__IPU1_CSI0_DATA16 0x1b0b0
311 MX6QDL_PAD_CSI0_DAT17__IPU1_CSI0_DATA17 0x1b0b0
312 MX6QDL_PAD_CSI0_DAT18__IPU1_CSI0_DATA18 0x1b0b0
313 MX6QDL_PAD_CSI0_DAT19__IPU1_CSI0_DATA19 0x1b0b0
314 MX6QDL_PAD_CSI0_PIXCLK__IPU1_CSI0_PIXCLK 0x1b0b0
315 MX6QDL_PAD_CSI0_MCLK__IPU1_CSI0_HSYNC 0x1b0b0
316 MX6QDL_PAD_CSI0_VSYNC__IPU1_CSI0_VSYNC 0x1b0b0
317 >;
318 };
319
320 pinctrl_ov2659: ov2659grp {
321 fsl,pins = <
322 MX6QDL_PAD_GPIO_16__GPIO7_IO11 0x1b0b0
323 MX6QDL_PAD_GPIO_7__GPIO1_IO07 0x1b0b0
324 MX6QDL_PAD_GPIO_0__CCM_CLKO1 0x130b0
325 >;
326 };
327
328 pinctrl_uart4: uart4grp {
329 fsl,pins = <
330 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1
331 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1
332 >;
333 };
334
335 pinctrl_usbotg: usbotggrp {
336 fsl,pins = <
337 MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
338 >;
339 };
340
341 pinctrl_usdhc1: usdhc1grp {
342 fsl,pins = <
343 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x17059
344 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x10059
345 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x17059
346 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17059
347 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17059
348 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17059
349 >;
350 };
351
352 pinctrl_usdhc1_gpio: usdhc1grpgpiogrp {
353 fsl,pins = <
354 MX6QDL_PAD_ENET_TX_EN__GPIO1_IO28 0x1b0b0
355 >;
356 };
357
358 pinctrl_usdhc2: usdhc2grp {
359 fsl,pins = <
360 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x17059
361 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x10059
362 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x17059
363 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x17059
364 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x17059
365 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x17059
366 >;
367 };
368
369 pinctrl_usdhc2_gpio: usdhc2grpgpiogrp {
370 fsl,pins = <
371 MX6QDL_PAD_NANDF_D0__GPIO2_IO00 0x1b0b0
372 MX6QDL_PAD_NANDF_D1__GPIO2_IO01 0x1b0b0
373 >;
374 };
375
376 pinctrl_usdhc3: usdhc3grp {
377 fsl,pins = <
378 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17059
379 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10059
380 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17059
381 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17059
382 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17059
383 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17059
384 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17059
385 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17059
386 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17059
387 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17059
388 >;
389 };
390
391 pinctrl_wdog: wdoggrp {
392 fsl,pins = <
393 MX6QDL_PAD_GPIO_1__WDOG2_B 0x1b0b0
394 >;
395 };
396
397 pinctrl_gpio_leds: gpioledsgrp {
398 fsl,pins = <
399 MX6QDL_PAD_KEY_COL1__GPIO4_IO08 0x1b0b0
400 >;
401 };
402};
403
404&uart4 {
405 pinctrl-names = "default";
406 pinctrl-0 = <&pinctrl_uart4>;
407 status = "okay";
408};
409
410&usbh1 {
411 vbus-supply = <&reg_usb_h1_vbus>;
412 status = "okay";
413};
414
415&usbotg {
416 vbus-supply = <&reg_usb_otg_vbus>;
417 pinctrl-names = "default";
418 pinctrl-0 = <&pinctrl_usbotg>;
419 disable-over-current;
420 status = "okay";
421};
422
423&usdhc1 {
424 pinctrl-names = "default";
425 pinctrl-0 = <&pinctrl_usdhc1>, <&pinctrl_usdhc1_gpio>;
426 bus-width = <4>;
427 cd-gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
428 status = "okay";
429};
430
431&usdhc2 {
432 pinctrl-names = "default";
433 pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>;
434 bus-width = <4>;
435 cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
436 wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
437 status = "disabled";
438};
439
440&usdhc3 {
441 pinctrl-names = "default";
442 pinctrl-0 = <&pinctrl_usdhc3>;
443 bus-width = <8>;
444 non-removable;
445 no-1-8-v;
446 status = "okay";
447};
448
449&wdog1 {
450 status = "disabled";
451};
452
453&wdog2 {
454 pinctrl-names = "default";
455 pinctrl-0 = <&pinctrl_wdog>;
456 fsl,ext-reset-output;
457 status = "okay";
458};