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