1// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) 2/* 3 * MYIR Tech MYD-LPC4357 Development Board with 800x480 7" TFT panel 4 * 5 * Copyright (C) 2016-2018 Vladimir Zapolskiy <vz@mleia.com> 6 */ 7 8/dts-v1/; 9 10#include "lpc18xx.dtsi" 11#include "lpc4357.dtsi" 12 13#include <dt-bindings/gpio/gpio.h> 14 15/ { 16 model = "MYIR Tech LPC4357 Development Board"; 17 compatible = "myir,myd-lpc4357", "nxp,lpc4357"; 18 19 chosen { 20 stdout-path = "serial3:115200n8"; 21 }; 22 23 memory@28000000 { 24 device_type = "memory"; 25 reg = <0x28000000 0x2000000>; 26 }; 27 28 leds { 29 compatible = "gpio-leds"; 30 pinctrl-names = "default"; 31 pinctrl-0 = <&led_pins>; 32 33 led1 { 34 gpios = <&gpio LPC_GPIO(6,15) GPIO_ACTIVE_LOW>; 35 default-state = "off"; 36 }; 37 38 led2 { 39 gpios = <&gpio LPC_GPIO(6,16) GPIO_ACTIVE_LOW>; 40 default-state = "off"; 41 }; 42 43 led3 { 44 gpios = <&gpio LPC_GPIO(6,17) GPIO_ACTIVE_LOW>; 45 default-state = "off"; 46 }; 47 48 led4 { 49 gpios = <&gpio LPC_GPIO(6,10) GPIO_ACTIVE_LOW>; 50 default-state = "off"; 51 }; 52 53 led5 { 54 gpios = <&gpio LPC_GPIO(7,14) GPIO_ACTIVE_LOW>; 55 default-state = "off"; 56 }; 57 58 led6 { 59 gpios = <&gpio LPC_GPIO(6,14) GPIO_ACTIVE_LOW>; 60 default-state = "off"; 61 }; 62 }; 63 64 panel: panel { 65 compatible = "innolux,at070tn92"; 66 power-supply = <&vcc>; 67 68 port { 69 panel_input: endpoint { 70 remote-endpoint = <&lcdc_output>; 71 }; 72 }; 73 }; 74 75 vcc: vcc_fixed { 76 compatible = "regulator-fixed"; 77 regulator-name = "vcc-supply"; 78 regulator-min-microvolt = <3300000>; 79 regulator-max-microvolt = <3300000>; 80 }; 81 82 vmmc: vmmc_fixed { 83 compatible = "regulator-fixed"; 84 regulator-name = "vmmc-supply"; 85 regulator-min-microvolt = <3300000>; 86 regulator-max-microvolt = <3300000>; 87 }; 88}; 89 90&pinctrl { 91 can0_pins: can0-pins { 92 can_rd_cfg { 93 pins = "p3_1"; 94 function = "can0"; 95 input-enable; 96 }; 97 98 can_td_cfg { 99 pins = "p3_2"; 100 function = "can0"; 101 }; 102 }; 103 104 can1_pins: can1-pins { 105 can_rd_cfg { 106 pins = "pe_1"; 107 function = "can1"; 108 input-enable; 109 }; 110 111 can_td_cfg { 112 pins = "pe_0"; 113 function = "can1"; 114 }; 115 }; 116 117 emc_pins: emc-pins { 118 emc_addr0_22_cfg { 119 pins = "p2_9", "p2_10", "p2_11", "p2_12", 120 "p2_13", "p1_0", "p1_1", "p1_2", 121 "p2_8", "p2_7", "p2_6", "p2_2", 122 "p2_1", "p2_0", "p6_8", "p6_7", 123 "pd_16", "pd_15", "pe_0", "pe_1", 124 "pe_2", "pe_3", "pe_4"; 125 function = "emc"; 126 slew-rate = <1>; 127 bias-disable; 128 }; 129 130 emc_data0_15_cfg { 131 pins = "p1_7", "p1_8", "p1_9", "p1_10", 132 "p1_11", "p1_12", "p1_13", "p1_14", 133 "p5_4", "p5_5", "p5_6", "p5_7", 134 "p5_0", "p5_1", "p5_2", "p5_3"; 135 function = "emc"; 136 input-enable; 137 input-schmitt-disable; 138 slew-rate = <1>; 139 bias-disable; 140 }; 141 142 emc_we_oe_cfg { 143 pins = "p1_6", "p1_3"; 144 function = "emc"; 145 slew-rate = <1>; 146 bias-disable; 147 }; 148 149 emc_cs0_cfg { 150 pins = "p1_5"; 151 function = "emc"; 152 slew-rate = <1>; 153 bias-disable; 154 }; 155 156 emc_sdram_dqm0_1_cfg { 157 pins = "p6_12", "p6_10"; 158 function = "emc"; 159 slew-rate = <1>; 160 bias-disable; 161 }; 162 163 emc_sdram_ras_cas_cfg { 164 pins = "p6_5", "p6_4"; 165 function = "emc"; 166 slew-rate = <1>; 167 bias-disable; 168 }; 169 170 emc_sdram_dycs0_cfg { 171 pins = "p6_9"; 172 function = "emc"; 173 slew-rate = <1>; 174 bias-disable; 175 }; 176 177 emc_sdram_cke_cfg { 178 pins = "p6_11"; 179 function = "emc"; 180 slew-rate = <1>; 181 bias-disable; 182 }; 183 184 emc_sdram_clock_cfg { 185 pins = "clk0"; 186 function = "emc"; 187 input-enable; 188 input-schmitt-disable; 189 slew-rate = <1>; 190 bias-disable; 191 }; 192 }; 193 194 enet_rmii_pins: enet-rmii-pins { 195 enet_rmii_rxd_cfg { 196 pins = "p1_15", "p0_0"; 197 function = "enet"; 198 input-enable; 199 input-schmitt-disable; 200 slew-rate = <1>; 201 bias-disable; 202 }; 203 204 enet_rmii_txd_cfg { 205 pins = "p1_18", "p1_20"; 206 function = "enet"; 207 slew-rate = <1>; 208 bias-disable; 209 }; 210 211 enet_rmii_rx_dv_cfg { 212 pins = "p1_16"; 213 function = "enet"; 214 input-enable; 215 input-schmitt-disable; 216 bias-disable; 217 }; 218 219 enet_mdio_cfg { 220 pins = "p1_17"; 221 function = "enet"; 222 input-enable; 223 input-schmitt-disable; 224 bias-disable; 225 }; 226 227 enet_mdc_cfg { 228 pins = "pc_1"; 229 function = "enet"; 230 slew-rate = <1>; 231 bias-disable; 232 }; 233 234 enet_rmii_tx_en_cfg { 235 pins = "p0_1"; 236 function = "enet"; 237 bias-disable; 238 }; 239 240 enet_ref_clk_cfg { 241 pins = "p1_19"; 242 function = "enet"; 243 slew-rate = <1>; 244 input-enable; 245 input-schmitt-disable; 246 bias-disable; 247 }; 248 }; 249 250 i2c0_pins: i2c0-pins { 251 i2c0_pins_cfg { 252 pins = "i2c0_scl", "i2c0_sda"; 253 function = "i2c0"; 254 input-enable; 255 }; 256 }; 257 258 i2c1_pins: i2c1-pins { 259 i2c1_pins_cfg { 260 pins = "pe_15", "pe_13"; 261 function = "i2c1"; 262 input-enable; 263 }; 264 }; 265 266 lcd_pins: lcd-pins { 267 lcd_vd0_23_cfg { 268 pins = "p4_1", "p4_4", "p4_3", "p4_2", 269 "p8_7", "p8_6", "p8_5", "p8_4", 270 "p7_5", "p4_8", "p4_10", "p4_9", 271 "p8_3", "pb_6", "pb_5", "pb_4", 272 "p7_4", "p7_3", "p7_2", "p7_1", 273 "pb_3", "pb_2", "pb_1", "pb_0"; 274 function = "lcd"; 275 }; 276 277 lcd_vsync_en_dclk_lp_pwr_cfg { 278 pins = "p4_5", "p4_6", "p4_7", "p7_6", "p7_7"; 279 function = "lcd"; 280 }; 281 }; 282 283 led_pins: led-pins { 284 led_1_6_cfg { 285 pins = "pd_1", "pd_2", "pd_3", "pc_11", "pe_14", "pd_0"; 286 function = "gpio"; 287 bias-pull-down; 288 }; 289 }; 290 291 sdmmc_pins: sdmmc-pins { 292 sdmmc_clk_cfg { 293 pins = "pc_0"; 294 function = "sdmmc"; 295 slew-rate = <1>; 296 bias-pull-down; 297 }; 298 299 sdmmc_cmd_dat0_3_cfg { 300 pins = "pc_4", "pc_5", "pc_6", "pc_7", "pc_10"; 301 function = "sdmmc"; 302 input-enable; 303 input-schmitt-disable; 304 slew-rate = <1>; 305 bias-disable; 306 }; 307 308 sdmmc_cd_cfg { 309 pins = "pc_8"; 310 function = "sdmmc"; 311 input-enable; 312 bias-pull-down; 313 }; 314 }; 315 316 spifi_pins: spifi-pins { 317 spifi_sck_cfg { 318 pins = "p3_3"; 319 function = "spifi"; 320 input-enable; 321 input-schmitt-disable; 322 slew-rate = <1>; 323 bias-disable; 324 }; 325 326 spifi_mosi_miso_sio2_sio3_cfg { 327 pins = "p3_7", "p3_6", "p3_5", "p3_4"; 328 function = "spifi"; 329 input-enable; 330 input-schmitt-disable; 331 slew-rate = <1>; 332 bias-disable; 333 }; 334 335 spifi_cs_cfg { 336 pins = "p3_8"; 337 function = "spifi"; 338 bias-disable; 339 }; 340 }; 341 342 ssp1_pins: ssp1-pins { 343 ssp1_sck_cfg { 344 pins = "pf_4"; 345 function = "ssp1"; 346 slew-rate = <1>; 347 bias-pull-down; 348 }; 349 350 ssp1_miso_cfg { 351 pins = "pf_6"; 352 function = "ssp1"; 353 input-enable; 354 input-schmitt-disable; 355 slew-rate = <1>; 356 bias-pull-down; 357 }; 358 359 ssp1_mosi_cfg { 360 pins = "pf_7"; 361 function = "ssp1"; 362 slew-rate = <1>; 363 bias-pull-down; 364 }; 365 366 ssp1_ssel_cfg { 367 pins = "pf_5"; 368 function = "gpio"; 369 bias-disable; 370 }; 371 }; 372 373 uart0_pins: uart0-pins { 374 uart0_rxd_cfg { 375 pins = "pf_11"; 376 function = "uart0"; 377 input-enable; 378 input-schmitt-disable; 379 bias-disable; 380 }; 381 382 uart0_clk_dir_txd_cfg { 383 pins = "pf_8", "pf_9", "pf_10"; 384 function = "uart0"; 385 bias-pull-down; 386 }; 387 }; 388 389 uart1_pins: uart1-pins { 390 uart1_rxd_cfg { 391 pins = "pc_14"; 392 function = "uart1"; 393 bias-disable; 394 input-enable; 395 input-schmitt-disable; 396 }; 397 398 uart1_dtr_txd_cfg { 399 pins = "pc_12", "pc_13"; 400 function = "uart1"; 401 bias-pull-down; 402 }; 403 }; 404 405 uart2_pins: uart2-pins { 406 uart2_rxd_cfg { 407 pins = "pa_2"; 408 function = "uart2"; 409 bias-disable; 410 input-enable; 411 input-schmitt-disable; 412 }; 413 414 uart2_txd_cfg { 415 pins = "pa_1"; 416 function = "uart2"; 417 bias-pull-down; 418 }; 419 }; 420 421 uart3_pins: uart3-pins { 422 uart3_rx_cfg { 423 pins = "p2_4"; 424 function = "uart3"; 425 bias-disable; 426 input-enable; 427 input-schmitt-disable; 428 }; 429 430 uart3_tx_cfg { 431 pins = "p2_3"; 432 function = "uart3"; 433 bias-pull-down; 434 }; 435 }; 436 437 usb0_pins: usb0-pins { 438 usb0_pwr_enable_cfg { 439 pins = "p6_3"; 440 function = "usb0"; 441 }; 442 443 usb0_pwr_fault_cfg { 444 pins = "p8_0"; 445 function = "usb0"; 446 bias-disable; 447 input-enable; 448 }; 449 }; 450}; 451 452&adc1 { 453 status = "okay"; 454 vref-supply = <&vcc>; 455}; 456 457&can0 { 458 status = "okay"; 459 pinctrl-names = "default"; 460 pinctrl-0 = <&can0_pins>; 461}; 462 463/* Pin conflict with EMC, muxed by JP5 and JP6 */ 464&can1 { 465 status = "disabled"; 466 pinctrl-names = "default"; 467 pinctrl-0 = <&can1_pins>; 468}; 469 470&emc { 471 status = "okay"; 472 pinctrl-names = "default"; 473 pinctrl-0 = <&emc_pins>; 474 475 cs0 { 476 #address-cells = <2>; 477 #size-cells = <1>; 478 ranges; 479 480 mpmc,cs = <0>; 481 mpmc,memory-width = <16>; 482 mpmc,byte-lane-low; 483 mpmc,write-enable-delay = <0>; 484 mpmc,output-enable-delay = <0>; 485 mpmc,read-access-delay = <70>; 486 mpmc,page-mode-read-delay = <70>; 487 488 /* SST/Microchip SST39VF1601 */ 489 flash@0,0 { 490 compatible = "cfi-flash"; 491 reg = <0 0 0x400000>; 492 bank-width = <2>; 493 }; 494 }; 495}; 496 497&enet_tx_clk { 498 clock-frequency = <50000000>; 499}; 500 501&i2c0 { 502 status = "okay"; 503 pinctrl-names = "default"; 504 pinctrl-0 = <&i2c0_pins>; 505 clock-frequency = <400000>; 506}; 507 508&i2c1 { 509 status = "okay"; 510 pinctrl-names = "default"; 511 pinctrl-0 = <&i2c1_pins>; 512 clock-frequency = <400000>; 513 514 sensor@49 { 515 compatible = "national,lm75"; 516 reg = <0x49>; 517 }; 518 519 eeprom@50 { 520 compatible = "atmel,24c512"; 521 reg = <0x50>; 522 }; 523}; 524 525&lcdc { 526 status = "okay"; 527 pinctrl-names = "default"; 528 pinctrl-0 = <&lcd_pins>; 529 530 max-memory-bandwidth = <92240000>; 531 532 port { 533 lcdc_output: endpoint { 534 remote-endpoint = <&panel_input>; 535 arm,pl11x,tft-r0g0b0-pads = <0 8 16>; 536 }; 537 }; 538}; 539 540&mac { 541 status = "okay"; 542 phy-mode = "rmii"; 543 pinctrl-names = "default"; 544 pinctrl-0 = <&enet_rmii_pins>; 545 phy-handle = <&phy1>; 546 547 mdio { 548 #address-cells = <1>; 549 #size-cells = <0>; 550 compatible = "snps,dwmac-mdio"; 551 552 phy1: ethernet-phy@1 { 553 reg = <1>; 554 }; 555 }; 556}; 557 558&mmcsd { 559 status = "okay"; 560 pinctrl-names = "default"; 561 pinctrl-0 = <&sdmmc_pins>; 562 bus-width = <4>; 563 vmmc-supply = <&vmmc>; 564}; 565 566/* Pin conflict with SSP0, the latter is routed to J17 pin header */ 567&spifi { 568 status = "okay"; 569 pinctrl-names = "default"; 570 pinctrl-0 = <&spifi_pins>; 571 572 /* Atmel AT25DF321A */ 573 flash@0 { 574 compatible = "jedec,spi-nor"; 575 reg = <0>; 576 spi-max-frequency = <51000000>; 577 spi-cpol; 578 spi-cpha; 579 }; 580}; 581 582&ssp1 { 583 status = "okay"; 584 pinctrl-names = "default"; 585 pinctrl-0 = <&ssp1_pins>; 586 num-cs = <1>; 587 cs-gpios = <&gpio LPC_GPIO(7,19) GPIO_ACTIVE_LOW>; 588}; 589 590/* Routed to J17 pin header */ 591&uart0 { 592 status = "okay"; 593 pinctrl-names = "default"; 594 pinctrl-0 = <&uart0_pins>; 595}; 596 597/* RS485 */ 598&uart1 { 599 status = "okay"; 600 pinctrl-names = "default"; 601 pinctrl-0 = <&uart1_pins>; 602}; 603 604/* Routed to J17 pin header */ 605&uart2 { 606 status = "okay"; 607 pinctrl-names = "default"; 608 pinctrl-0 = <&uart2_pins>; 609}; 610 611&uart3 { 612 status = "okay"; 613 pinctrl-names = "default"; 614 pinctrl-0 = <&uart3_pins>; 615}; 616 617&usb0 { 618 status = "okay"; 619 pinctrl-names = "default"; 620 pinctrl-0 = <&usb0_pins>; 621}; 622