1/* 2 * Embedded Artist LPC4357 Developer's Kit 3 * 4 * Copyright 2015 Joachim Eastwood <manabian@gmail.com> 5 * 6 * This code is released using a dual license strategy: BSD/GPL 7 * You can choose the licence that better fits your requirements. 8 * 9 * Released under the terms of 3-clause BSD License 10 * Released under the terms of GNU General Public License Version 2.0 11 * 12 */ 13/dts-v1/; 14 15#include "lpc18xx.dtsi" 16#include "lpc4357.dtsi" 17 18#include "dt-bindings/input/input.h" 19#include "dt-bindings/gpio/gpio.h" 20 21/ { 22 model = "Embedded Artists' LPC4357 Developer's Kit"; 23 compatible = "ea,lpc4357-developers-kit", "nxp,lpc4357", "nxp,lpc4350"; 24 25 aliases { 26 serial0 = &uart0; 27 serial1 = &uart1; 28 serial2 = &uart2; 29 serial3 = &uart3; 30 }; 31 32 chosen { 33 stdout-path = &uart0; 34 }; 35 36 memory@28000000 { 37 device_type = "memory"; 38 reg = <0x28000000 0x2000000>; /* 32 MB */ 39 }; 40 41 vcc: vcc_fixed { 42 compatible = "regulator-fixed"; 43 regulator-name = "3v3-supply"; 44 regulator-min-microvolt = <3300000>; 45 regulator-max-microvolt = <3300000>; 46 }; 47 48 /* vmmc is controlled by sdmmc host internally */ 49 vmmc: vmmc_fixed { 50 compatible = "regulator-fixed"; 51 regulator-name = "vmmc-supply"; 52 regulator-min-microvolt = <3300000>; 53 regulator-max-microvolt = <3300000>; 54 }; 55 56 gpio_joystick { 57 compatible = "gpio-keys-polled"; 58 pinctrl-names = "default"; 59 pinctrl-0 = <&gpio_joystick_pins>; 60 #address-cells = <1>; 61 #size-cells = <0>; 62 poll-interval = <100>; 63 autorepeat; 64 65 button0 { 66 label = "joy_enter"; 67 linux,code = <KEY_ENTER>; 68 gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>; 69 }; 70 71 button1 { 72 label = "joy_left"; 73 linux,code = <KEY_LEFT>; 74 gpios = <&gpio LPC_GPIO(4,9) GPIO_ACTIVE_LOW>; 75 }; 76 77 button2 { 78 label = "joy_up"; 79 linux,code = <KEY_UP>; 80 gpios = <&gpio LPC_GPIO(4,10) GPIO_ACTIVE_LOW>; 81 }; 82 83 button3 { 84 label = "joy_right"; 85 linux,code = <KEY_RIGHT>; 86 gpios = <&gpio LPC_GPIO(4,12) GPIO_ACTIVE_LOW>; 87 }; 88 89 button4 { 90 label = "joy_down"; 91 linux,code = <KEY_DOWN>; 92 gpios = <&gpio LPC_GPIO(4,13) GPIO_ACTIVE_LOW>; 93 }; 94 }; 95 96 leds_mmio { 97 compatible = "gpio-leds"; 98 99 led1 { 100 gpios = <&mmio_leds 15 GPIO_ACTIVE_HIGH>; 101 linux,default-trigger = "heartbeat"; 102 }; 103 104 led2 { 105 gpios = <&mmio_leds 14 GPIO_ACTIVE_HIGH>; 106 }; 107 108 led3 { 109 gpios = <&mmio_leds 13 GPIO_ACTIVE_HIGH>; 110 }; 111 112 led4 { 113 gpios = <&mmio_leds 12 GPIO_ACTIVE_HIGH>; 114 }; 115 116 led5 { 117 gpios = <&mmio_leds 11 GPIO_ACTIVE_HIGH>; 118 }; 119 120 led6 { 121 gpios = <&mmio_leds 10 GPIO_ACTIVE_HIGH>; 122 }; 123 124 led7 { 125 gpios = <&mmio_leds 9 GPIO_ACTIVE_HIGH>; 126 }; 127 128 led8 { 129 gpios = <&mmio_leds 8 GPIO_ACTIVE_HIGH>; 130 }; 131 132 led9 { 133 gpios = <&mmio_leds 7 GPIO_ACTIVE_HIGH>; 134 }; 135 136 led10 { 137 gpios = <&mmio_leds 6 GPIO_ACTIVE_HIGH>; 138 }; 139 140 led11 { 141 gpios = <&mmio_leds 5 GPIO_ACTIVE_HIGH>; 142 }; 143 144 led12 { 145 gpios = <&mmio_leds 4 GPIO_ACTIVE_HIGH>; 146 }; 147 148 led13 { 149 gpios = <&mmio_leds 3 GPIO_ACTIVE_HIGH>; 150 }; 151 152 led14 { 153 gpios = <&mmio_leds 2 GPIO_ACTIVE_HIGH>; 154 }; 155 156 led15 { 157 gpios = <&mmio_leds 1 GPIO_ACTIVE_HIGH>; 158 }; 159 160 led16 { 161 gpios = <&mmio_leds 0 GPIO_ACTIVE_HIGH>; 162 }; 163 }; 164}; 165 166&pinctrl { 167 emc_pins: emc-pins { 168 emc_addr0_23_cfg { 169 pins = "p2_9", "p2_10", "p2_11", "p2_12", 170 "p2_13", "p1_0", "p1_1", "p1_2", 171 "p2_8", "p2_7", "p2_6", "p2_2", 172 "p2_1", "p2_0", "p6_8", "p6_7", 173 "pd_16", "pd_15", "pe_0", "pe_1", 174 "pe_2", "pe_3", "pe_4", "pa_4"; 175 function = "emc"; 176 slew-rate = <1>; 177 bias-disable; 178 input-enable; 179 input-schmitt-disable; 180 }; 181 182 emc_data0_31_cfg { 183 pins = "p1_7", "p1_8", "p1_9", "p1_10", 184 "p1_11", "p1_12", "p1_13", "p1_14", 185 "p5_4", "p5_5", "p5_6", "p5_7", 186 "p5_0", "p5_1", "p5_2", "p5_3", 187 "pd_2", "pd_3", "pd_4", "pd_5", 188 "pd_6", "pd_7", "pd_8", "pd_9", 189 "pe_5", "pe_6", "pe_7", "pe_8", 190 "pe_9", "pe_10", "pe_11", "pe_12"; 191 function = "emc"; 192 slew-rate = <1>; 193 bias-disable; 194 input-enable; 195 input-schmitt-disable; 196 }; 197 198 emc_we_oe_cfg { 199 pins = "p1_6", "p1_3"; 200 function = "emc"; 201 slew-rate = <1>; 202 bias-disable; 203 input-enable; 204 input-schmitt-disable; 205 }; 206 207 emc_bls0_3_cfg { 208 pins = "p1_4", "p6_6", "pd_13", "pd_10"; 209 function = "emc"; 210 slew-rate = <1>; 211 bias-disable; 212 input-enable; 213 input-schmitt-disable; 214 }; 215 216 emc_cs0_3_cfg { 217 pins = "p1_5", "p6_3", "pd_12", "pd_11"; 218 function = "emc"; 219 slew-rate = <1>; 220 bias-disable; 221 input-enable; 222 input-schmitt-disable; 223 }; 224 225 emc_sdram_dqm0_3_cfg { 226 pins = "p6_12", "p6_10", "pd_0", "pe_13"; 227 function = "emc"; 228 slew-rate = <1>; 229 bias-disable; 230 input-enable; 231 input-schmitt-disable; 232 }; 233 234 emc_sdram_ras_cas_cfg { 235 pins = "p6_5", "p6_4"; 236 function = "emc"; 237 slew-rate = <1>; 238 bias-disable; 239 input-enable; 240 input-schmitt-disable; 241 }; 242 243 emc_sdram_dycs0_cfg { 244 pins = "p6_9"; 245 function = "emc"; 246 slew-rate = <1>; 247 bias-disable; 248 input-enable; 249 input-schmitt-disable; 250 }; 251 252 emc_sdram_cke_cfg { 253 pins = "p6_11"; 254 function = "emc"; 255 slew-rate = <1>; 256 bias-disable; 257 input-enable; 258 input-schmitt-disable; 259 }; 260 261 emc_sdram_clock_cfg { 262 pins = "clk0", "clk1", "clk2", "clk3"; 263 function = "emc"; 264 slew-rate = <1>; 265 bias-disable; 266 input-enable; 267 input-schmitt-disable; 268 }; 269 }; 270 271 enet_rmii_pins: enet-rmii-pins { 272 enet_rmii_rxd_cfg { 273 pins = "p1_15", "p0_0"; 274 function = "enet"; 275 slew-rate = <1>; 276 bias-disable; 277 input-enable; 278 input-schmitt-disable; 279 }; 280 281 enet_rmii_txd_cfg { 282 pins = "p1_18", "p1_20"; 283 function = "enet"; 284 slew-rate = <1>; 285 bias-disable; 286 input-enable; 287 input-schmitt-disable; 288 }; 289 290 enet_rmii_rx_dv_cfg { 291 pins = "p1_16"; 292 function = "enet"; 293 bias-disable; 294 input-enable; 295 input-schmitt-disable; 296 }; 297 298 enet_rmii_tx_en_cfg { 299 pins = "p0_1"; 300 function = "enet"; 301 bias-disable; 302 input-enable; 303 input-schmitt-disable; 304 }; 305 306 enet_ref_clk_cfg { 307 pins = "p1_19"; 308 function = "enet"; 309 slew-rate = <1>; 310 bias-disable; 311 input-enable; 312 input-schmitt-disable; 313 }; 314 315 enet_mdio_cfg { 316 pins = "p1_17"; 317 function = "enet"; 318 bias-disable; 319 input-enable; 320 input-schmitt-disable; 321 }; 322 323 enet_mdc_cfg { 324 pins = "pc_1"; 325 function = "enet"; 326 slew-rate = <1>; 327 bias-disable; 328 input-enable; 329 input-schmitt-disable; 330 }; 331 }; 332 333 gpio_joystick_pins: gpio-joystick-pins { 334 gpio_joystick_cfg { 335 pins = "p9_0", "p9_1", "pa_1", "pa_2", "pa_3"; 336 function = "gpio"; 337 input-enable; 338 bias-disable; 339 }; 340 }; 341 342 i2c0_pins: i2c0-pins { 343 i2c0_pins_cfg { 344 pins = "i2c0_scl", "i2c0_sda"; 345 function = "i2c0"; 346 input-enable; 347 }; 348 }; 349 350 sdmmc_pins: sdmmc-pins { 351 sdmmc_clk_cfg { 352 pins = "pc_0"; 353 function = "sdmmc"; 354 slew-rate = <1>; 355 bias-pull-down; 356 }; 357 358 sdmmc_cmd_dat0_3_cfg { 359 pins = "pc_4", "pc_5", "pc_6", "pc_7", "pc_10"; 360 function = "sdmmc"; 361 slew-rate = <1>; 362 bias-disable; 363 input-enable; 364 input-schmitt-disable; 365 }; 366 367 sdmmc_cd_cfg { 368 pins = "pc_8"; 369 function = "sdmmc"; 370 bias-pull-down; 371 input-enable; 372 }; 373 374 sdmmc_pow_cfg { 375 pins = "pc_9"; 376 function = "sdmmc"; 377 bias-pull-down; 378 }; 379 }; 380 381 spifi_pins: spifi-pins { 382 spifi_clk_cfg { 383 pins = "p3_3"; 384 function = "spifi"; 385 slew-rate = <1>; 386 bias-disable; 387 input-enable; 388 input-schmitt-disable; 389 }; 390 391 spifi_mosi_miso_sio2_3_cfg { 392 pins = "p3_7", "p3_6", "p3_5", "p3_4"; 393 function = "spifi"; 394 slew-rate = <0>; 395 bias-disable; 396 input-enable; 397 input-schmitt-disable; 398 }; 399 400 spifi_cs_cfg { 401 pins = "p3_8"; 402 function = "spifi"; 403 bias-disable; 404 }; 405 }; 406 407 ssp0_pins: ssp0-pins { 408 ssp0_sck_miso_mosi { 409 pins = "pf_0", "pf_2", "pf_3"; 410 function = "ssp0"; 411 slew-rate = <1>; 412 bias-pull-down; 413 input-enable; 414 input-schmitt-disable; 415 }; 416 417 ssp0_ssel { 418 pins = "pf_1"; 419 function = "ssp0"; 420 bias-pull-up; 421 }; 422 }; 423 424 uart0_pins: uart0-pins { 425 uart0_rx_cfg { 426 pins = "pf_11"; 427 function = "uart0"; 428 input-schmitt-disable; 429 bias-disable; 430 input-enable; 431 }; 432 433 uart0_tx_cfg { 434 pins = "pf_10"; 435 function = "uart0"; 436 bias-pull-down; 437 }; 438 }; 439 440 uart3_pins: uart3-pins { 441 uart3_rx_cfg { 442 pins = "p2_4"; 443 function = "uart3"; 444 input-schmitt-disable; 445 bias-disable; 446 input-enable; 447 }; 448 449 uart3_tx_cfg { 450 pins = "p9_3"; 451 function = "uart3"; 452 bias-pull-down; 453 }; 454 }; 455 456 usb0_pins: usb0-pins { 457 usb0_pwr_enable { 458 pins = "p2_3"; 459 function = "usb0"; 460 }; 461 462 usb0_pwr_fault { 463 pins = "p8_0"; 464 function = "usb0"; 465 bias-disable; 466 input-enable; 467 }; 468 }; 469}; 470 471&adc0 { 472 status = "okay"; 473 vref-supply = <&vcc>; 474}; 475 476&i2c0 { 477 status = "okay"; 478 pinctrl-names = "default"; 479 pinctrl-0 = <&i2c0_pins>; 480 clock-frequency = <400000>; 481 482 mma7455@1d { 483 compatible = "fsl,mma7455"; 484 reg = <0x1d>; 485 }; 486 487 lm75@48 { 488 compatible = "nxp,lm75"; 489 reg = <0x48>; 490 }; 491 492 eeprom@57 { 493 compatible = "microchip,24c64"; 494 reg = <0x57>; 495 }; 496}; 497 498&dac { 499 status = "okay"; 500 vref-supply = <&vcc>; 501}; 502 503&emc { 504 status = "okay"; 505 pinctrl-names = "default"; 506 pinctrl-0 = <&emc_pins>; 507 508 cs0 { 509 #address-cells = <2>; 510 #size-cells = <1>; 511 ranges; 512 513 mpmc,cs = <0>; 514 mpmc,memory-width = <16>; 515 mpmc,byte-lane-low; 516 mpmc,write-enable-delay = <0>; 517 mpmc,output-enable-delay = <0>; 518 mpmc,read-access-delay = <70>; 519 mpmc,page-mode-read-delay = <70>; 520 521 flash@0,0 { 522 compatible = "sst,sst39vf320", "cfi-flash"; 523 reg = <0 0 0x400000>; 524 bank-width = <2>; 525 #address-cells = <1>; 526 #size-cells = <1>; 527 528 partition@0 { 529 label = "bootloader"; 530 reg = <0x000000 0x040000>; /* 256 KiB */ 531 }; 532 533 partition@1 { 534 label = "kernel"; 535 reg = <0x040000 0x2c0000>; /* 2.75 MiB */ 536 }; 537 538 partition@2 { 539 label = "rootfs"; 540 reg = <0x300000 0x100000>; /* 1 MiB */ 541 }; 542 }; 543 }; 544 545 cs2 { 546 #address-cells = <2>; 547 #size-cells = <1>; 548 ranges; 549 550 mpmc,cs = <2>; 551 mpmc,memory-width = <16>; 552 553 mmio_leds: gpio@2,0 { 554 compatible = "ti,7416374"; 555 reg = <2 0 0x2>; 556 gpio-controller; 557 #gpio-cells = <2>; 558 }; 559 560 }; 561}; 562 563&enet_tx_clk { 564 clock-frequency = <50000000>; 565}; 566 567&mac { 568 status = "okay"; 569 phy-mode = "rmii"; 570 pinctrl-names = "default"; 571 pinctrl-0 = <&enet_rmii_pins>; 572}; 573 574&mmcsd { 575 status = "okay"; 576 bus-width = <4>; 577 vmmc-supply = <&vmmc>; 578 pinctrl-names = "default"; 579 pinctrl-0 = <&sdmmc_pins>; 580}; 581 582&spifi { 583 status = "okay"; 584 pinctrl-names = "default"; 585 pinctrl-0 = <&spifi_pins>; 586 587 flash { 588 compatible = "jedec,spi-nor"; 589 spi-cpol; 590 spi-cpha; 591 spi-rx-bus-width = <4>; 592 #address-cells = <1>; 593 #size-cells = <1>; 594 595 partition@0 { 596 label = "data"; 597 reg = <0 0x200000>; 598 }; 599 }; 600}; 601 602&ssp0 { 603 status = "okay"; 604 pinctrl-names = "default"; 605 pinctrl-0 = <&ssp0_pins>; 606 num-cs = <1>; 607}; 608 609&uart0 { 610 status = "okay"; 611 pinctrl-names = "default"; 612 pinctrl-0 = <&uart0_pins>; 613}; 614 615&uart3 { 616 status = "okay"; 617 pinctrl-names = "default"; 618 pinctrl-0 = <&uart3_pins>; 619}; 620 621&usb0 { 622 status = "okay"; 623 pinctrl-names = "default"; 624 pinctrl-0 = <&usb0_pins>; 625}; 626