0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003 * Copyright (C) 2019 Marek Vasut <marex@denx.de>
0004 */
0005
0006 /dts-v1/;
0007 #include "imx53-m53.dtsi"
0008
0009 / {
0010 model = "MENLO M53 EMBEDDED DEVICE";
0011 compatible = "menlo,m53menlo", "fsl,imx53";
0012
0013 gpio-keys {
0014 compatible = "gpio-keys";
0015 pinctrl-0 = <&pinctrl_power_button>;
0016 pinctrl-names = "default";
0017
0018 power-button {
0019 label = "Power button";
0020 gpios = <&gpio1 15 GPIO_ACTIVE_LOW>;
0021 linux,code = <KEY_POWER>;
0022 };
0023 };
0024
0025 gpio-poweroff {
0026 compatible = "gpio-poweroff";
0027 pinctrl-0 = <&pinctrl_power_out>;
0028 pinctrl-names = "default";
0029 gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
0030 };
0031
0032 leds {
0033 compatible = "gpio-leds";
0034 pinctrl-names = "default";
0035 pinctrl-0 = <&pinctrl_led>;
0036
0037 user1 {
0038 label = "TestLed601";
0039 gpios = <&gpio6 1 GPIO_ACTIVE_HIGH>;
0040 linux,default-trigger = "mmc0";
0041 };
0042
0043 user2 {
0044 label = "TestLed602";
0045 gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>;
0046 linux,default-trigger = "heartbeat";
0047 };
0048
0049 eth {
0050 label = "EthLedYe";
0051 gpios = <&gpio2 11 GPIO_ACTIVE_LOW>;
0052 linux,default-trigger = "netdev";
0053 };
0054 };
0055
0056 lvds-decoder {
0057 compatible = "ti,ds90cf364a", "lvds-decoder";
0058
0059 ports {
0060 #address-cells = <1>;
0061 #size-cells = <0>;
0062
0063 port@0 {
0064 reg = <0>;
0065
0066 lvds_decoder_in: endpoint {
0067 remote-endpoint = <&lvds0_out>;
0068 };
0069 };
0070
0071 port@1 {
0072 reg = <1>;
0073
0074 lvds_decoder_out: endpoint {
0075 remote-endpoint = <&panel_in>;
0076 };
0077 };
0078 };
0079 };
0080
0081 panel {
0082 compatible = "edt,etm0700g0dh6";
0083 pinctrl-0 = <&pinctrl_display_gpio>;
0084 pinctrl-names = "default";
0085 enable-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>;
0086
0087 port {
0088 panel_in: endpoint {
0089 remote-endpoint = <&lvds_decoder_out>;
0090 };
0091 };
0092 };
0093
0094 beeper {
0095 compatible = "gpio-beeper";
0096 pinctrl-0 = <&pinctrl_beeper>;
0097 gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>;
0098 };
0099
0100 reg_usbh1_vbus: regulator-usbh1-vbus {
0101 compatible = "regulator-fixed";
0102 regulator-name = "vbus";
0103 regulator-min-microvolt = <5000000>;
0104 regulator-max-microvolt = <5000000>;
0105 gpio = <&gpio1 2 0>;
0106 };
0107 };
0108
0109 &can1 {
0110 pinctrl-names = "default";
0111 pinctrl-0 = <&pinctrl_can1>;
0112 status = "okay";
0113 };
0114
0115 &can2 {
0116 pinctrl-names = "default";
0117 pinctrl-0 = <&pinctrl_can2>;
0118 status = "okay";
0119 };
0120
0121 &clks {
0122 assigned-clocks = <&clks IMX5_CLK_CKO1_SEL>,
0123 <&clks IMX5_CLK_CKO1_PODF>,
0124 <&clks IMX5_CLK_CKO1>;
0125 assigned-clock-parents = <&clks IMX5_CLK_AHB>;
0126 assigned-clock-rates = <133333334>, <33333334>, <33333334>;
0127 };
0128
0129 &ecspi2 {
0130 pinctrl-names = "default";
0131 pinctrl-0 = <&pinctrl_ecspi2>;
0132 cs-gpios = <&gpio2 26 GPIO_ACTIVE_LOW>, <&gpio2 27 GPIO_ACTIVE_LOW>;
0133 status = "okay";
0134
0135 spidev@0 {
0136 compatible = "menlo,m53cpld";
0137 spi-max-frequency = <25000000>;
0138 reg = <0>;
0139 };
0140
0141 spidev@1 {
0142 compatible = "menlo,m53cpld";
0143 spi-max-frequency = <25000000>;
0144 reg = <1>;
0145 };
0146 };
0147
0148 &esdhc1 {
0149 pinctrl-names = "default";
0150 pinctrl-0 = <&pinctrl_esdhc1>;
0151 cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>;
0152 wp-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
0153 status = "okay";
0154 };
0155
0156 &fec {
0157 pinctrl-names = "default";
0158 pinctrl-0 = <&pinctrl_fec>;
0159 phy-mode = "rmii";
0160 phy-reset-gpios = <&gpio7 7 GPIO_ACTIVE_LOW>;
0161 status = "okay";
0162 };
0163
0164 &gpio1 {
0165 gpio-line-names =
0166 "", "", "", "",
0167 "", "", "", "",
0168 "", "", "", "",
0169 "", "", "", "",
0170 "", "", "", "",
0171 "", "", "", "",
0172 "", "", "", "",
0173 "", "", "", "";
0174 };
0175
0176 &gpio2 {
0177 gpio-line-names =
0178 "", "", "", "",
0179 "", "", "", "",
0180 "TestPin_SV2_3", "", "", "",
0181 "", "", "", "",
0182 "", "", "", "",
0183 "", "", "", "",
0184 "", "", "", "",
0185 "", "", "", "";
0186 };
0187
0188 &gpio3 {
0189 gpio-line-names =
0190 "", "", "", "",
0191 "", "", "", "",
0192 "", "", "", "",
0193 "", "", "", "",
0194 "", "", "", "",
0195 "", "", "", "",
0196 "CPLD_JTAG_TDI", "CPLD_JTAG_TMS", "", "",
0197 "", "CPLD_JTAG_TDO", "", "";
0198 };
0199
0200 &gpio5 {
0201 gpio-line-names =
0202 "", "", "", "",
0203 "", "", "", "",
0204 "", "", "", "",
0205 "", "", "", "",
0206 "", "", "CPLD_JTAG_TCK", "KBD_intK",
0207 "CPLD_int", "CPLD_JTAG_internal", "CPLD_D[0]", "CPLD_D[1]",
0208 "CPLD_D[2]", "CPLD_D[3]", "CPLD_D[4]", "CPLD_D[5]",
0209 "CPLD_D[6]", "CPLD_D[7]", "DISP_reset", "KBD_intI";
0210 };
0211
0212 &gpio6 {
0213 gpio-line-names =
0214 "", "", "", "",
0215 "CPLD_reset", "", "", "",
0216 "", "", "", "",
0217 "", "", "", "",
0218 "", "", "", "",
0219 "", "", "", "",
0220 "", "", "", "",
0221 "", "", "", "";
0222 };
0223
0224 &gpio7 {
0225 gpio-line-names =
0226 "", "", "", "",
0227 "", "", "", "",
0228 "", "", "", "",
0229 "", "USB-OTG_OverCurrent", "", "",
0230 "", "", "", "",
0231 "", "", "", "",
0232 "", "", "", "",
0233 "", "", "", "";
0234 };
0235
0236 &i2c1 {
0237 pinctrl-names = "default";
0238 pinctrl-0 = <&pinctrl_i2c1>;
0239 status = "okay";
0240
0241 touchscreen@38 {
0242 compatible = "edt,edt-ft5x06";
0243 reg = <0x38>;
0244 pinctrl-names = "default";
0245 pinctrl-0 = <&pinctrl_edt_ft5x06>;
0246 interrupt-parent = <&gpio6>;
0247 interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
0248 reset-gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
0249 wake-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
0250 };
0251
0252 eeprom@50 {
0253 compatible = "atmel,24c64";
0254 reg = <0x50>;
0255 pagesize = <32>;
0256 };
0257
0258 dac@60 {
0259 compatible = "microchip,mcp4725";
0260 reg = <0x60>;
0261 };
0262 };
0263
0264 &i2c2 {
0265 touchscreen@41 {
0266 status = "disabled";
0267 };
0268 };
0269
0270 &i2c3 {
0271 pinctrl-names = "default";
0272 pinctrl-0 = <&pinctrl_i2c3>;
0273 status = "okay";
0274 };
0275
0276 &iomuxc {
0277 pinctrl-names = "default";
0278 pinctrl-0 = <&pinctrl_hog>;
0279
0280 imx53-m53evk {
0281 hoggrp {
0282 fsl,pins = <
0283 MX53_PAD_GPIO_19__CCM_CLKO 0x1e4
0284 MX53_PAD_CSI0_DATA_EN__GPIO5_20 0x1e4
0285 MX53_PAD_CSI0_DAT4__GPIO5_22 0x1e4
0286 MX53_PAD_CSI0_DAT5__GPIO5_23 0x1c4
0287 MX53_PAD_CSI0_DAT6__GPIO5_24 0x1e4
0288 MX53_PAD_CSI0_DAT7__GPIO5_25 0x1e4
0289 MX53_PAD_CSI0_DAT8__GPIO5_26 0x1e4
0290 MX53_PAD_CSI0_DAT9__GPIO5_27 0x1c4
0291 MX53_PAD_CSI0_DAT10__GPIO5_28 0x1e4
0292 MX53_PAD_CSI0_DAT11__GPIO5_29 0x1e4
0293 MX53_PAD_PATA_DATA11__GPIO2_11 0x1e4
0294 MX53_PAD_EIM_D24__GPIO3_24 0x1e4
0295 MX53_PAD_EIM_D25__GPIO3_25 0x1e4
0296 MX53_PAD_EIM_D29__GPIO3_29 0x1e4
0297 MX53_PAD_CSI0_PIXCLK__GPIO5_18 0x1e4
0298 MX53_PAD_CSI0_VSYNC__GPIO5_21 0x1e4
0299 MX53_PAD_CSI0_DAT18__GPIO6_4 0x1c4
0300 MX53_PAD_PATA_DATA8__GPIO2_8 0x1e4
0301 >;
0302 };
0303
0304 pinctrl_led: ledgrp {
0305 fsl,pins = <
0306 MX53_PAD_CSI0_DAT15__GPIO6_1 0x1c4
0307 MX53_PAD_CSI0_DAT16__GPIO6_2 0x1c4
0308 >;
0309 };
0310
0311 pinctrl_beeper: beepergrp {
0312 fsl,pins = <
0313 MX53_PAD_CSI0_DAT17__GPIO6_3 0x1c4
0314 >;
0315 };
0316
0317 pinctrl_can1: can1grp {
0318 fsl,pins = <
0319 MX53_PAD_GPIO_7__CAN1_TXCAN 0x1c4
0320 MX53_PAD_GPIO_8__CAN1_RXCAN 0x1c4
0321 >;
0322 };
0323
0324 pinctrl_can2: can2grp {
0325 fsl,pins = <
0326 MX53_PAD_KEY_COL4__CAN2_TXCAN 0x1e4
0327 MX53_PAD_KEY_ROW4__CAN2_RXCAN 0x1c4
0328 >;
0329 };
0330
0331 pinctrl_display_gpio: display-gpiogrp {
0332 fsl,pins = <
0333 MX53_PAD_CSI0_DAT12__GPIO5_30 0x1c4 /* Reset */
0334 MX53_PAD_CSI0_MCLK__GPIO5_19 0x1e4 /* Int-K */
0335 MX53_PAD_CSI0_DAT13__GPIO5_31 0x1c4 /* Int-I */
0336
0337 MX53_PAD_CSI0_DAT14__GPIO6_0 0x1c4 /* Power down */
0338 >;
0339 };
0340
0341 pinctrl_edt_ft5x06: edt-ft5x06grp {
0342 fsl,pins = <
0343 MX53_PAD_PATA_DATA9__GPIO2_9 0x1e4 /* Reset */
0344 MX53_PAD_CSI0_DAT19__GPIO6_5 0x1c4 /* Interrupt */
0345 MX53_PAD_PATA_DATA10__GPIO2_10 0x1e4 /* Wake */
0346 >;
0347 };
0348
0349 pinctrl_ecspi2: ecspi2grp {
0350 fsl,pins = <
0351 MX53_PAD_EIM_CS0__ECSPI2_SCLK 0xe4
0352 MX53_PAD_EIM_OE__ECSPI2_MISO 0xe4
0353 MX53_PAD_EIM_CS1__ECSPI2_MOSI 0xe4
0354 MX53_PAD_EIM_RW__GPIO2_26 0xe4
0355 MX53_PAD_EIM_LBA__GPIO2_27 0xe4
0356 >;
0357 };
0358
0359 pinctrl_esdhc1: esdhc1grp {
0360 fsl,pins = <
0361 MX53_PAD_SD1_DATA0__ESDHC1_DAT0 0x1e4
0362 MX53_PAD_SD1_DATA1__ESDHC1_DAT1 0x1e4
0363 MX53_PAD_SD1_DATA2__ESDHC1_DAT2 0x1e4
0364 MX53_PAD_SD1_DATA3__ESDHC1_DAT3 0x1e4
0365 MX53_PAD_SD1_CMD__ESDHC1_CMD 0x1e4
0366 MX53_PAD_SD1_CLK__ESDHC1_CLK 0x1e4
0367 MX53_PAD_GPIO_1__GPIO1_1 0x1c4
0368 MX53_PAD_GPIO_9__GPIO1_9 0x1e4
0369 >;
0370 };
0371
0372 pinctrl_fec: fecgrp {
0373 fsl,pins = <
0374 MX53_PAD_FEC_MDC__FEC_MDC 0x1e4
0375 MX53_PAD_FEC_MDIO__FEC_MDIO 0x1e4
0376 MX53_PAD_FEC_REF_CLK__FEC_TX_CLK 0x1e4
0377 MX53_PAD_FEC_RX_ER__FEC_RX_ER 0x1e4
0378 MX53_PAD_FEC_CRS_DV__FEC_RX_DV 0x1e4
0379 MX53_PAD_FEC_RXD1__FEC_RDATA_1 0x1e4
0380 MX53_PAD_FEC_RXD0__FEC_RDATA_0 0x1e4
0381 MX53_PAD_FEC_TX_EN__FEC_TX_EN 0x1c4
0382 MX53_PAD_FEC_TXD1__FEC_TDATA_1 0x1e4
0383 MX53_PAD_FEC_TXD0__FEC_TDATA_0 0x1e4
0384 MX53_PAD_PATA_DA_1__GPIO7_7 0x1e4
0385 MX53_PAD_EIM_EB3__GPIO2_31 0x1e4
0386 >;
0387 };
0388
0389 pinctrl_i2c1: i2c1grp {
0390 fsl,pins = <
0391 MX53_PAD_EIM_D21__I2C1_SCL 0x400001e4
0392 MX53_PAD_EIM_D28__I2C1_SDA 0x400001e4
0393 >;
0394 };
0395
0396 pinctrl_i2c3: i2c3grp {
0397 fsl,pins = <
0398 MX53_PAD_GPIO_6__I2C3_SDA 0x400001e4
0399 MX53_PAD_GPIO_5__I2C3_SCL 0x400001e4
0400 >;
0401 };
0402
0403 pinctrl_lvds0: lvds0grp {
0404 /* LVDS pins only have pin mux configuration */
0405 fsl,pins = <
0406 MX53_PAD_LVDS0_CLK_P__LDB_LVDS0_CLK 0x80000000
0407 MX53_PAD_LVDS0_TX0_P__LDB_LVDS0_TX0 0x80000000
0408 MX53_PAD_LVDS0_TX1_P__LDB_LVDS0_TX1 0x80000000
0409 MX53_PAD_LVDS0_TX2_P__LDB_LVDS0_TX2 0x80000000
0410 MX53_PAD_LVDS0_TX3_P__LDB_LVDS0_TX3 0x80000000
0411 >;
0412 };
0413
0414 pinctrl_power_button: powerbutgrp {
0415 fsl,pins = <
0416 MX53_PAD_SD2_DATA0__GPIO1_15 0x1e4
0417 >;
0418 };
0419
0420 pinctrl_power_out: poweroutgrp {
0421 fsl,pins = <
0422 MX53_PAD_SD2_DATA2__GPIO1_13 0x1e4
0423 >;
0424 };
0425
0426 pinctrl_uart1: uart1grp {
0427 fsl,pins = <
0428 MX53_PAD_PATA_DIOW__UART1_TXD_MUX 0x1e4
0429 MX53_PAD_PATA_DMACK__UART1_RXD_MUX 0x1e4
0430 MX53_PAD_PATA_IORDY__UART1_RTS 0x1e4
0431 MX53_PAD_PATA_RESET_B__UART1_CTS 0x1e4
0432 >;
0433 };
0434
0435 pinctrl_uart2: uart2grp {
0436 fsl,pins = <
0437 MX53_PAD_PATA_BUFFER_EN__UART2_RXD_MUX 0x1e4
0438 MX53_PAD_PATA_DMARQ__UART2_TXD_MUX 0x1e4
0439 MX53_PAD_PATA_DIOR__UART2_RTS 0x1e4
0440 MX53_PAD_PATA_INTRQ__UART2_CTS 0x1e4
0441 >;
0442 };
0443
0444 pinctrl_uart3: uart3grp {
0445 fsl,pins = <
0446 MX53_PAD_PATA_CS_1__UART3_RXD_MUX 0x1e4
0447 MX53_PAD_PATA_CS_0__UART3_TXD_MUX 0x1e4
0448 MX53_PAD_PATA_DA_2__UART3_RTS 0x1e4
0449 >;
0450 };
0451
0452 pinctrl_usb: usbgrp {
0453 fsl,pins = <
0454 MX53_PAD_GPIO_2__GPIO1_2 0x1c4
0455 MX53_PAD_GPIO_3__USBOH3_USBH1_OC 0x1c4
0456 MX53_PAD_GPIO_4__GPIO1_4 0x1c4
0457 MX53_PAD_GPIO_18__GPIO7_13 0x1c4
0458 >;
0459 };
0460 };
0461 };
0462
0463 &ldb {
0464 pinctrl-names = "default";
0465 pinctrl-0 = <&pinctrl_lvds0>;
0466 status = "okay";
0467
0468 lvds0: lvds-channel@0 {
0469 reg = <0>;
0470 fsl,data-mapping = "spwg";
0471 fsl,data-width = <18>;
0472 status = "okay";
0473
0474 port@2 {
0475 reg = <2>;
0476
0477 lvds0_out: endpoint {
0478 remote-endpoint = <&lvds_decoder_in>;
0479 };
0480 };
0481 };
0482 };
0483
0484 &uart1 {
0485 pinctrl-names = "default";
0486 pinctrl-0 = <&pinctrl_uart1>;
0487 uart-has-rtscts;
0488 status = "okay";
0489 };
0490
0491 &uart2 {
0492 pinctrl-names = "default";
0493 pinctrl-0 = <&pinctrl_uart2>;
0494 uart-has-rtscts;
0495 status = "okay";
0496 };
0497
0498 &uart3 {
0499 pinctrl-names = "default";
0500 pinctrl-0 = <&pinctrl_uart3>;
0501 linux,rs485-enabled-at-boot-time;
0502 status = "okay";
0503 };
0504
0505 &usbh1 {
0506 pinctrl-names = "default";
0507 pinctrl-0 = <&pinctrl_usb>;
0508 vbus-supply = <®_usbh1_vbus>;
0509 phy_type = "utmi";
0510 dr_mode = "host";
0511 status = "okay";
0512 };
0513
0514 &usbotg {
0515 dr_mode = "peripheral";
0516 status = "okay";
0517 };