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