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