Merge tag 'timers-urgent-2020-12-27' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-microblaze.git] / arch / arm / boot / dts / imx6dl-lanmcu.dts
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * Copyright (c) 2019 Protonic Holland
4  * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix
5  */
6
7 /dts-v1/;
8 #include <dt-bindings/gpio/gpio.h>
9 #include <dt-bindings/leds/common.h>
10 #include "imx6dl.dtsi"
11
12 / {
13         model = "Van der Laan LANMCU";
14         compatible = "vdl,lanmcu", "fsl,imx6dl";
15
16         chosen {
17                 stdout-path = &uart4;
18         };
19
20         clock_ksz8081: clock-ksz8081 {
21                 compatible = "fixed-clock";
22                 #clock-cells = <0>;
23                 clock-frequency = <50000000>;
24         };
25
26         backlight: backlight {
27                 compatible = "pwm-backlight";
28                 pwms = <&pwm1 0 5000000 0>;
29                 brightness-levels = <0 1000>;
30                 num-interpolated-steps = <20>;
31                 default-brightness-level = <19>;
32         };
33
34         display {
35                 compatible = "fsl,imx-parallel-display";
36                 pinctrl-0 = <&pinctrl_ipu1_disp>;
37                 pinctrl-names = "default";
38                 #address-cells = <1>;
39                 #size-cells = <0>;
40
41                 port@0 {
42                         reg = <0>;
43
44                         display_in: endpoint {
45                                 remote-endpoint = <&ipu1_di0_disp0>;
46                         };
47                 };
48
49                 port@1 {
50                         reg = <1>;
51
52                         display_out: endpoint {
53                                 remote-endpoint = <&panel_in>;
54                         };
55                 };
56         };
57
58         leds {
59                 compatible = "gpio-leds";
60                 pinctrl-names = "default";
61                 pinctrl-0 = <&pinctrl_leds>;
62
63                 led-0 {
64                         label = "debug0";
65                         function = LED_FUNCTION_STATUS;
66                         gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
67                         linux,default-trigger = "heartbeat";
68                 };
69         };
70
71         panel {
72                 compatible = "edt,etm0700g0bdh6";
73                 backlight = <&backlight>;
74
75                 port {
76                         panel_in: endpoint {
77                                 remote-endpoint = <&display_out>;
78                         };
79                 };
80         };
81
82         reg_otg_vbus: regulator-otg-vbus {
83                 compatible = "regulator-fixed";
84                 regulator-name = "otg-vbus";
85                 regulator-min-microvolt = <5000000>;
86                 regulator-max-microvolt = <5000000>;
87                 gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>;
88                 enable-active-high;
89         };
90
91         usdhc2_wifi_pwrseq: usdhc2-wifi-pwrseq {
92                 compatible = "mmc-pwrseq-simple";
93                 pinctrl-names = "default";
94                 pinctrl-0 = <&pinctrl_wifi_npd>;
95                 reset-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>;
96         };
97
98 };
99
100 &can1 {
101         pinctrl-names = "default";
102         pinctrl-0 = <&pinctrl_can1>;
103         status = "okay";
104 };
105
106 &can2 {
107         pinctrl-names = "default";
108         pinctrl-0 = <&pinctrl_can2>;
109         status = "okay";
110 };
111
112 &fec {
113         pinctrl-names = "default";
114         pinctrl-0 = <&pinctrl_enet>;
115         phy-mode = "rmii";
116         clocks = <&clks IMX6QDL_CLK_ENET>,
117                  <&clks IMX6QDL_CLK_ENET>,
118                  <&clock_ksz8081>;
119         clock-names = "ipg", "ahb", "ptp";
120         phy-handle = <&rgmii_phy>;
121         status = "okay";
122
123         mdio {
124                 #address-cells = <1>;
125                 #size-cells = <0>;
126
127                 /* Microchip KSZ8081RNA PHY */
128                 rgmii_phy: ethernet-phy@0 {
129                         reg = <0>;
130                         interrupts-extended = <&gpio5 23 IRQ_TYPE_LEVEL_LOW>;
131                         reset-gpios = <&gpio5 22 GPIO_ACTIVE_LOW>;
132                         reset-assert-us = <10000>;
133                         reset-deassert-us = <300>;
134                 };
135         };
136 };
137
138 &gpio1 {
139         gpio-line-names =
140                 "", "SD1_CD", "", "", "", "", "", "",
141                 "DEBUG_0", "BL_PWM", "", "", "", "", "", "",
142                 "", "", "", "", "", "", "", "ENET_LED_GREEN",
143                 "", "", "", "", "", "", "", "";
144 };
145
146 &gpio3 {
147         gpio-line-names =
148                 "", "", "", "", "", "", "", "",
149                 "", "", "", "", "", "", "", "",
150                 "", "", "", "", "TS_INT", "USB_OTG1_OC", "USB_OTG1_PWR", "",
151                 "", "", "", "", "UART2_CTS", "", "UART3_CTS", "";
152 };
153
154 &gpio5 {
155         gpio-line-names =
156                 "", "", "", "", "", "", "", "",
157                 "", "", "", "", "", "", "", "",
158                 "", "", "", "", "", "", "ENET_RST", "ENET_INT",
159                 "", "", "I2C1_SDA", "I2C1_SCL", "", "", "", "";
160 };
161
162 &gpio6 {
163         gpio-line-names =
164                 "", "", "", "", "", "", "", "",
165                 "", "", "WLAN_REG_ON", "", "", "", "", "",
166                 "", "", "", "", "", "", "", "",
167                 "", "", "", "", "", "", "", "";
168 };
169
170 &gpio7 {
171         gpio-line-names =
172                 "", "", "", "", "", "", "", "",
173                 "EMMC_RST", "", "", "", "", "", "", "",
174                 "", "", "", "", "", "", "", "",
175                 "", "", "", "", "", "", "", "";
176 };
177
178 &i2c1 {
179         clock-frequency = <100000>;
180         pinctrl-names = "default";
181         pinctrl-0 = <&pinctrl_i2c1>;
182         status = "okay";
183
184         /* additional i2c devices are added automatically by the boot loader */
185 };
186
187 &i2c3 {
188         clock-frequency = <100000>;
189         pinctrl-names = "default";
190         pinctrl-0 = <&pinctrl_i2c3>;
191         status = "okay";
192
193         touchscreen@38 {
194                 compatible = "edt,edt-ft5406";
195                 reg = <0x38>;
196                 pinctrl-names = "default";
197                 pinctrl-0 = <&pinctrl_ts_edt>;
198                 interrupts-extended = <&gpio3 20 IRQ_TYPE_EDGE_FALLING>;
199
200                 touchscreen-size-x = <1792>;
201                 touchscreen-size-y = <1024>;
202
203                 touchscreen-fuzz-x = <0>;
204                 touchscreen-fuzz-y = <0>;
205
206                 /* Touch screen calibration */
207                 threshold = <50>;
208                 gain = <5>;
209                 offset = <10>;
210         };
211
212         rtc@51 {
213                 compatible = "nxp,pcf8563";
214                 reg = <0x51>;
215         };
216 };
217
218 &ipu1_di0_disp0 {
219         remote-endpoint = <&display_in>;
220 };
221
222 &pwm1 {
223         pinctrl-names = "default";
224         pinctrl-0 = <&pinctrl_pwm1>;
225         status = "okay";
226 };
227
228 &uart2 {
229         pinctrl-names = "default";
230         pinctrl-0 = <&pinctrl_uart2>;
231         linux,rs485-enabled-at-boot-time;
232         uart-has-rtscts;
233         status = "okay";
234 };
235
236 &uart3 {
237         pinctrl-names = "default";
238         pinctrl-0 = <&pinctrl_uart3>;
239         linux,rs485-enabled-at-boot-time;
240         uart-has-rtscts;
241         status = "okay";
242 };
243
244 &uart4 {
245         pinctrl-names = "default";
246         pinctrl-0 = <&pinctrl_uart4>;
247         status = "okay";
248 };
249
250 &usbotg {
251         vbus-supply = <&reg_otg_vbus>;
252         pinctrl-names = "default";
253         pinctrl-0 = <&pinctrl_usbotg>;
254         phy_type = "utmi";
255         dr_mode = "host";
256         status = "okay";
257 };
258
259 &usdhc1 {
260         pinctrl-names = "default";
261         pinctrl-0 = <&pinctrl_usdhc1>;
262         cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
263         no-1-8-v;
264         disable-wp;
265         cap-sd-highspeed;
266         no-mmc;
267         no-sdio;
268         status = "okay";
269 };
270
271 &usdhc2 {
272         pinctrl-names = "default";
273         pinctrl-0 = <&pinctrl_usdhc2>;
274         no-1-8-v;
275         non-removable;
276         mmc-pwrseq = <&usdhc2_wifi_pwrseq>;
277         #address-cells = <1>;
278         #size-cells = <0>;
279         status = "okay";
280
281         wifi@1 {
282                 reg = <1>;
283                 compatible = "brcm,bcm4329-fmac";
284         };
285 };
286
287 &usdhc3 {
288         pinctrl-names = "default";
289         pinctrl-0 = <&pinctrl_usdhc3>;
290         bus-width = <8>;
291         no-1-8-v;
292         non-removable;
293         no-sd;
294         no-sdio;
295         status = "okay";
296 };
297
298 &iomuxc {
299         pinctrl_can1: can1grp {
300                 fsl,pins = <
301                         MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX                0x1b000
302                         MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX                0x3008
303                 >;
304         };
305
306         pinctrl_can2: can2grp {
307                 fsl,pins = <
308                         MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX                0x1b000
309                         MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX                0x3008
310                 >;
311         };
312
313         pinctrl_enet: enetgrp {
314                 fsl,pins = <
315                         /* MX6QDL_ENET_PINGRP4 */
316                         MX6QDL_PAD_ENET_MDC__ENET_MDC                   0x1b0b0
317                         MX6QDL_PAD_ENET_MDIO__ENET_MDIO                 0x1b0b0
318                         MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0             0x1b0b0
319                         MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1             0x1b0b0
320                         MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER               0x1b0b0
321                         MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN               0x1b0b0
322                         MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0             0x1b0b0
323                         MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1             0x1b0b0
324                         MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN              0x1b0b0
325
326                         MX6QDL_PAD_GPIO_16__ENET_REF_CLK                0x1b0b0
327                         /* Phy reset */
328                         MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22                0x1b0b0
329                         /* nINTRP */
330                         MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23                0x1b0b0
331                 >;
332         };
333
334         pinctrl_i2c1: i2c1grp {
335                 fsl,pins = <
336                         MX6QDL_PAD_CSI0_DAT8__I2C1_SDA                  0x4001f8b1
337                         MX6QDL_PAD_CSI0_DAT9__I2C1_SCL                  0x4001f8b1
338                 >;
339         };
340
341         pinctrl_i2c3: i2c3grp {
342                 fsl,pins = <
343                         MX6QDL_PAD_GPIO_5__I2C3_SCL                     0x4001b8b1
344                         MX6QDL_PAD_GPIO_6__I2C3_SDA                     0x4001b8b1
345                 >;
346         };
347
348         pinctrl_ipu1_disp: ipudisp1grp {
349                 fsl,pins = <
350                         /* DSE 0x30 => 25 Ohm, 0x20 => 37 Ohm, 0x10 => 75 Ohm */
351                         MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK      0x30
352                         MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02             0x30
353                         MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03             0x30
354                         MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15            0x30
355                         MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00        0x30
356                         MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01        0x30
357                         MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02        0x30
358                         MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03        0x30
359                         MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04        0x30
360                         MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05        0x30
361                         MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06        0x30
362                         MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07        0x30
363                         MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08        0x30
364                         MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09        0x30
365                         MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10       0x30
366                         MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11       0x30
367                         MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12       0x30
368                         MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13       0x30
369                         MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14       0x30
370                         MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15       0x30
371                         MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16       0x30
372                         MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17       0x30
373                 >;
374         };
375
376         pinctrl_leds: ledsgrp {
377                 fsl,pins = <
378                         MX6QDL_PAD_GPIO_8__GPIO1_IO08                   0x1b0b0
379                 >;
380         };
381
382         pinctrl_pwm1: pwm1grp {
383                 fsl,pins = <
384                         MX6QDL_PAD_GPIO_9__PWM1_OUT                     0x8
385                 >;
386         };
387
388         pinctrl_ts_edt: ts1grp {
389                 fsl,pins = <
390                         MX6QDL_PAD_EIM_D20__GPIO3_IO20                  0x1b0b0
391                 >;
392         };
393
394         pinctrl_uart2: uart2grp {
395                 fsl,pins = <
396                         MX6QDL_PAD_EIM_D26__UART2_RX_DATA               0x1b0b1
397                         MX6QDL_PAD_EIM_D27__UART2_TX_DATA               0x1b0b1
398                         MX6QDL_PAD_EIM_D28__UART2_CTS_B                 0x130b1
399                 >;
400         };
401
402         pinctrl_uart3: uart3grp {
403                 fsl,pins = <
404                         MX6QDL_PAD_EIM_D24__UART3_TX_DATA               0x1b0b1
405                         MX6QDL_PAD_EIM_D25__UART3_RX_DATA               0x1b0b1
406                         MX6QDL_PAD_EIM_D30__UART3_CTS_B                 0x130b1
407                 >;
408         };
409
410         pinctrl_uart4: uart4grp {
411                 fsl,pins = <
412                         MX6QDL_PAD_KEY_COL0__UART4_TX_DATA              0x1b0b1
413                         MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA              0x1b0b1
414                 >;
415         };
416
417         pinctrl_usbotg: usbotggrp {
418                 fsl,pins = <
419                         MX6QDL_PAD_EIM_D21__USB_OTG_OC                  0x1b0b0
420                         /* power enable, high active */
421                         MX6QDL_PAD_EIM_D22__GPIO3_IO22                  0x1b0b0
422                 >;
423         };
424
425         pinctrl_usdhc1: usdhc1grp {
426                 fsl,pins = <
427                         MX6QDL_PAD_SD1_CMD__SD1_CMD                     0x170f9
428                         MX6QDL_PAD_SD1_CLK__SD1_CLK                     0x100f9
429                         MX6QDL_PAD_SD1_DAT0__SD1_DATA0                  0x170f9
430                         MX6QDL_PAD_SD1_DAT1__SD1_DATA1                  0x170f9
431                         MX6QDL_PAD_SD1_DAT2__SD1_DATA2                  0x170f9
432                         MX6QDL_PAD_SD1_DAT3__SD1_DATA3                  0x170f9
433                         MX6QDL_PAD_GPIO_1__SD1_CD_B                     0x1b0b0
434                 >;
435         };
436
437         pinctrl_usdhc2: usdhc2grp {
438                 fsl,pins = <
439                         MX6QDL_PAD_SD2_CMD__SD2_CMD                     0x170b9
440                         MX6QDL_PAD_SD2_CLK__SD2_CLK                     0x100b9
441                         MX6QDL_PAD_SD2_DAT0__SD2_DATA0                  0x170b9
442                         MX6QDL_PAD_SD2_DAT1__SD2_DATA1                  0x170b9
443                         MX6QDL_PAD_SD2_DAT2__SD2_DATA2                  0x170b9
444                         MX6QDL_PAD_SD2_DAT3__SD2_DATA3                  0x170b9
445                 >;
446         };
447
448         pinctrl_usdhc3: usdhc3grp {
449                 fsl,pins = <
450                         MX6QDL_PAD_SD3_CMD__SD3_CMD                     0x17099
451                         MX6QDL_PAD_SD3_CLK__SD3_CLK                     0x10099
452                         MX6QDL_PAD_SD3_DAT0__SD3_DATA0                  0x17099
453                         MX6QDL_PAD_SD3_DAT1__SD3_DATA1                  0x17099
454                         MX6QDL_PAD_SD3_DAT2__SD3_DATA2                  0x17099
455                         MX6QDL_PAD_SD3_DAT3__SD3_DATA3                  0x17099
456                         MX6QDL_PAD_SD3_DAT4__SD3_DATA4                  0x17099
457                         MX6QDL_PAD_SD3_DAT5__SD3_DATA5                  0x17099
458                         MX6QDL_PAD_SD3_DAT6__SD3_DATA6                  0x17099
459                         MX6QDL_PAD_SD3_DAT7__SD3_DATA7                  0x17099
460                         MX6QDL_PAD_SD3_RST__SD3_RESET                   0x1b0b1
461                 >;
462         };
463
464         pinctrl_wifi_npd: wifigrp {
465                 fsl,pins = <
466                         /* WL_REG_ON */
467                         MX6QDL_PAD_NANDF_RB0__GPIO6_IO10                0x13069
468                 >;
469         };
470 };