GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm64 / boot / dts / freescale / imx8mm-data-modul-edm-sbc.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3  * Copyright 2022 Marek Vasut <marex@denx.de>
4  */
5
6 /dts-v1/;
7
8 #include <dt-bindings/net/qca-ar803x.h>
9 #include <dt-bindings/phy/phy-imx8-pcie.h>
10 #include "imx8mm.dtsi"
11
12 / {
13         model = "Data Modul i.MX8M Mini eDM SBC";
14         compatible = "dmo,imx8mm-data-modul-edm-sbc", "fsl,imx8mm";
15
16         aliases {
17                 rtc0 = &rtc;
18                 rtc1 = &snvs_rtc;
19         };
20
21         chosen {
22                 stdout-path = &uart3;
23         };
24
25         memory@40000000 {
26                 device_type = "memory";
27                 /* There are 1/2/4 GiB options, adjusted by bootloader. */
28                 reg = <0x0 0x40000000 0 0x40000000>;
29         };
30
31         backlight: backlight {
32                 compatible = "pwm-backlight";
33                 pinctrl-names = "default";
34                 pinctrl-0 = <&pinctrl_panel_backlight>;
35                 brightness-levels = <0 1 10 20 30 40 50 60 70 75 80 90 100>;
36                 default-brightness-level = <7>;
37                 enable-gpios = <&gpio3 0 GPIO_ACTIVE_HIGH>;
38                 pwms = <&pwm1 0 5000000 0>;
39                 /* Disabled by default, unless display board plugged in. */
40                 status = "disabled";
41         };
42
43         clk_xtal25: clk-xtal25 {
44                 compatible = "fixed-clock";
45                 #clock-cells = <0>;
46                 clock-frequency = <25000000>;
47         };
48
49         panel: panel {
50                 backlight = <&backlight>;
51                 power-supply = <&reg_panel_vcc>;
52                 /* Disabled by default, unless display board plugged in. */
53                 status = "disabled";
54         };
55
56         reg_panel_vcc: regulator-panel-vcc {
57                 compatible = "regulator-fixed";
58                 pinctrl-names = "default";
59                 pinctrl-0 = <&pinctrl_panel_vcc_reg>;
60                 regulator-name = "PANEL_VCC";
61                 regulator-min-microvolt = <5000000>;
62                 regulator-max-microvolt = <5000000>;
63                 gpio = <&gpio3 6 0>;
64                 enable-active-high;
65                 /* Disabled by default, unless display board plugged in. */
66                 status = "disabled";
67         };
68
69         reg_usdhc2_vcc: regulator-usdhc2-vcc {
70                 compatible = "regulator-fixed";
71                 pinctrl-names = "default";
72                 pinctrl-0 = <&pinctrl_usdhc2_vcc_reg>;
73                 regulator-name = "V_3V3_SD";
74                 regulator-min-microvolt = <3300000>;
75                 regulator-max-microvolt = <3300000>;
76                 gpio = <&gpio2 19 0>;
77                 enable-active-high;
78         };
79
80         watchdog-gpio {
81                 /* TPS3813 */
82                 pinctrl-names = "default";
83                 pinctrl-0 = <&pinctrl_watchdog_gpio>;
84                 compatible = "linux,wdt-gpio";
85                 always-enabled;
86                 gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
87                 hw_algo = "level";
88                 /* Reset triggers in 2..3 seconds */
89                 hw_margin_ms = <1500>;
90                 /* Disabled by default */
91                 status = "disabled";
92         };
93 };
94
95 &A53_0 {
96         cpu-supply = <&buck2_reg>;
97 };
98
99 &A53_1 {
100         cpu-supply = <&buck2_reg>;
101 };
102
103 &A53_2 {
104         cpu-supply = <&buck2_reg>;
105 };
106
107 &A53_3 {
108         cpu-supply = <&buck2_reg>;
109 };
110
111 &ddrc {
112         operating-points-v2 = <&ddrc_opp_table>;
113
114         ddrc_opp_table: opp-table {
115                 compatible = "operating-points-v2";
116
117                 opp-25M {
118                         opp-hz = /bits/ 64 <25000000>;
119                 };
120
121                 opp-100M {
122                         opp-hz = /bits/ 64 <100000000>;
123                 };
124
125                 opp-750M {
126                         opp-hz = /bits/ 64 <750000000>;
127                 };
128         };
129 };
130
131 &ecspi1 {
132         pinctrl-names = "default";
133         pinctrl-0 = <&pinctrl_ecspi1>;
134         cs-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>;
135         status = "okay";
136
137         flash@0 {       /* W25Q128FVSI */
138                 compatible = "jedec,spi-nor";
139                 m25p,fast-read;
140                 spi-max-frequency = <50000000>;
141                 reg = <0>;
142         };
143 };
144
145 &ecspi2 {       /* Feature connector SPI */
146         pinctrl-names = "default";
147         pinctrl-0 = <&pinctrl_ecspi2>;
148         cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
149         /* Disabled by default, unless feature board plugged in. */
150         status = "disabled";
151 };
152
153 &ecspi3 {       /* Display connector SPI */
154         pinctrl-names = "default";
155         pinctrl-0 = <&pinctrl_ecspi3>;
156         cs-gpios = <&gpio5 25 GPIO_ACTIVE_LOW>;
157         /* Disabled by default, unless display board plugged in. */
158         status = "disabled";
159 };
160
161 &fec1 {
162         pinctrl-names = "default";
163         pinctrl-0 = <&pinctrl_fec1>;
164         phy-mode = "rgmii-id";
165         phy-handle = <&fec1_phy>;
166         phy-supply = <&buck4_reg>;
167         fsl,magic-packet;
168         status = "okay";
169
170         mdio {
171                 #address-cells = <1>;
172                 #size-cells = <0>;
173
174                 /* Atheros AR8031 PHY */
175                 fec1_phy: ethernet-phy@0 {
176                         compatible = "ethernet-phy-ieee802.3-c22";
177                         reg = <0>;
178                         /*
179                          * Dedicated ENET_WOL# signal is unused, the PHY
180                          * can wake the SoC up via INT signal as well.
181                          */
182                         interrupts-extended = <&gpio1 15 IRQ_TYPE_LEVEL_LOW>;
183                         reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
184                         reset-assert-us = <10000>;
185                         reset-deassert-us = <10000>;
186                         qca,clk-out-frequency = <125000000>;
187                         qca,clk-out-strength = <AR803X_STRENGTH_FULL>;
188                         qca,keep-pll-enabled;
189                         vddio-supply = <&vddio>;
190
191                         vddio: vddio-regulator {
192                                 regulator-name = "VDDIO";
193                                 regulator-min-microvolt = <1800000>;
194                                 regulator-max-microvolt = <1800000>;
195                         };
196
197                         vddh: vddh-regulator {
198                                 regulator-name = "VDDH";
199                         };
200                 };
201         };
202 };
203
204 &gpio1 {
205         gpio-line-names =
206                 "", "ENET_RST#", "WDOG_B#", "PMIC_INT#",
207                 "", "M2-B_PCIE_RST#", "M2-B_PCIE_WAKE#", "RTC_IRQ#",
208                 "WDOG_KICK#", "M2-B_PCIE_CLKREQ#",
209                 "USB1_OTG_ID_3V3", "ENET_WOL#",
210                 "", "", "", "ENET_INT#",
211                 "", "", "", "", "", "", "", "",
212                 "", "", "", "", "", "", "", "";
213 };
214
215 &gpio2 {
216         gpio-line-names =
217                 "MEMCFG2", "MEMCFG1", "DSI_RESET_1V8#", "DSI_IRQ_1V8#",
218                 "M2-B_FULL_CARD_PWROFF_1V8#", "EEPROM_WP_1V8#",
219                 "PCIE_CLK_GEN_CLKPWRGD_PD_1V8#", "GRAPHICS_PRSNT_1V8#",
220                 "MEMCFG0", "WDOG_EN",
221                 "M2-B_W_DISABLE1_WWAN_1V8#", "M2-B_W_DISABLE2_GPS_1V8#",
222                 "", "", "", "",
223                 "", "", "", "SD2_RESET#", "", "", "", "",
224                 "", "", "", "", "", "", "", "";
225 };
226
227 &gpio3 {
228         gpio-line-names =
229                 "BL_ENABLE_1V8", "PG_V_IN_VAR#", "", "",
230                 "", "", "TFT_ENABLE_1V8", "GRAPHICS_GPIO0_1V8",
231                 "CSI_PD_1V8", "CSI_RESET_1V8#", "", "",
232                 "", "", "", "",
233                 "", "", "", "M2-B_WAKE_WWAN_1V8#",
234                 "M2-B_RESET_1V8#", "", "", "",
235                 "", "", "", "", "", "", "", "";
236 };
237
238 &gpio4 {
239         gpio-line-names =
240                 "NC0", "NC1", "BOOTCFG0", "BOOTCFG1",
241                 "BOOTCFG2", "BOOTCFG3", "BOOTCFG4", "BOOTCFG5",
242                 "BOOTCFG6", "BOOTCFG7", "NC10", "NC11",
243                 "BOOTCFG8", "BOOTCFG9", "BOOTCFG10", "BOOTCFG11",
244                 "BOOTCFG12", "BOOTCFG13", "BOOTCFG14", "BOOTCFG15",
245                 "NC20", "", "", "",
246                 "", "CAN_INT#", "CAN_RST#", "GPIO4_IO27",
247                 "DIS_USB_DN2", "", "", "";
248 };
249
250 &gpio5 {
251         gpio-line-names =
252                 "", "DIS_USB_DN1", "USBHUB_RESET#", "GPIO5_IO03",
253                 "GPIO5_IO04", "", "", "",
254                 "", "SPI1_CS#", "", "",
255                 "", "SPI2_CS#", "I2C1_SCL_3V3", "I2C1_SDA_3V3",
256                 "I2C2_SCL_3V3", "I2C2_SDA_3V3", "I2C3_SCL_3V3", "I2C3_SDA_3V3",
257                 "I2C4_SCL_3V3", "I2C4_SDA_3V3", "", "",
258                 "", "SPI3_CS#", "", "", "", "", "", "";
259 };
260
261 &i2c1 {
262         /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */
263         clock-frequency = <100000>;
264         pinctrl-names = "default", "gpio";
265         pinctrl-0 = <&pinctrl_i2c1>;
266         pinctrl-1 = <&pinctrl_i2c1_gpio>;
267         scl-gpios = <&gpio5 14 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
268         sda-gpios = <&gpio5 15 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
269         status = "okay";
270
271         pmic: pmic@4b {
272                 compatible = "rohm,bd71847";
273                 reg = <0x4b>;
274                 pinctrl-names = "default";
275                 pinctrl-0 = <&pinctrl_pmic>;
276                 interrupt-parent = <&gpio1>;
277                 interrupts = <3 IRQ_TYPE_EDGE_FALLING>;
278                 rohm,reset-snvs-powered;
279
280                 /*
281                  * i.MX 8M Mini Data Sheet for Consumer Products
282                  * 3.1.3 Operating ranges
283                  * MIMX8MM4DVTLZAA
284                  */
285                 regulators {
286                         /* VDD_SOC */
287                         buck1_reg: BUCK1 {
288                                 regulator-name = "buck1";
289                                 regulator-min-microvolt = <850000>;
290                                 regulator-max-microvolt = <850000>;
291                                 regulator-boot-on;
292                                 regulator-always-on;
293                                 regulator-ramp-delay = <1250>;
294                         };
295
296                         /* VDD_ARM */
297                         buck2_reg: BUCK2 {
298                                 regulator-name = "buck2";
299                                 regulator-min-microvolt = <850000>;
300                                 regulator-max-microvolt = <1050000>;
301                                 regulator-boot-on;
302                                 regulator-always-on;
303                                 regulator-ramp-delay = <1250>;
304                                 rohm,dvs-run-voltage = <1000000>;
305                                 rohm,dvs-idle-voltage = <950000>;
306                         };
307
308                         /* VDD_DRAM, BUCK5 */
309                         buck3_reg: BUCK3 {
310                                 regulator-name = "buck3";
311                                 /* 1.5 GHz DDR bus clock */
312                                 regulator-min-microvolt = <900000>;
313                                 regulator-max-microvolt = <1000000>;
314                                 regulator-boot-on;
315                                 regulator-always-on;
316                         };
317
318                         /* 3V3_VDD, BUCK6 */
319                         buck4_reg: BUCK4 {
320                                 regulator-name = "buck4";
321                                 regulator-min-microvolt = <3300000>;
322                                 regulator-max-microvolt = <3300000>;
323                                 regulator-boot-on;
324                                 regulator-always-on;
325                         };
326
327                         /* 1V8_VDD, BUCK7 */
328                         buck5_reg: BUCK5 {
329                                 regulator-name = "buck5";
330                                 regulator-min-microvolt = <1800000>;
331                                 regulator-max-microvolt = <1800000>;
332                                 regulator-boot-on;
333                                 regulator-always-on;
334                         };
335
336                         /* 1V1_NVCC_DRAM, BUCK8 */
337                         buck6_reg: BUCK6 {
338                                 regulator-name = "buck6";
339                                 regulator-min-microvolt = <1100000>;
340                                 regulator-max-microvolt = <1100000>;
341                                 regulator-boot-on;
342                                 regulator-always-on;
343                         };
344
345                         /* 1V8_NVCC_SNVS */
346                         ldo1_reg: LDO1 {
347                                 regulator-name = "ldo1";
348                                 regulator-min-microvolt = <1800000>;
349                                 regulator-max-microvolt = <1800000>;
350                                 regulator-boot-on;
351                                 regulator-always-on;
352                         };
353
354                         /* 0V8_VDD_SNVS */
355                         ldo2_reg: LDO2 {
356                                 regulator-name = "ldo2";
357                                 regulator-min-microvolt = <800000>;
358                                 regulator-max-microvolt = <800000>;
359                                 regulator-boot-on;
360                                 regulator-always-on;
361                         };
362
363                         /* 1V8_VDDA */
364                         ldo3_reg: LDO3 {
365                                 regulator-name = "ldo3";
366                                 regulator-min-microvolt = <1800000>;
367                                 regulator-max-microvolt = <1800000>;
368                                 regulator-boot-on;
369                                 regulator-always-on;
370                         };
371
372                         /* 0V9_VDD_PHY */
373                         ldo4_reg: LDO4 {
374                                 regulator-name = "ldo4";
375                                 regulator-min-microvolt = <900000>;
376                                 regulator-max-microvolt = <900000>;
377                                 regulator-boot-on;
378                                 regulator-always-on;
379                         };
380
381                         /* 1V2_VDD_PHY */
382                         ldo6_reg: LDO6 {
383                                 regulator-name = "ldo6";
384                                 regulator-min-microvolt = <1200000>;
385                                 regulator-max-microvolt = <1200000>;
386                                 regulator-boot-on;
387                                 regulator-always-on;
388                         };
389                 };
390         };
391 };
392
393 &i2c2 {
394         /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */
395         clock-frequency = <100000>;
396         pinctrl-names = "default", "gpio";
397         pinctrl-0 = <&pinctrl_i2c2>;
398         pinctrl-1 = <&pinctrl_i2c2_gpio>;
399         scl-gpios = <&gpio5 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
400         sda-gpios = <&gpio5 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
401         status = "okay";
402
403         usb-hub@2c {
404                 pinctrl-names = "default";
405                 pinctrl-0 = <&pinctrl_usb_hub>;
406                 compatible = "microchip,usb2514bi";
407                 reg = <0x2c>;
408                 individual-port-switching;
409                 reset-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
410                 self-powered;
411         };
412
413         eeprom: eeprom@50 {
414                 compatible = "atmel,24c32";
415                 reg = <0x50>;
416                 pagesize = <32>;
417         };
418
419         rtc: rtc@68 {
420                 pinctrl-names = "default";
421                 pinctrl-0 = <&pinctrl_rtc>;
422                 compatible = "st,m41t62";
423                 reg = <0x68>;
424                 interrupts-extended = <&gpio1 7 IRQ_TYPE_LEVEL_LOW>;
425         };
426
427         pcieclk: clk@6a {
428                 compatible = "renesas,9fgv0241";
429                 reg = <0x6a>;
430                 clocks = <&clk_xtal25>;
431                 #clock-cells = <1>;
432         };
433 };
434
435 &i2c3 { /* Display connector I2C */
436         /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */
437         clock-frequency = <320000>;
438         pinctrl-names = "default", "gpio";
439         pinctrl-0 = <&pinctrl_i2c3>;
440         pinctrl-1 = <&pinctrl_i2c3_gpio>;
441         scl-gpios = <&gpio5 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
442         sda-gpios = <&gpio5 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
443         status = "okay";
444 };
445
446 &i2c4 { /* Feature connector I2C */
447         /* IMX8MM ERRATA e7805 -- I2C is limited to 384 kHz due to SoC bug */
448         clock-frequency = <320000>;
449         pinctrl-names = "default", "gpio";
450         pinctrl-0 = <&pinctrl_i2c4>;
451         pinctrl-1 = <&pinctrl_i2c4_gpio>;
452         scl-gpios = <&gpio5 20 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
453         sda-gpios = <&gpio5 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
454         status = "okay";
455 };
456
457 &iomuxc {
458         pinctrl-names = "default";
459         pinctrl-0 = <&pinctrl_hog_feature>, <&pinctrl_hog_misc>,
460                     <&pinctrl_hog_panel>, <&pinctrl_hog_sbc>,
461                     <&pinctrl_panel_expansion>;
462
463         pinctrl_ecspi1: ecspi1-grp {
464                 fsl,pins = <
465                         MX8MM_IOMUXC_ECSPI1_SCLK_ECSPI1_SCLK            0x44
466                         MX8MM_IOMUXC_ECSPI1_MOSI_ECSPI1_MOSI            0x44
467                         MX8MM_IOMUXC_ECSPI1_MISO_ECSPI1_MISO            0x44
468                         MX8MM_IOMUXC_ECSPI1_SS0_GPIO5_IO9               0x40
469                 >;
470         };
471
472         pinctrl_ecspi2: ecspi2-grp {
473                 fsl,pins = <
474                         MX8MM_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK            0x44
475                         MX8MM_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI            0x44
476                         MX8MM_IOMUXC_ECSPI2_MISO_ECSPI2_MISO            0x44
477                         MX8MM_IOMUXC_ECSPI2_SS0_GPIO5_IO13              0x40
478                 >;
479         };
480
481         pinctrl_ecspi3: ecspi3-grp {
482                 fsl,pins = <
483                         MX8MM_IOMUXC_UART1_RXD_ECSPI3_SCLK              0x44
484                         MX8MM_IOMUXC_UART1_TXD_ECSPI3_MOSI              0x44
485                         MX8MM_IOMUXC_UART2_RXD_ECSPI3_MISO              0x44
486                         MX8MM_IOMUXC_UART2_TXD_GPIO5_IO25               0x40
487                 >;
488         };
489
490         pinctrl_fec1: fec1-grp {
491                 fsl,pins = <
492                         MX8MM_IOMUXC_ENET_MDC_ENET1_MDC                 0x3
493                         MX8MM_IOMUXC_ENET_MDIO_ENET1_MDIO               0x3
494                         MX8MM_IOMUXC_ENET_RD0_ENET1_RGMII_RD0           0x91
495                         MX8MM_IOMUXC_ENET_RD1_ENET1_RGMII_RD1           0x91
496                         MX8MM_IOMUXC_ENET_RD2_ENET1_RGMII_RD2           0x91
497                         MX8MM_IOMUXC_ENET_RD3_ENET1_RGMII_RD3           0x91
498                         MX8MM_IOMUXC_ENET_RXC_ENET1_RGMII_RXC           0x91
499                         MX8MM_IOMUXC_ENET_RX_CTL_ENET1_RGMII_RX_CTL     0x91
500                         MX8MM_IOMUXC_ENET_TD0_ENET1_RGMII_TD0           0x1f
501                         MX8MM_IOMUXC_ENET_TD1_ENET1_RGMII_TD1           0x1f
502                         MX8MM_IOMUXC_ENET_TD2_ENET1_RGMII_TD2           0x1f
503                         MX8MM_IOMUXC_ENET_TD3_ENET1_RGMII_TD3           0x1f
504                         MX8MM_IOMUXC_ENET_TXC_ENET1_RGMII_TXC           0x1f
505                         MX8MM_IOMUXC_ENET_TX_CTL_ENET1_RGMII_TX_CTL     0x1f
506                         /* ENET_RST# */
507                         MX8MM_IOMUXC_GPIO1_IO01_GPIO1_IO1               0x6
508                         /* ENET_WOL# */
509                         MX8MM_IOMUXC_GPIO1_IO11_GPIO1_IO11              0x40000090
510                         /* ENET_INT# */
511                         MX8MM_IOMUXC_GPIO1_IO15_GPIO1_IO15              0x40000090
512                 >;
513         };
514
515         pinctrl_hog_feature: hog-feature-grp {
516                 fsl,pins = <
517                         /* GPIO4_IO27 */
518                         MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27               0x40000006
519                         /* GPIO5_IO03 */
520                         MX8MM_IOMUXC_SPDIF_TX_GPIO5_IO3                 0x40000006
521                         /* GPIO5_IO04 */
522                         MX8MM_IOMUXC_SPDIF_RX_GPIO5_IO4                 0x40000006
523
524                         /* CAN_INT# */
525                         MX8MM_IOMUXC_SAI2_TXC_GPIO4_IO25                0x40000090
526                         /* CAN_RST# */
527                         MX8MM_IOMUXC_SAI2_TXD0_GPIO4_IO26               0x26
528                 >;
529         };
530
531         pinctrl_hog_panel: hog-panel-grp {
532                 fsl,pins = <
533                         /* GRAPHICS_GPIO0_1V8 */
534                         MX8MM_IOMUXC_NAND_DATA01_GPIO3_IO7              0x26
535                 >;
536         };
537
538         pinctrl_hog_misc: hog-misc-grp {
539                 fsl,pins = <
540                         /* PG_V_IN_VAR# */
541                         MX8MM_IOMUXC_NAND_CE0_B_GPIO3_IO1               0x40000000
542                         /* CSI_PD_1V8 */
543                         MX8MM_IOMUXC_NAND_DATA02_GPIO3_IO8              0x0
544                         /* CSI_RESET_1V8# */
545                         MX8MM_IOMUXC_NAND_DATA03_GPIO3_IO9              0x0
546
547                         /* DIS_USB_DN1 */
548                         MX8MM_IOMUXC_SAI3_TXD_GPIO5_IO1                 0x0
549                         /* DIS_USB_DN2 */
550                         MX8MM_IOMUXC_SAI3_RXFS_GPIO4_IO28               0x0
551
552                         /* EEPROM_WP_1V8# */
553                         MX8MM_IOMUXC_SD1_DATA3_GPIO2_IO5                0x100
554                         /* PCIE_CLK_GEN_CLKPWRGD_PD_1V8# */
555                         MX8MM_IOMUXC_SD1_DATA4_GPIO2_IO6                0x0
556                         /* GRAPHICS_PRSNT_1V8# */
557                         MX8MM_IOMUXC_SD1_DATA5_GPIO2_IO7                0x40000000
558
559                         /* CLK_CCM_CLKO1_3V3 */
560                         MX8MM_IOMUXC_GPIO1_IO14_CCMSRCGPCMIX_CLKO1      0x10
561                 >;
562         };
563
564         pinctrl_hog_sbc: hog-sbc-grp {
565                 fsl,pins = <
566                         /* MEMCFG[0..2] straps */
567                         MX8MM_IOMUXC_SD1_DATA6_GPIO2_IO8                0x40000140
568                         MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1                  0x40000140
569                         MX8MM_IOMUXC_SD1_CLK_GPIO2_IO0                  0x40000140
570
571                         /* BOOT_CFG[0..15] straps */
572                         MX8MM_IOMUXC_SAI1_RXD0_GPIO4_IO2                0x40000000
573                         MX8MM_IOMUXC_SAI1_RXD1_GPIO4_IO3                0x40000000
574                         MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4                0x40000000
575                         MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5                0x40000000
576                         MX8MM_IOMUXC_SAI1_RXD4_GPIO4_IO6                0x40000000
577                         MX8MM_IOMUXC_SAI1_RXD5_GPIO4_IO7                0x40000000
578                         MX8MM_IOMUXC_SAI1_RXD6_GPIO4_IO8                0x40000000
579                         MX8MM_IOMUXC_SAI1_RXD7_GPIO4_IO9                0x40000000
580                         MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12               0x40000000
581                         MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13               0x40000000
582                         MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14               0x40000000
583                         MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15               0x40000000
584                         MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16               0x40000000
585                         MX8MM_IOMUXC_SAI1_TXD5_GPIO4_IO17               0x40000000
586                         MX8MM_IOMUXC_SAI1_TXD6_GPIO4_IO18               0x40000000
587                         MX8MM_IOMUXC_SAI1_TXD7_GPIO4_IO19               0x40000000
588
589                         /* Not connected pins */
590                         MX8MM_IOMUXC_SAI1_MCLK_GPIO4_IO20               0x0
591                         MX8MM_IOMUXC_SAI1_TXFS_GPIO4_IO10               0x0
592                         MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11                0x0
593                         MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0                0x0
594                         MX8MM_IOMUXC_SAI1_RXC_GPIO4_IO1                 0x0
595                 >;
596         };
597
598         pinctrl_i2c1: i2c1-grp {
599                 fsl,pins = <
600                         MX8MM_IOMUXC_I2C1_SCL_I2C1_SCL                  0x40000084
601                         MX8MM_IOMUXC_I2C1_SDA_I2C1_SDA                  0x40000084
602                 >;
603         };
604
605         pinctrl_i2c1_gpio: i2c1-gpio-grp {
606                 fsl,pins = <
607                         MX8MM_IOMUXC_I2C1_SCL_GPIO5_IO14                0x84
608                         MX8MM_IOMUXC_I2C1_SDA_GPIO5_IO15                0x84
609                 >;
610         };
611
612         pinctrl_i2c2: i2c2-grp {
613                 fsl,pins = <
614                         MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL                  0x40000084
615                         MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA                  0x40000084
616                 >;
617         };
618
619         pinctrl_i2c2_gpio: i2c2-gpio-grp {
620                 fsl,pins = <
621                         MX8MM_IOMUXC_I2C2_SCL_GPIO5_IO16                0x84
622                         MX8MM_IOMUXC_I2C2_SDA_GPIO5_IO17                0x84
623                 >;
624         };
625
626         pinctrl_i2c3: i2c3-grp {
627                 fsl,pins = <
628                         MX8MM_IOMUXC_I2C3_SCL_I2C3_SCL                  0x40000084
629                         MX8MM_IOMUXC_I2C3_SDA_I2C3_SDA                  0x40000084
630                 >;
631         };
632
633         pinctrl_i2c3_gpio: i2c3-gpio-grp {
634                 fsl,pins = <
635                         MX8MM_IOMUXC_I2C3_SCL_GPIO5_IO18                0x84
636                         MX8MM_IOMUXC_I2C3_SDA_GPIO5_IO19                0x84
637                 >;
638         };
639
640         pinctrl_i2c4: i2c4-grp {
641                 fsl,pins = <
642                         MX8MM_IOMUXC_I2C4_SCL_I2C4_SCL                  0x40000084
643                         MX8MM_IOMUXC_I2C4_SDA_I2C4_SDA                  0x40000084
644                 >;
645         };
646
647         pinctrl_i2c4_gpio: i2c4-gpio-grp {
648                 fsl,pins = <
649                         MX8MM_IOMUXC_I2C4_SCL_GPIO5_IO20                0x84
650                         MX8MM_IOMUXC_I2C4_SDA_GPIO5_IO21                0x84
651                 >;
652         };
653
654         pinctrl_panel_backlight: panel-backlight-grp {
655                 fsl,pins = <
656                         /* BL_ENABLE_1V8 */
657                         MX8MM_IOMUXC_NAND_ALE_GPIO3_IO0                 0x104
658                 >;
659         };
660
661         pinctrl_panel_expansion: panel-expansion-grp {
662                 fsl,pins = <
663                         /* DSI_RESET_1V8# */
664                         MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2                0x2
665                         /* DSI_IRQ_1V8# */
666                         MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3                0x40000090
667                 >;
668         };
669
670         pinctrl_panel_vcc_reg: panel-vcc-grp {
671                 fsl,pins = <
672                         /* TFT_ENABLE_1V8 */
673                         MX8MM_IOMUXC_NAND_DATA00_GPIO3_IO6              0x104
674                 >;
675         };
676
677         pinctrl_panel_pwm: panel-pwm-grp {
678                 fsl,pins = <
679                         /* BL_PWM_3V3 */
680                         MX8MM_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT             0x12
681                 >;
682         };
683
684         pinctrl_pcie0: pcie-grp {
685                 fsl,pins = <
686                         /* M2-B_RESET_1V8# */
687                         MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20                0x102
688                         /* M2-B_PCIE_RST# */
689                         MX8MM_IOMUXC_GPIO1_IO05_GPIO1_IO5               0x2
690                         /* M2-B_FULL_CARD_PWROFF_1V8# */
691                         MX8MM_IOMUXC_SD1_DATA2_GPIO2_IO4                0x102
692                         /* M2-B_W_DISABLE1_WWAN_1V8# */
693                         MX8MM_IOMUXC_SD1_RESET_B_GPIO2_IO10             0x102
694                         /* M2-B_W_DISABLE2_GPS_1V8# */
695                         MX8MM_IOMUXC_SD1_STROBE_GPIO2_IO11              0x102
696                         /* CLK_M2_32K768 */
697                         MX8MM_IOMUXC_GPIO1_IO00_ANAMIX_REF_CLK_32K      0x14
698                         /* M2-B_WAKE_WWAN_1V8# */
699                         MX8MM_IOMUXC_SAI5_RXFS_GPIO3_IO19               0x40000140
700                         /* M2-B_PCIE_WAKE# */
701                         MX8MM_IOMUXC_GPIO1_IO06_GPIO1_IO6               0x40000140
702                         /* M2-B_PCIE_CLKREQ# */
703                         MX8MM_IOMUXC_GPIO1_IO09_GPIO1_IO9               0x40000140
704                 >;
705         };
706
707         pinctrl_pmic: pmic-grp {
708                 fsl,pins = <
709                         MX8MM_IOMUXC_GPIO1_IO03_GPIO1_IO3               0x40000090
710                 >;
711         };
712
713         pinctrl_rtc: rtc-grp {
714                 fsl,pins = <
715                         /* RTC_IRQ# */
716                         MX8MM_IOMUXC_GPIO1_IO07_GPIO1_IO7               0x40000090
717                 >;
718         };
719
720         pinctrl_sai5: sai5-grp {
721                 fsl,pins = <
722                         MX8MM_IOMUXC_SAI5_MCLK_SAI5_MCLK                0x100
723                         MX8MM_IOMUXC_SAI5_RXD0_SAI5_RX_DATA0            0x0
724                         MX8MM_IOMUXC_SAI5_RXD1_SAI5_TX_SYNC             0x100
725                         MX8MM_IOMUXC_SAI5_RXD2_SAI5_TX_BCLK             0x100
726                         MX8MM_IOMUXC_SAI5_RXD3_SAI5_TX_DATA0            0x100
727                 >;
728         };
729
730         pinctrl_uart1: uart1-grp {
731                 fsl,pins = <
732                         MX8MM_IOMUXC_SAI2_RXC_UART1_DCE_RX              0x90
733                         MX8MM_IOMUXC_SAI2_RXD0_UART1_DCE_RTS_B          0x90
734                         MX8MM_IOMUXC_SAI2_RXFS_UART1_DCE_TX             0x50
735                         MX8MM_IOMUXC_SAI2_TXFS_UART1_DCE_CTS_B          0x50
736                 >;
737         };
738
739         pinctrl_uart2: uart2-grp {
740                 fsl,pins = <
741                         MX8MM_IOMUXC_SAI3_RXC_UART2_DCE_CTS_B           0x50
742                         MX8MM_IOMUXC_SAI3_RXD_UART2_DCE_RTS_B           0x90
743                         MX8MM_IOMUXC_SAI3_TXC_UART2_DCE_TX              0x50
744                         MX8MM_IOMUXC_SAI3_TXFS_UART2_DCE_RX             0x90
745                 >;
746         };
747
748         pinctrl_uart3: uart3-grp {
749                 fsl,pins = <
750                         MX8MM_IOMUXC_UART3_RXD_UART3_DCE_RX             0x40
751                         MX8MM_IOMUXC_UART3_TXD_UART3_DCE_TX             0x40
752                 >;
753         };
754
755         pinctrl_uart4: uart4-grp {
756                 fsl,pins = <
757                         MX8MM_IOMUXC_UART4_RXD_UART4_DCE_RX             0x40
758                         MX8MM_IOMUXC_UART4_TXD_UART4_DCE_TX             0x40
759                 >;
760         };
761
762         pinctrl_usb_hub: usb-hub-grp {
763                 fsl,pins = <
764                         /* USBHUB_RESET# */
765                         MX8MM_IOMUXC_SAI3_MCLK_GPIO5_IO2                0x4
766                 >;
767         };
768
769         pinctrl_usb_otg1: usb-otg1-grp {
770                 fsl,pins = <
771                         MX8MM_IOMUXC_GPIO1_IO10_GPIO1_IO10              0x40000000
772                         MX8MM_IOMUXC_GPIO1_IO12_USB1_OTG_PWR            0x4
773                         MX8MM_IOMUXC_GPIO1_IO13_USB1_OTG_OC             0x40000090
774                 >;
775         };
776
777         pinctrl_usdhc2_vcc_reg: usdhc2-vcc-reg-grp {
778                 fsl,pins = <
779                         MX8MM_IOMUXC_SD2_RESET_B_GPIO2_IO19             0x4
780                 >;
781         };
782
783         pinctrl_usdhc2: usdhc2-grp {
784                 fsl,pins = <
785                         MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x190
786                         MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d0
787                         MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d0
788                         MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d0
789                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d0
790                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d0
791                         MX8MM_IOMUXC_SD2_WP_USDHC2_WP                   0x400000d6
792                         MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B               0x0d6
793                         MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
794                 >;
795         };
796
797         pinctrl_usdhc2_100mhz: usdhc2-100mhz-grp {
798                 fsl,pins = <
799                         MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x194
800                         MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d4
801                         MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d4
802                         MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d4
803                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d4
804                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d4
805                         MX8MM_IOMUXC_SD2_WP_USDHC2_WP                   0x400000d6
806                         MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B               0x0d6
807                         MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
808                 >;
809         };
810
811         pinctrl_usdhc2_200mhz: usdhc2-200mhz-grp {
812                 fsl,pins = <
813                         MX8MM_IOMUXC_SD2_CLK_USDHC2_CLK                 0x196
814                         MX8MM_IOMUXC_SD2_CMD_USDHC2_CMD                 0x1d6
815                         MX8MM_IOMUXC_SD2_DATA0_USDHC2_DATA0             0x1d6
816                         MX8MM_IOMUXC_SD2_DATA1_USDHC2_DATA1             0x1d6
817                         MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2             0x1d6
818                         MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3             0x1d6
819                         MX8MM_IOMUXC_SD2_WP_USDHC2_WP                   0x400000d6
820                         MX8MM_IOMUXC_SD2_CD_B_USDHC2_CD_B               0x0d6
821                         MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT          0x1d0
822                 >;
823         };
824
825         pinctrl_usdhc3: usdhc3-grp {
826                 fsl,pins = <
827                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x190
828                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d0
829                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d0
830                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d0
831                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d0
832                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d0
833                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d0
834                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d0
835                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d0
836                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d0
837                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x190
838                         MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B           0x40
839                 >;
840         };
841
842         pinctrl_usdhc3_100mhz: usdhc3-100mhz-grp {
843                 fsl,pins = <
844                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x194
845                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d4
846                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d4
847                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d4
848                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d4
849                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d4
850                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d4
851                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d4
852                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d4
853                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d4
854                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x194
855                         MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B           0x40
856                 >;
857         };
858
859         pinctrl_usdhc3_200mhz: usdhc3-200mhz-grp {
860                 fsl,pins = <
861                         MX8MM_IOMUXC_NAND_WE_B_USDHC3_CLK               0x196
862                         MX8MM_IOMUXC_NAND_WP_B_USDHC3_CMD               0x1d6
863                         MX8MM_IOMUXC_NAND_DATA04_USDHC3_DATA0           0x1d6
864                         MX8MM_IOMUXC_NAND_DATA05_USDHC3_DATA1           0x1d6
865                         MX8MM_IOMUXC_NAND_DATA06_USDHC3_DATA2           0x1d6
866                         MX8MM_IOMUXC_NAND_DATA07_USDHC3_DATA3           0x1d6
867                         MX8MM_IOMUXC_NAND_RE_B_USDHC3_DATA4             0x1d6
868                         MX8MM_IOMUXC_NAND_CE2_B_USDHC3_DATA5            0x1d6
869                         MX8MM_IOMUXC_NAND_CE3_B_USDHC3_DATA6            0x1d6
870                         MX8MM_IOMUXC_NAND_CLE_USDHC3_DATA7              0x1d6
871                         MX8MM_IOMUXC_NAND_CE1_B_USDHC3_STROBE           0x196
872                         MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B           0x40
873                 >;
874         };
875
876         pinctrl_watchdog_gpio: watchdog-gpio-grp {
877                 fsl,pins = <
878                         /* WDOG_B# */
879                         MX8MM_IOMUXC_GPIO1_IO02_GPIO1_IO2               0x26
880                         /* WDOG_EN -- ungate WDT RESET# signal propagation */
881                         MX8MM_IOMUXC_SD1_DATA7_GPIO2_IO9                0x6
882                         /* WDOG_KICK# / WDI */
883                         MX8MM_IOMUXC_GPIO1_IO08_GPIO1_IO8               0x26
884                 >;
885         };
886 };
887
888 &pcie_phy {
889         fsl,clkreq-unsupported; /* CLKREQ_B is not connected to suitable input */
890         fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>;
891         fsl,tx-deemph-gen1 = <0x2d>;
892         fsl,tx-deemph-gen2 = <0xf>;
893         clocks = <&pcieclk 0>;
894         status = "okay";
895 };
896
897 &pcie0 {
898         pinctrl-names = "default";
899         pinctrl-0 = <&pinctrl_pcie0>;
900         reset-gpio = <&gpio1 5 GPIO_ACTIVE_LOW>;
901         clocks = <&clk IMX8MM_CLK_PCIE1_ROOT>, <&clk IMX8MM_CLK_PCIE1_AUX>,
902                  <&pcieclk 0>;
903         clock-names = "pcie", "pcie_aux", "pcie_bus";
904         assigned-clocks = <&clk IMX8MM_CLK_PCIE1_AUX>,
905                           <&clk IMX8MM_CLK_PCIE1_CTRL>;
906         assigned-clock-rates = <10000000>, <250000000>;
907         assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_50M>,
908                                  <&clk IMX8MM_SYS_PLL2_250M>;
909         status = "okay";
910 };
911
912 &pwm1 {
913         pinctrl-names = "default";
914         pinctrl-0 = <&pinctrl_panel_pwm>;
915         /* Disabled by default, unless display board plugged in. */
916         status = "disabled";
917 };
918
919 &sai5 {
920         pinctrl-names = "default";
921         pinctrl-0 = <&pinctrl_sai5>;
922         fsl,sai-mclk-direction-output;
923         /* Input into codec PLL */
924         assigned-clocks = <&clk IMX8MM_CLK_SAI5>;
925         assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL2_OUT>;
926         assigned-clock-rates = <22579200>;
927         /* Disabled by default, unless display board plugged in. */
928         status = "disabled";
929 };
930
931 &uart1 {
932         pinctrl-names = "default";
933         pinctrl-0 = <&pinctrl_uart1>;
934         uart-has-rtscts;
935         status = "disabled";
936 };
937
938 &uart2 {
939         pinctrl-names = "default";
940         pinctrl-0 = <&pinctrl_uart2>;
941         status = "disabled";
942 };
943
944 &uart3 {        /* A53 Debug */
945         pinctrl-names = "default";
946         pinctrl-0 = <&pinctrl_uart3>;
947         status = "okay";
948 };
949
950 &uart4 {        /* M4 Debug */
951         pinctrl-names = "default";
952         pinctrl-0 = <&pinctrl_uart4>;
953         /* UART4 is reserved for CM and RDC blocks CA access to UART4. */
954         status = "disabled";
955 };
956
957 &usbotg1 {
958         pinctrl-names = "default";
959         pinctrl-0 = <&pinctrl_usb_otg1>;
960         dr_mode = "otg";
961         status = "okay";
962 };
963
964 &usbotg2 {
965         disable-over-current;
966         dr_mode = "host";
967         status = "okay";
968 };
969
970 &usdhc2 {       /* MicroSD */
971         assigned-clocks = <&clk IMX8MM_CLK_USDHC2_ROOT>;
972         pinctrl-names = "default", "state_100mhz", "state_200mhz";
973         pinctrl-0 = <&pinctrl_usdhc2>;
974         pinctrl-1 = <&pinctrl_usdhc2_100mhz>;
975         pinctrl-2 = <&pinctrl_usdhc2_200mhz>;
976         bus-width = <4>;
977         vmmc-supply = <&reg_usdhc2_vcc>;
978         status = "okay";
979 };
980
981 &usdhc3 {       /* eMMC */
982         assigned-clocks = <&clk IMX8MM_CLK_USDHC3_ROOT>;
983         assigned-clock-rates = <400000000>;
984         pinctrl-names = "default", "state_100mhz", "state_200mhz";
985         pinctrl-0 = <&pinctrl_usdhc3>;
986         pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
987         pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
988         bus-width = <8>;
989         non-removable;
990         vmmc-supply = <&buck4_reg>;
991         vqmmc-supply = <&buck5_reg>;
992         status = "okay";
993 };
994
995 &wdog1 {
996         status = "okay";
997 };