1193326Sed// SPDX-License-Identifier: GPL-2.0-or-later 2193326Sed/* 3193326Sed * Copyright (c) 2019 Protonic Holland 4193326Sed * Copyright (c) 2020 Oleksij Rempel <kernel@pengutronix.de>, Pengutronix 5193326Sed */ 6193326Sed 7193326Sed/dts-v1/; 8193326Sed#include <dt-bindings/gpio/gpio.h> 9193326Sed#include <dt-bindings/leds/common.h> 10193326Sed#include "imx6dl.dtsi" 11193326Sed 12193326Sed/ { 13193326Sed model = "Van der Laan LANMCU"; 14193326Sed compatible = "vdl,lanmcu", "fsl,imx6dl"; 15193326Sed 16193326Sed chosen { 17193326Sed stdout-path = &uart4; 18193326Sed }; 19204643Srdivacky 20210299Sed clock_ksz8081: clock-ksz8081 { 21198092Srdivacky compatible = "fixed-clock"; 22204643Srdivacky #clock-cells = <0>; 23193326Sed clock-frequency = <50000000>; 24210299Sed clock-output-names = "enet_ref_pad"; 25198092Srdivacky }; 26193326Sed 27210299Sed backlight: backlight { 28198954Srdivacky compatible = "pwm-backlight"; 29193326Sed pwms = <&pwm1 0 5000000 0>; 30193326Sed brightness-levels = <0 1000>; 31193326Sed num-interpolated-steps = <20>; 32193326Sed default-brightness-level = <19>; 33199482Srdivacky }; 34193326Sed 35206084Srdivacky display { 36204962Srdivacky compatible = "fsl,imx-parallel-display"; 37193326Sed pinctrl-0 = <&pinctrl_ipu1_disp>; 38193326Sed pinctrl-names = "default"; 39194613Sed #address-cells = <1>; 40193380Sed #size-cells = <0>; 41193326Sed 42193326Sed port@0 { 43193326Sed reg = <0>; 44193326Sed 45193326Sed display_in: endpoint { 46208600Srdivacky remote-endpoint = <&ipu1_di0_disp0>; 47208600Srdivacky }; 48208600Srdivacky }; 49193326Sed 50199482Srdivacky port@1 { 51210299Sed reg = <1>; 52198092Srdivacky 53193326Sed display_out: endpoint { 54193326Sed remote-endpoint = <&panel_in>; 55193326Sed }; 56194613Sed }; 57204962Srdivacky }; 58210299Sed 59204962Srdivacky leds { 60193326Sed compatible = "gpio-leds"; 61193326Sed pinctrl-names = "default"; 62198954Srdivacky pinctrl-0 = <&pinctrl_leds>; 63193326Sed 64193326Sed led-0 { 65193326Sed label = "debug0"; 66193326Sed function = LED_FUNCTION_STATUS; 67198092Srdivacky gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>; 68193326Sed linux,default-trigger = "heartbeat"; 69205219Srdivacky }; 70210299Sed }; 71193326Sed 72193326Sed panel { 73199482Srdivacky compatible = "edt,etm0700g0bdh6"; 74193326Sed backlight = <&backlight>; 75198092Srdivacky 76198092Srdivacky port { 77193326Sed panel_in: endpoint { 78198092Srdivacky remote-endpoint = <&display_out>; 79210299Sed }; 80210299Sed }; 81193326Sed }; 82193326Sed 83193326Sed reg_otg_vbus: regulator-otg-vbus { 84210299Sed compatible = "regulator-fixed"; 85199482Srdivacky regulator-name = "otg-vbus"; 86193326Sed regulator-min-microvolt = <5000000>; 87205408Srdivacky regulator-max-microvolt = <5000000>; 88193326Sed gpio = <&gpio3 22 GPIO_ACTIVE_HIGH>; 89210299Sed enable-active-high; 90199482Srdivacky }; 91199482Srdivacky 92193326Sed usdhc2_wifi_pwrseq: usdhc2-wifi-pwrseq { 93198092Srdivacky compatible = "mmc-pwrseq-simple"; 94198092Srdivacky pinctrl-names = "default"; 95198092Srdivacky pinctrl-0 = <&pinctrl_wifi_npd>; 96199990Srdivacky reset-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; 97193326Sed }; 98193326Sed 99193326Sed}; 100193326Sed 101193326Sed&can1 { 102199990Srdivacky pinctrl-names = "default"; 103193326Sed pinctrl-0 = <&pinctrl_can1>; 104193326Sed status = "okay"; 105193326Sed}; 106199990Srdivacky 107199990Srdivacky&can2 { 108199990Srdivacky pinctrl-names = "default"; 109193326Sed pinctrl-0 = <&pinctrl_can2>; 110193326Sed status = "okay"; 111193326Sed}; 112193326Sed 113193326Sed&clks { 114203955Srdivacky clocks = <&clock_ksz8081>; 115203955Srdivacky clock-names = "enet_ref_pad"; 116207632Srdivacky assigned-clocks = <&clks IMX6QDL_CLK_ENET_REF_SEL>; 117193326Sed assigned-clock-parents = <&clock_ksz8081>; 118193326Sed}; 119193326Sed 120193326Sed&fec { 121210299Sed pinctrl-names = "default"; 122193725Sed pinctrl-0 = <&pinctrl_enet>; 123207619Srdivacky phy-mode = "rmii"; 124193725Sed phy-handle = <&rgmii_phy>; 125193725Sed status = "okay"; 126193725Sed 127193326Sed mdio { 128193326Sed #address-cells = <1>; 129194613Sed #size-cells = <0>; 130198092Srdivacky 131194613Sed /* Microchip KSZ8081RNA PHY */ 132206084Srdivacky rgmii_phy: ethernet-phy@0 { 133198092Srdivacky reg = <0>; 134193326Sed interrupts-extended = <&gpio5 23 IRQ_TYPE_LEVEL_LOW>; 135200583Srdivacky reset-gpios = <&gpio5 22 GPIO_ACTIVE_LOW>; 136193326Sed reset-assert-us = <10000>; 137208600Srdivacky reset-deassert-us = <300>; 138193326Sed }; 139193326Sed }; 140198092Srdivacky}; 141193326Sed 142193326Sed&gpio1 { 143193326Sed gpio-line-names = 144199482Srdivacky "", "SD1_CD", "", "", "", "", "", "", 145199482Srdivacky "DEBUG_0", "BL_PWM", "", "", "", "", "", "", 146199482Srdivacky "", "", "", "", "", "", "", "ENET_LED_GREEN", 147193326Sed "", "", "", "", "", "", "", ""; 148199482Srdivacky}; 149199482Srdivacky 150199482Srdivacky&gpio3 { 151210299Sed gpio-line-names = 152208600Srdivacky "", "", "", "", "", "", "", "", 153199482Srdivacky "", "", "", "", "", "", "", "", 154193725Sed "", "", "", "", "TS_INT", "USB_OTG1_OC", "USB_OTG1_PWR", "", 155193725Sed "", "", "", "", "UART2_CTS", "", "UART3_CTS", ""; 156207619Srdivacky}; 157208600Srdivacky 158208600Srdivacky&gpio5 { 159193725Sed gpio-line-names = 160193326Sed "", "", "", "", "", "", "", "", 161207632Srdivacky "", "", "", "", "", "", "", "", 162208600Srdivacky "", "", "", "", "", "", "ENET_RST", "ENET_INT", 163193326Sed "", "", "I2C1_SDA", "I2C1_SCL", "", "", "", ""; 164193326Sed}; 165193326Sed 166193326Sed&gpio6 { 167193326Sed gpio-line-names = 168193326Sed "", "", "", "", "", "", "", "", 169194613Sed "", "", "WLAN_REG_ON", "", "", "", "", "", 170205219Srdivacky "", "", "", "", "", "", "", "", 171210299Sed "", "", "", "", "", "", "", ""; 172210299Sed}; 173199482Srdivacky 174199482Srdivacky&gpio7 { 175194613Sed gpio-line-names = 176194613Sed "", "", "", "", "", "", "", "", 177193326Sed "EMMC_RST", "", "", "", "", "", "", "", 178193326Sed "", "", "", "", "", "", "", "", 179207619Srdivacky "", "", "", "", "", "", "", ""; 180193326Sed}; 181193326Sed 182193326Sed&i2c1 { 183193326Sed clock-frequency = <100000>; 184204962Srdivacky pinctrl-names = "default"; 185193326Sed pinctrl-0 = <&pinctrl_i2c1>; 186207619Srdivacky status = "okay"; 187198092Srdivacky 188193326Sed /* additional i2c devices are added automatically by the boot loader */ 189193326Sed}; 190193326Sed 191193326Sed&i2c3 { 192207619Srdivacky clock-frequency = <100000>; 193193326Sed pinctrl-names = "default"; 194207619Srdivacky pinctrl-0 = <&pinctrl_i2c3>; 195193326Sed status = "okay"; 196193326Sed 197193326Sed touchscreen@38 { 198193326Sed compatible = "edt,edt-ft5406"; 199193326Sed reg = <0x38>; 200193326Sed pinctrl-names = "default"; 201201361Srdivacky pinctrl-0 = <&pinctrl_ts_edt>; 202201361Srdivacky interrupts-extended = <&gpio3 20 IRQ_TYPE_EDGE_FALLING>; 203201361Srdivacky 204193326Sed touchscreen-size-x = <1792>; 205199482Srdivacky touchscreen-size-y = <1024>; 206199482Srdivacky 207199482Srdivacky touchscreen-fuzz-x = <0>; 208204962Srdivacky touchscreen-fuzz-y = <0>; 209206084Srdivacky 210206084Srdivacky /* Touch screen calibration */ 211208600Srdivacky threshold = <50>; 212 gain = <5>; 213 offset = <10>; 214 }; 215 216 rtc@51 { 217 compatible = "nxp,pcf8563"; 218 reg = <0x51>; 219 }; 220}; 221 222&ipu1_di0_disp0 { 223 remote-endpoint = <&display_in>; 224}; 225 226&pwm1 { 227 pinctrl-names = "default"; 228 pinctrl-0 = <&pinctrl_pwm1>; 229 status = "okay"; 230}; 231 232&uart2 { 233 pinctrl-names = "default"; 234 pinctrl-0 = <&pinctrl_uart2>; 235 linux,rs485-enabled-at-boot-time; 236 uart-has-rtscts; 237 status = "okay"; 238}; 239 240&uart3 { 241 pinctrl-names = "default"; 242 pinctrl-0 = <&pinctrl_uart3>; 243 linux,rs485-enabled-at-boot-time; 244 uart-has-rtscts; 245 status = "okay"; 246}; 247 248&uart4 { 249 pinctrl-names = "default"; 250 pinctrl-0 = <&pinctrl_uart4>; 251 status = "okay"; 252}; 253 254&usbotg { 255 vbus-supply = <®_otg_vbus>; 256 pinctrl-names = "default"; 257 pinctrl-0 = <&pinctrl_usbotg>; 258 phy_type = "utmi"; 259 dr_mode = "host"; 260 over-current-active-low; 261 status = "okay"; 262}; 263 264&usbphynop1 { 265 status = "disabled"; 266}; 267 268&usbphynop2 { 269 status = "disabled"; 270}; 271 272&usdhc1 { 273 pinctrl-names = "default"; 274 pinctrl-0 = <&pinctrl_usdhc1>; 275 cd-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; 276 no-1-8-v; 277 disable-wp; 278 cap-sd-highspeed; 279 no-mmc; 280 no-sdio; 281 status = "okay"; 282}; 283 284&usdhc2 { 285 pinctrl-names = "default"; 286 pinctrl-0 = <&pinctrl_usdhc2>; 287 no-1-8-v; 288 non-removable; 289 mmc-pwrseq = <&usdhc2_wifi_pwrseq>; 290 #address-cells = <1>; 291 #size-cells = <0>; 292 status = "okay"; 293 294 wifi@1 { 295 reg = <1>; 296 compatible = "brcm,bcm4329-fmac"; 297 }; 298}; 299 300&usdhc3 { 301 pinctrl-names = "default"; 302 pinctrl-0 = <&pinctrl_usdhc3>; 303 bus-width = <8>; 304 no-1-8-v; 305 non-removable; 306 no-sd; 307 no-sdio; 308 status = "okay"; 309}; 310 311&iomuxc { 312 pinctrl_can1: can1grp { 313 fsl,pins = < 314 MX6QDL_PAD_KEY_ROW2__FLEXCAN1_RX 0x1b000 315 MX6QDL_PAD_KEY_COL2__FLEXCAN1_TX 0x3008 316 >; 317 }; 318 319 pinctrl_can2: can2grp { 320 fsl,pins = < 321 MX6QDL_PAD_KEY_ROW4__FLEXCAN2_RX 0x1b000 322 MX6QDL_PAD_KEY_COL4__FLEXCAN2_TX 0x3008 323 >; 324 }; 325 326 pinctrl_enet: enetgrp { 327 fsl,pins = < 328 /* MX6QDL_ENET_PINGRP4 */ 329 MX6QDL_PAD_ENET_MDC__ENET_MDC 0x1b0b0 330 MX6QDL_PAD_ENET_MDIO__ENET_MDIO 0x1b0b0 331 MX6QDL_PAD_ENET_RXD0__ENET_RX_DATA0 0x1b0b0 332 MX6QDL_PAD_ENET_RXD1__ENET_RX_DATA1 0x1b0b0 333 MX6QDL_PAD_ENET_RX_ER__ENET_RX_ER 0x1b0b0 334 MX6QDL_PAD_ENET_TX_EN__ENET_TX_EN 0x1b0b0 335 MX6QDL_PAD_ENET_TXD0__ENET_TX_DATA0 0x1b0b0 336 MX6QDL_PAD_ENET_TXD1__ENET_TX_DATA1 0x1b0b0 337 MX6QDL_PAD_ENET_CRS_DV__ENET_RX_EN 0x1b0b0 338 339 MX6QDL_PAD_GPIO_16__ENET_REF_CLK 0x1b0b0 340 /* Phy reset */ 341 MX6QDL_PAD_CSI0_DAT4__GPIO5_IO22 0x1b0b0 342 /* nINTRP */ 343 MX6QDL_PAD_CSI0_DAT5__GPIO5_IO23 0x1b0b0 344 >; 345 }; 346 347 pinctrl_i2c1: i2c1grp { 348 fsl,pins = < 349 MX6QDL_PAD_CSI0_DAT8__I2C1_SDA 0x4001f8b1 350 MX6QDL_PAD_CSI0_DAT9__I2C1_SCL 0x4001f8b1 351 >; 352 }; 353 354 pinctrl_i2c3: i2c3grp { 355 fsl,pins = < 356 MX6QDL_PAD_GPIO_5__I2C3_SCL 0x4001b8b1 357 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 358 >; 359 }; 360 361 pinctrl_ipu1_disp: ipudisp1grp { 362 fsl,pins = < 363 /* DSE 0x30 => 25 Ohm, 0x20 => 37 Ohm, 0x10 => 75 Ohm */ 364 MX6QDL_PAD_DI0_DISP_CLK__IPU1_DI0_DISP_CLK 0x30 365 MX6QDL_PAD_DI0_PIN2__IPU1_DI0_PIN02 0x30 366 MX6QDL_PAD_DI0_PIN3__IPU1_DI0_PIN03 0x30 367 MX6QDL_PAD_DI0_PIN15__IPU1_DI0_PIN15 0x30 368 MX6QDL_PAD_DISP0_DAT0__IPU1_DISP0_DATA00 0x30 369 MX6QDL_PAD_DISP0_DAT1__IPU1_DISP0_DATA01 0x30 370 MX6QDL_PAD_DISP0_DAT2__IPU1_DISP0_DATA02 0x30 371 MX6QDL_PAD_DISP0_DAT3__IPU1_DISP0_DATA03 0x30 372 MX6QDL_PAD_DISP0_DAT4__IPU1_DISP0_DATA04 0x30 373 MX6QDL_PAD_DISP0_DAT5__IPU1_DISP0_DATA05 0x30 374 MX6QDL_PAD_DISP0_DAT6__IPU1_DISP0_DATA06 0x30 375 MX6QDL_PAD_DISP0_DAT7__IPU1_DISP0_DATA07 0x30 376 MX6QDL_PAD_DISP0_DAT8__IPU1_DISP0_DATA08 0x30 377 MX6QDL_PAD_DISP0_DAT9__IPU1_DISP0_DATA09 0x30 378 MX6QDL_PAD_DISP0_DAT10__IPU1_DISP0_DATA10 0x30 379 MX6QDL_PAD_DISP0_DAT11__IPU1_DISP0_DATA11 0x30 380 MX6QDL_PAD_DISP0_DAT12__IPU1_DISP0_DATA12 0x30 381 MX6QDL_PAD_DISP0_DAT13__IPU1_DISP0_DATA13 0x30 382 MX6QDL_PAD_DISP0_DAT14__IPU1_DISP0_DATA14 0x30 383 MX6QDL_PAD_DISP0_DAT15__IPU1_DISP0_DATA15 0x30 384 MX6QDL_PAD_DISP0_DAT16__IPU1_DISP0_DATA16 0x30 385 MX6QDL_PAD_DISP0_DAT17__IPU1_DISP0_DATA17 0x30 386 >; 387 }; 388 389 pinctrl_leds: ledsgrp { 390 fsl,pins = < 391 MX6QDL_PAD_GPIO_8__GPIO1_IO08 0x1b0b0 392 >; 393 }; 394 395 pinctrl_pwm1: pwm1grp { 396 fsl,pins = < 397 MX6QDL_PAD_GPIO_9__PWM1_OUT 0x8 398 >; 399 }; 400 401 pinctrl_ts_edt: ts1grp { 402 fsl,pins = < 403 MX6QDL_PAD_EIM_D20__GPIO3_IO20 0x1b0b0 404 >; 405 }; 406 407 pinctrl_uart2: uart2grp { 408 fsl,pins = < 409 MX6QDL_PAD_EIM_D26__UART2_RX_DATA 0x1b0b1 410 MX6QDL_PAD_EIM_D27__UART2_TX_DATA 0x1b0b1 411 MX6QDL_PAD_EIM_D28__UART2_CTS_B 0x130b1 412 >; 413 }; 414 415 pinctrl_uart3: uart3grp { 416 fsl,pins = < 417 MX6QDL_PAD_EIM_D24__UART3_TX_DATA 0x1b0b1 418 MX6QDL_PAD_EIM_D25__UART3_RX_DATA 0x1b0b1 419 MX6QDL_PAD_EIM_D30__UART3_CTS_B 0x130b1 420 >; 421 }; 422 423 pinctrl_uart4: uart4grp { 424 fsl,pins = < 425 MX6QDL_PAD_KEY_COL0__UART4_TX_DATA 0x1b0b1 426 MX6QDL_PAD_KEY_ROW0__UART4_RX_DATA 0x1b0b1 427 >; 428 }; 429 430 pinctrl_usbotg: usbotggrp { 431 fsl,pins = < 432 MX6QDL_PAD_EIM_D21__USB_OTG_OC 0x1b0b0 433 /* power enable, high active */ 434 MX6QDL_PAD_EIM_D22__GPIO3_IO22 0x1b0b0 435 >; 436 }; 437 438 pinctrl_usdhc1: usdhc1grp { 439 fsl,pins = < 440 MX6QDL_PAD_SD1_CMD__SD1_CMD 0x170f9 441 MX6QDL_PAD_SD1_CLK__SD1_CLK 0x100f9 442 MX6QDL_PAD_SD1_DAT0__SD1_DATA0 0x170f9 443 MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x170f9 444 MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x170f9 445 MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x170f9 446 MX6QDL_PAD_GPIO_1__SD1_CD_B 0x1b0b0 447 >; 448 }; 449 450 pinctrl_usdhc2: usdhc2grp { 451 fsl,pins = < 452 MX6QDL_PAD_SD2_CMD__SD2_CMD 0x170b9 453 MX6QDL_PAD_SD2_CLK__SD2_CLK 0x100b9 454 MX6QDL_PAD_SD2_DAT0__SD2_DATA0 0x170b9 455 MX6QDL_PAD_SD2_DAT1__SD2_DATA1 0x170b9 456 MX6QDL_PAD_SD2_DAT2__SD2_DATA2 0x170b9 457 MX6QDL_PAD_SD2_DAT3__SD2_DATA3 0x170b9 458 >; 459 }; 460 461 pinctrl_usdhc3: usdhc3grp { 462 fsl,pins = < 463 MX6QDL_PAD_SD3_CMD__SD3_CMD 0x17099 464 MX6QDL_PAD_SD3_CLK__SD3_CLK 0x10099 465 MX6QDL_PAD_SD3_DAT0__SD3_DATA0 0x17099 466 MX6QDL_PAD_SD3_DAT1__SD3_DATA1 0x17099 467 MX6QDL_PAD_SD3_DAT2__SD3_DATA2 0x17099 468 MX6QDL_PAD_SD3_DAT3__SD3_DATA3 0x17099 469 MX6QDL_PAD_SD3_DAT4__SD3_DATA4 0x17099 470 MX6QDL_PAD_SD3_DAT5__SD3_DATA5 0x17099 471 MX6QDL_PAD_SD3_DAT6__SD3_DATA6 0x17099 472 MX6QDL_PAD_SD3_DAT7__SD3_DATA7 0x17099 473 MX6QDL_PAD_SD3_RST__SD3_RESET 0x1b0b1 474 >; 475 }; 476 477 pinctrl_wifi_npd: wifigrp { 478 fsl,pins = < 479 /* WL_REG_ON */ 480 MX6QDL_PAD_NANDF_RB0__GPIO6_IO10 0x13069 481 >; 482 }; 483}; 484