| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | 
| /* | 
|  * Copyright (C) 2019 Marek Vasut <marex@denx.de> | 
|  */ | 
|   | 
| /dts-v1/; | 
| #include "imx53-m53.dtsi" | 
|   | 
| / { | 
|     model = "MENLO M53 EMBEDDED DEVICE"; | 
|     compatible = "menlo,m53menlo", "fsl,imx53"; | 
|   | 
|     gpio-keys { | 
|         compatible = "gpio-keys"; | 
|         pinctrl-0 = <&pinctrl_power_button>; | 
|         pinctrl-names = "default"; | 
|   | 
|         power-button { | 
|             label = "Power button"; | 
|             gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; | 
|             linux,code = <KEY_POWER>; | 
|         }; | 
|     }; | 
|   | 
|     gpio-poweroff { | 
|         compatible = "gpio-poweroff"; | 
|         pinctrl-0 = <&pinctrl_power_out>; | 
|         pinctrl-names = "default"; | 
|         gpios = <&gpio1 13 GPIO_ACTIVE_LOW>; | 
|     }; | 
|   | 
|     leds { | 
|         compatible = "gpio-leds"; | 
|         pinctrl-names = "default"; | 
|         pinctrl-0 = <&pinctrl_led>; | 
|   | 
|         user1 { | 
|             label = "TestLed601"; | 
|             gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>; | 
|             linux,default-trigger = "mmc0"; | 
|         }; | 
|   | 
|         user2 { | 
|             label = "TestLed602"; | 
|             gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; | 
|             linux,default-trigger = "heartbeat"; | 
|         }; | 
|   | 
|         eth { | 
|             label = "EthLedYe"; | 
|             gpios = <&gpio2 11 GPIO_ACTIVE_LOW>; | 
|             linux,default-trigger = "netdev"; | 
|         }; | 
|     }; | 
|   | 
|     lvds-decoder { | 
|         compatible = "ti,ds90cf364a", "lvds-decoder"; | 
|   | 
|         ports { | 
|             #address-cells = <1>; | 
|             #size-cells = <0>; | 
|   | 
|             port@0 { | 
|                 reg = <0>; | 
|   | 
|                 lvds_decoder_in: endpoint { | 
|                     remote-endpoint = <&lvds0_out>; | 
|                 }; | 
|             }; | 
|   | 
|             port@1 { | 
|                 reg = <1>; | 
|   | 
|                 lvds_decoder_out: endpoint { | 
|                     remote-endpoint = <&panel_in>; | 
|                 }; | 
|             }; | 
|         }; | 
|     }; | 
|   | 
|     panel { | 
|         compatible = "edt,etm0700g0dh6"; | 
|         pinctrl-0 = <&pinctrl_display_gpio>; | 
|         pinctrl-names = "default"; | 
|         enable-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; | 
|   | 
|         port { | 
|             panel_in: endpoint { | 
|                 remote-endpoint = <&lvds_decoder_out>; | 
|             }; | 
|         }; | 
|     }; | 
|   | 
|     beeper { | 
|         compatible = "gpio-beeper"; | 
|         pinctrl-0 = <&pinctrl_beeper>; | 
|         gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; | 
|     }; | 
|   | 
|     reg_usbh1_vbus: regulator-usbh1-vbus { | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "vbus"; | 
|         regulator-min-microvolt = <5000000>; | 
|         regulator-max-microvolt = <5000000>; | 
|         gpio = <&gpio1 2 0>; | 
|     }; | 
| }; | 
|   | 
| &can1 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_can1>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &can2 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_can2>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &clks { | 
|     assigned-clocks = <&clks IMX5_CLK_CKO1_SEL>, | 
|               <&clks IMX5_CLK_CKO1_PODF>, | 
|               <&clks IMX5_CLK_CKO1>; | 
|     assigned-clock-parents = <&clks IMX5_CLK_AHB>; | 
|     assigned-clock-rates = <133333334>, <33333334>, <33333334>; | 
| }; | 
|   | 
| &ecspi2 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_ecspi2>; | 
|     cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>, <&gpio2 27 GPIO_ACTIVE_LOW>; | 
|     status = "okay"; | 
|   | 
|     spidev@0 { | 
|         compatible = "menlo,m53cpld"; | 
|         spi-max-frequency = <25000000>; | 
|         reg = <0>; | 
|     }; | 
|   | 
|     spidev@1 { | 
|         compatible = "menlo,m53cpld"; | 
|         spi-max-frequency = <25000000>; | 
|         reg = <1>; | 
|     }; | 
| }; | 
|   | 
| &esdhc1 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_esdhc1>; | 
|     cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; | 
|     wp-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &fec { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_fec>; | 
|     phy-mode = "rmii"; | 
|     phy-reset-gpios = <&gpio7 7 GPIO_ACTIVE_LOW>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &gpio1 { | 
|     gpio-line-names = | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", ""; | 
| }; | 
|   | 
| &gpio2 { | 
|     gpio-line-names = | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "TestPin_SV2_3", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", ""; | 
| }; | 
|   | 
| &gpio3 { | 
|     gpio-line-names = | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "CPLD_JTAG_TDI", "CPLD_JTAG_TMS", "", "", | 
|         "", "CPLD_JTAG_TDO", "", ""; | 
| }; | 
|   | 
| &gpio5 { | 
|     gpio-line-names = | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "CPLD_JTAG_TCK", "KBD_intK", | 
|         "CPLD_int", "CPLD_JTAG_internal", "CPLD_D[0]", "CPLD_D[1]", | 
|         "CPLD_D[2]", "CPLD_D[3]", "CPLD_D[4]", "CPLD_D[5]", | 
|         "CPLD_D[6]", "CPLD_D[7]", "DISP_reset", "KBD_intI"; | 
| }; | 
|   | 
| &gpio6 { | 
|     gpio-line-names = | 
|         "", "", "", "", | 
|         "CPLD_reset", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", ""; | 
| }; | 
|   | 
| &gpio7 { | 
|     gpio-line-names = | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "USB-OTG_OverCurrent", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", "", | 
|         "", "", "", ""; | 
| }; | 
|   | 
| &i2c1 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_i2c1>; | 
|     status = "okay"; | 
|   | 
|     touchscreen@38 { | 
|         compatible = "edt,edt-ft5x06"; | 
|         reg = <0x38>; | 
|         pinctrl-names = "default"; | 
|         pinctrl-0 = <&pinctrl_edt_ft5x06>; | 
|         interrupt-parent = <&gpio6>; | 
|         interrupts = <5 IRQ_TYPE_EDGE_FALLING>; | 
|         reset-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>; | 
|         wake-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>; | 
|     }; | 
|   | 
|     eeprom@50 { | 
|         compatible = "atmel,24c64"; | 
|         reg = <0x50>; | 
|         pagesize = <32>; | 
|     }; | 
|   | 
|     dac@60 { | 
|         compatible = "microchip,mcp4725"; | 
|         reg = <0x60>; | 
|     }; | 
| }; | 
|   | 
| &i2c2 { | 
|     touchscreen@41 { | 
|         status = "disabled"; | 
|     }; | 
| }; | 
|   | 
| &i2c3 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_i2c3>; | 
|     status = "okay"; | 
| }; | 
|   | 
| &iomuxc { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_hog>; | 
|   | 
|     imx53-m53evk { | 
|         hoggrp { | 
|             fsl,pins = < | 
|                 MX53_PAD_GPIO_19__CCM_CLKO        0x1e4 | 
|                 MX53_PAD_CSI0_DATA_EN__GPIO5_20        0x1e4 | 
|                 MX53_PAD_CSI0_DAT4__GPIO5_22        0x1e4 | 
|                 MX53_PAD_CSI0_DAT5__GPIO5_23        0x1c4 | 
|                 MX53_PAD_CSI0_DAT6__GPIO5_24        0x1e4 | 
|                 MX53_PAD_CSI0_DAT7__GPIO5_25        0x1e4 | 
|                 MX53_PAD_CSI0_DAT8__GPIO5_26        0x1e4 | 
|                 MX53_PAD_CSI0_DAT9__GPIO5_27        0x1c4 | 
|                 MX53_PAD_CSI0_DAT10__GPIO5_28        0x1e4 | 
|                 MX53_PAD_CSI0_DAT11__GPIO5_29        0x1e4 | 
|                 MX53_PAD_PATA_DATA11__GPIO2_11        0x1e4 | 
|                 MX53_PAD_EIM_D24__GPIO3_24        0x1e4 | 
|                 MX53_PAD_EIM_D25__GPIO3_25        0x1e4 | 
|                 MX53_PAD_EIM_D29__GPIO3_29        0x1e4 | 
|                 MX53_PAD_CSI0_PIXCLK__GPIO5_18        0x1e4 | 
|                 MX53_PAD_CSI0_VSYNC__GPIO5_21        0x1e4 | 
|                 MX53_PAD_CSI0_DAT18__GPIO6_4        0x1c4 | 
|                 MX53_PAD_PATA_DATA8__GPIO2_8        0x1e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_led: ledgrp { | 
|             fsl,pins = < | 
|                 MX53_PAD_CSI0_DAT15__GPIO6_1        0x1c4 | 
|                 MX53_PAD_CSI0_DAT16__GPIO6_2        0x1c4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_beeper: beepergrp { | 
|             fsl,pins = < | 
|                 MX53_PAD_CSI0_DAT17__GPIO6_3        0x1c4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_can1: can1grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_GPIO_7__CAN1_TXCAN        0x1c4 | 
|                 MX53_PAD_GPIO_8__CAN1_RXCAN        0x1c4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_can2: can2grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_KEY_COL4__CAN2_TXCAN        0x1e4 | 
|                 MX53_PAD_KEY_ROW4__CAN2_RXCAN        0x1c4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_display_gpio: display-gpiogrp { | 
|             fsl,pins = < | 
|                 MX53_PAD_CSI0_DAT12__GPIO5_30        0x1c4 /* Reset */ | 
|                 MX53_PAD_CSI0_MCLK__GPIO5_19        0x1e4 /* Int-K */ | 
|                 MX53_PAD_CSI0_DAT13__GPIO5_31        0x1c4 /* Int-I */ | 
|   | 
|                 MX53_PAD_CSI0_DAT14__GPIO6_0        0x1c4 /* Power down */ | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_edt_ft5x06: edt-ft5x06grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_PATA_DATA9__GPIO2_9        0x1e4 /* Reset */ | 
|                 MX53_PAD_CSI0_DAT19__GPIO6_5        0x1c4 /* Interrupt */ | 
|                 MX53_PAD_PATA_DATA10__GPIO2_10        0x1e4 /* Wake */ | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_ecspi2: ecspi2grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_EIM_CS0__ECSPI2_SCLK        0xe4 | 
|                 MX53_PAD_EIM_OE__ECSPI2_MISO        0xe4 | 
|                 MX53_PAD_EIM_CS1__ECSPI2_MOSI        0xe4 | 
|                 MX53_PAD_EIM_RW__GPIO2_26        0xe4 | 
|                 MX53_PAD_EIM_LBA__GPIO2_27        0xe4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_esdhc1: esdhc1grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_SD1_DATA0__ESDHC1_DAT0        0x1e4 | 
|                 MX53_PAD_SD1_DATA1__ESDHC1_DAT1        0x1e4 | 
|                 MX53_PAD_SD1_DATA2__ESDHC1_DAT2        0x1e4 | 
|                 MX53_PAD_SD1_DATA3__ESDHC1_DAT3        0x1e4 | 
|                 MX53_PAD_SD1_CMD__ESDHC1_CMD        0x1e4 | 
|                 MX53_PAD_SD1_CLK__ESDHC1_CLK        0x1e4 | 
|                 MX53_PAD_GPIO_1__GPIO1_1        0x1c4 | 
|                 MX53_PAD_GPIO_9__GPIO1_9        0x1e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_fec: fecgrp { | 
|             fsl,pins = < | 
|                 MX53_PAD_FEC_MDC__FEC_MDC        0x1e4 | 
|                 MX53_PAD_FEC_MDIO__FEC_MDIO        0x1e4 | 
|                 MX53_PAD_FEC_REF_CLK__FEC_TX_CLK    0x1e4 | 
|                 MX53_PAD_FEC_RX_ER__FEC_RX_ER        0x1e4 | 
|                 MX53_PAD_FEC_CRS_DV__FEC_RX_DV        0x1e4 | 
|                 MX53_PAD_FEC_RXD1__FEC_RDATA_1        0x1e4 | 
|                 MX53_PAD_FEC_RXD0__FEC_RDATA_0        0x1e4 | 
|                 MX53_PAD_FEC_TX_EN__FEC_TX_EN        0x1c4 | 
|                 MX53_PAD_FEC_TXD1__FEC_TDATA_1        0x1e4 | 
|                 MX53_PAD_FEC_TXD0__FEC_TDATA_0        0x1e4 | 
|                 MX53_PAD_PATA_DA_1__GPIO7_7        0x1e4 | 
|                 MX53_PAD_EIM_EB3__GPIO2_31        0x1e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_i2c1: i2c1grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_EIM_D21__I2C1_SCL        0x400001e4 | 
|                 MX53_PAD_EIM_D28__I2C1_SDA        0x400001e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_i2c3: i2c3grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_GPIO_6__I2C3_SDA        0x400001e4 | 
|                 MX53_PAD_GPIO_5__I2C3_SCL        0x400001e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_lvds0: lvds0grp { | 
|             /* LVDS pins only have pin mux configuration */ | 
|             fsl,pins = < | 
|                 MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK    0x80000000 | 
|                 MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0    0x80000000 | 
|                 MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1    0x80000000 | 
|                 MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2    0x80000000 | 
|                 MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3    0x80000000 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_power_button: powerbutgrp { | 
|             fsl,pins = < | 
|                 MX53_PAD_SD2_DATA0__GPIO1_15        0x1e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_power_out: poweroutgrp { | 
|             fsl,pins = < | 
|                 MX53_PAD_SD2_DATA2__GPIO1_13        0x1e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_uart1: uart1grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_PATA_DIOW__UART1_TXD_MUX    0x1e4 | 
|                 MX53_PAD_PATA_DMACK__UART1_RXD_MUX    0x1e4 | 
|                 MX53_PAD_PATA_IORDY__UART1_RTS        0x1e4 | 
|                 MX53_PAD_PATA_RESET_B__UART1_CTS    0x1e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_uart2: uart2grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX    0x1e4 | 
|                 MX53_PAD_PATA_DMARQ__UART2_TXD_MUX    0x1e4 | 
|                 MX53_PAD_PATA_DIOR__UART2_RTS        0x1e4 | 
|                 MX53_PAD_PATA_INTRQ__UART2_CTS        0x1e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_uart3: uart3grp { | 
|             fsl,pins = < | 
|                 MX53_PAD_PATA_CS_1__UART3_RXD_MUX    0x1e4 | 
|                 MX53_PAD_PATA_CS_0__UART3_TXD_MUX    0x1e4 | 
|                 MX53_PAD_PATA_DA_2__UART3_RTS        0x1e4 | 
|             >; | 
|         }; | 
|   | 
|         pinctrl_usb: usbgrp { | 
|             fsl,pins = < | 
|                 MX53_PAD_GPIO_2__GPIO1_2        0x1c4 | 
|                 MX53_PAD_GPIO_3__USBOH3_USBH1_OC    0x1c4 | 
|                 MX53_PAD_GPIO_4__GPIO1_4        0x1c4 | 
|                 MX53_PAD_GPIO_18__GPIO7_13        0x1c4 | 
|             >; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &ldb { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_lvds0>; | 
|     status = "okay"; | 
|   | 
|     lvds0: lvds-channel@0 { | 
|         reg = <0>; | 
|         fsl,data-mapping = "spwg"; | 
|         fsl,data-width = <18>; | 
|         status = "okay"; | 
|   | 
|         port@2 { | 
|             reg = <2>; | 
|   | 
|             lvds0_out: endpoint { | 
|                 remote-endpoint = <&lvds_decoder_in>; | 
|             }; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &uart1 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_uart1>; | 
|     uart-has-rtscts; | 
|     status = "okay"; | 
| }; | 
|   | 
| &uart2 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_uart2>; | 
|     uart-has-rtscts; | 
|     status = "okay"; | 
| }; | 
|   | 
| &uart3 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_uart3>; | 
|     linux,rs485-enabled-at-boot-time; | 
|     status = "okay"; | 
| }; | 
|   | 
| &usbh1 { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&pinctrl_usb>; | 
|     vbus-supply = <®_usbh1_vbus>; | 
|     phy_type = "utmi"; | 
|     dr_mode = "host"; | 
|     status = "okay"; | 
| }; | 
|   | 
| &usbotg { | 
|     dr_mode = "peripheral"; | 
|     status = "okay"; | 
| }; |