1295011Sandrew/* 2295011Sandrew * Hitex LPC4350 Evaluation Board 3295011Sandrew * 4295011Sandrew * Copyright 2015 Ariel D'Alessandro <ariel.dalessandro@gmail.com> 5295011Sandrew * 6295011Sandrew * This code is released using a dual license strategy: BSD/GPL 7295011Sandrew * You can choose the licence that better fits your requirements. 8295011Sandrew * 9295011Sandrew * Released under the terms of 3-clause BSD License 10295011Sandrew * Released under the terms of GNU General Public License Version 2.0 11295011Sandrew * 12295011Sandrew */ 13295011Sandrew/dts-v1/; 14295011Sandrew 15295011Sandrew#include "lpc18xx.dtsi" 16295011Sandrew#include "lpc4350.dtsi" 17295011Sandrew 18295011Sandrew#include "dt-bindings/input/input.h" 19295011Sandrew#include "dt-bindings/gpio/gpio.h" 20295011Sandrew 21295011Sandrew/ { 22295011Sandrew model = "Hitex LPC4350 Evaluation Board"; 23295011Sandrew compatible = "hitex,lpc4350-eval-board", "nxp,lpc4350"; 24295011Sandrew 25295011Sandrew aliases { 26295011Sandrew serial0 = &uart0; 27295011Sandrew serial1 = &uart1; 28295011Sandrew serial2 = &uart2; 29295011Sandrew serial3 = &uart3; 30295011Sandrew }; 31295011Sandrew 32295011Sandrew chosen { 33295011Sandrew stdout-path = &uart0; 34295011Sandrew }; 35295011Sandrew 36295011Sandrew memory { 37295011Sandrew device_type = "memory"; 38295011Sandrew reg = <0x28000000 0x800000>; /* 8 MB */ 39295011Sandrew }; 40295011Sandrew 41295011Sandrew pca_buttons { 42295011Sandrew compatible = "gpio-keys-polled"; 43295011Sandrew #address-cells = <1>; 44295011Sandrew #size-cells = <0>; 45295011Sandrew poll-interval = <100>; 46295011Sandrew autorepeat; 47295011Sandrew 48295011Sandrew button@0 { 49295011Sandrew label = "joy:right"; 50295011Sandrew linux,code = <KEY_RIGHT>; 51295011Sandrew gpios = <&pca_gpio 8 GPIO_ACTIVE_LOW>; 52295011Sandrew }; 53295011Sandrew 54295011Sandrew button@1 { 55295011Sandrew label = "joy:up"; 56295011Sandrew linux,code = <KEY_UP>; 57295011Sandrew gpios = <&pca_gpio 9 GPIO_ACTIVE_LOW>; 58295011Sandrew }; 59295011Sandrew 60295011Sandrew 61295011Sandrew button@2 { 62295011Sandrew label = "joy:enter"; 63295011Sandrew linux,code = <KEY_ENTER>; 64295011Sandrew gpios = <&pca_gpio 10 GPIO_ACTIVE_LOW>; 65295011Sandrew }; 66295011Sandrew 67295011Sandrew button@3 { 68295011Sandrew label = "joy:left"; 69295011Sandrew linux,code = <KEY_LEFT>; 70295011Sandrew gpios = <&pca_gpio 11 GPIO_ACTIVE_LOW>; 71295011Sandrew }; 72295011Sandrew 73295011Sandrew button@4 { 74295011Sandrew label = "joy:down"; 75295011Sandrew linux,code = <KEY_DOWN>; 76295011Sandrew gpios = <&pca_gpio 12 GPIO_ACTIVE_LOW>; 77295011Sandrew }; 78295011Sandrew 79295011Sandrew button@5 { 80295011Sandrew label = "user:sw3"; 81295011Sandrew linux,code = <KEY_F1>; 82295011Sandrew gpios = <&pca_gpio 13 GPIO_ACTIVE_LOW>; 83295011Sandrew }; 84295011Sandrew 85295011Sandrew button@6 { 86295011Sandrew label = "user:sw4"; 87295011Sandrew linux,code = <KEY_F2>; 88295011Sandrew gpios = <&pca_gpio 14 GPIO_ACTIVE_LOW>; 89295011Sandrew }; 90295011Sandrew 91295011Sandrew button@7 { 92295011Sandrew label = "user:sw5"; 93295011Sandrew linux,code = <KEY_F3>; 94295011Sandrew gpios = <&pca_gpio 15 GPIO_ACTIVE_LOW>; 95295011Sandrew }; 96295011Sandrew }; 97295011Sandrew 98295011Sandrew pca_leds { 99295011Sandrew compatible = "gpio-leds"; 100295011Sandrew 101295011Sandrew led0 { 102295011Sandrew label = "ext:led0"; 103295011Sandrew gpios = <&pca_gpio 0 GPIO_ACTIVE_LOW>; 104295011Sandrew linux,default-trigger = "heartbeat"; 105295011Sandrew }; 106295011Sandrew 107295011Sandrew led1 { 108295011Sandrew label = "ext:led1"; 109295011Sandrew gpios = <&pca_gpio 1 GPIO_ACTIVE_LOW>; 110295011Sandrew }; 111295011Sandrew 112295011Sandrew led2 { 113295011Sandrew label = "ext:led2"; 114295011Sandrew gpios = <&pca_gpio 2 GPIO_ACTIVE_LOW>; 115295011Sandrew }; 116295011Sandrew 117295011Sandrew led3 { 118295011Sandrew label = "ext:led3"; 119295011Sandrew gpios = <&pca_gpio 3 GPIO_ACTIVE_LOW>; 120295011Sandrew }; 121295011Sandrew }; 122295011Sandrew}; 123295011Sandrew 124295011Sandrew&pinctrl { 125295011Sandrew emc_pins: emc-pins { 126295011Sandrew emc_addr0_23_cfg { 127295011Sandrew pins = "p2_9", "p2_10", "p2_11", "p2_12", 128295011Sandrew "p2_13", "p1_0", "p1_1", "p1_2", 129295011Sandrew "p2_8", "p2_7", "p2_6", "p2_2", 130295011Sandrew "p2_1", "p2_0", "p6_8", "p6_7", 131295011Sandrew "pd_16", "pd_15", "pe_0", "pe_1", 132295011Sandrew "pe_2", "pe_3", "pe_4", "pa_4"; 133295011Sandrew function = "emc"; 134295011Sandrew slew-rate = <1>; 135295011Sandrew bias-disable; 136295011Sandrew input-enable; 137295011Sandrew input-schmitt-disable; 138295011Sandrew }; 139295011Sandrew 140295011Sandrew emc_data0_15_cfg { 141295011Sandrew pins = "p1_7", "p1_8", "p1_9", "p1_10", 142295011Sandrew "p1_11", "p1_12", "p1_13", "p1_14", 143295011Sandrew "p5_4", "p5_5", "p5_6", "p5_7", 144295011Sandrew "p5_0", "p5_1", "p5_2", "p5_3"; 145295011Sandrew function = "emc"; 146295011Sandrew slew-rate = <1>; 147295011Sandrew bias-disable; 148295011Sandrew input-enable; 149295011Sandrew input-schmitt-disable; 150295011Sandrew }; 151295011Sandrew 152295011Sandrew emc_we_oe_cfg { 153295011Sandrew pins = "p1_6", "p1_3"; 154295011Sandrew function = "emc"; 155295011Sandrew slew-rate = <1>; 156295011Sandrew bias-disable; 157295011Sandrew input-enable; 158295011Sandrew input-schmitt-disable; 159295011Sandrew }; 160295011Sandrew 161295011Sandrew emc_bls0_3_cfg { 162295011Sandrew pins = "p1_4", "p6_6", "pd_13", "pd_10"; 163295011Sandrew function = "emc"; 164295011Sandrew slew-rate = <1>; 165295011Sandrew bias-disable; 166295011Sandrew input-enable; 167295011Sandrew input-schmitt-disable; 168295011Sandrew }; 169295011Sandrew 170295011Sandrew emc_cs0_cs2_cfg { 171295011Sandrew pins = "p1_5", "pd_12"; 172295011Sandrew function = "emc"; 173295011Sandrew slew-rate = <1>; 174295011Sandrew bias-disable; 175295011Sandrew input-enable; 176295011Sandrew input-schmitt-disable; 177295011Sandrew }; 178295011Sandrew 179295011Sandrew emc_sdram_dqm0_3_cfg { 180295011Sandrew pins = "p6_12", "p6_10", "pd_0", "pe_13"; 181295011Sandrew function = "emc"; 182295011Sandrew slew-rate = <1>; 183295011Sandrew bias-disable; 184295011Sandrew input-enable; 185295011Sandrew input-schmitt-disable; 186295011Sandrew }; 187295011Sandrew 188295011Sandrew emc_sdram_ras_cas_cfg { 189295011Sandrew pins = "p6_5", "p6_4"; 190295011Sandrew function = "emc"; 191295011Sandrew slew-rate = <1>; 192295011Sandrew bias-disable; 193295011Sandrew input-enable; 194295011Sandrew input-schmitt-disable; 195295011Sandrew }; 196295011Sandrew 197295011Sandrew emc_sdram_dycs0_cfg { 198295011Sandrew pins = "p6_9"; 199295011Sandrew function = "emc"; 200295011Sandrew slew-rate = <1>; 201295011Sandrew bias-disable; 202295011Sandrew input-enable; 203295011Sandrew input-schmitt-disable; 204295011Sandrew }; 205295011Sandrew 206295011Sandrew emc_sdram_cke_cfg { 207295011Sandrew pins = "p6_11"; 208295011Sandrew function = "emc"; 209295011Sandrew slew-rate = <1>; 210295011Sandrew bias-disable; 211295011Sandrew input-enable; 212295011Sandrew input-schmitt-disable; 213295011Sandrew }; 214295011Sandrew 215295011Sandrew emc_sdram_clock_cfg { 216295011Sandrew pins = "clk0", "clk1", "clk2", "clk3"; 217295011Sandrew function = "emc"; 218295011Sandrew slew-rate = <1>; 219295011Sandrew bias-disable; 220295011Sandrew input-enable; 221295011Sandrew input-schmitt-disable; 222295011Sandrew }; 223295011Sandrew }; 224295011Sandrew 225295011Sandrew enet_mii_pins: enet-mii-pins { 226295011Sandrew enet_mii_rxd0_3_cfg { 227295011Sandrew pins = "p1_15", "p0_0", "p9_3", "p9_2"; 228295011Sandrew function = "enet"; 229295011Sandrew bias-disable; 230295011Sandrew input-enable; 231295011Sandrew }; 232295011Sandrew 233295011Sandrew enet_mii_txd0_3_cfg { 234295011Sandrew pins = "p1_18", "p1_20", "p9_4", "p9_5"; 235295011Sandrew function = "enet"; 236295011Sandrew bias-disable; 237295011Sandrew }; 238295011Sandrew 239295011Sandrew enet_mii_crs_col_cfg { 240295011Sandrew pins = "p9_0", "p9_6"; 241295011Sandrew function = "enet"; 242295011Sandrew bias-disable; 243295011Sandrew input-enable; 244295011Sandrew }; 245295011Sandrew 246295011Sandrew enet_mii_rx_clk_dv_er_cfg { 247295011Sandrew pins = "pc_0", "p1_16", "p9_1"; 248295011Sandrew function = "enet"; 249295011Sandrew bias-disable; 250295011Sandrew input-enable; 251295011Sandrew }; 252295011Sandrew 253295011Sandrew enet_mii_tx_clk_en_cfg { 254295011Sandrew pins = "p1_19", "p0_1"; 255295011Sandrew function = "enet"; 256295011Sandrew bias-disable; 257295011Sandrew input-enable; 258295011Sandrew }; 259295011Sandrew 260295011Sandrew enet_mdio_cfg { 261295011Sandrew pins = "p1_17"; 262295011Sandrew function = "enet"; 263295011Sandrew bias-disable; 264295011Sandrew input-enable; 265295011Sandrew }; 266295011Sandrew 267295011Sandrew enet_mdc_cfg { 268295011Sandrew pins = "pc_1"; 269295011Sandrew function = "enet"; 270295011Sandrew bias-disable; 271295011Sandrew }; 272295011Sandrew }; 273295011Sandrew 274295011Sandrew i2c0_pins: i2c0-pins { 275295011Sandrew i2c0_pins_cfg { 276295011Sandrew pins = "i2c0_scl", "i2c0_sda"; 277295011Sandrew function = "i2c0"; 278295011Sandrew input-enable; 279295011Sandrew }; 280295011Sandrew }; 281295011Sandrew 282295011Sandrew spifi_pins: spifi-pins { 283295011Sandrew spifi_clk_cfg { 284295011Sandrew pins = "p3_3"; 285295011Sandrew function = "spifi"; 286295011Sandrew slew-rate = <1>; 287295011Sandrew bias-disable; 288295011Sandrew input-enable; 289295011Sandrew input-schmitt-disable; 290295011Sandrew }; 291295011Sandrew 292295011Sandrew spifi_mosi_miso_sio2_3_cfg { 293295011Sandrew pins = "p3_7", "p3_6", "p3_5", "p3_4"; 294295011Sandrew function = "spifi"; 295295011Sandrew slew-rate = <1>; 296295011Sandrew bias-disable; 297295011Sandrew input-enable; 298295011Sandrew input-schmitt-disable; 299295011Sandrew }; 300295011Sandrew 301295011Sandrew spifi_cs_cfg { 302295011Sandrew pins = "p3_8"; 303295011Sandrew function = "spifi"; 304295011Sandrew slew-rate = <1>; 305295011Sandrew bias-disable; 306295011Sandrew input-enable; 307295011Sandrew input-schmitt-disable; 308295011Sandrew }; 309295011Sandrew }; 310295011Sandrew 311295011Sandrew uart0_pins: uart0-pins { 312295011Sandrew uart0_rx_cfg { 313295011Sandrew pins = "pf_11"; 314295011Sandrew function = "uart0"; 315295011Sandrew input-schmitt-disable; 316295011Sandrew bias-disable; 317295011Sandrew input-enable; 318295011Sandrew }; 319295011Sandrew 320295011Sandrew uart0_tx_cfg { 321295011Sandrew pins = "pf_10"; 322295011Sandrew function = "uart0"; 323295011Sandrew bias-pull-down; 324295011Sandrew }; 325295011Sandrew }; 326295011Sandrew}; 327295011Sandrew 328295011Sandrew&emc { 329295011Sandrew status = "okay"; 330295011Sandrew pinctrl-names = "default"; 331295011Sandrew pinctrl-0 = <&emc_pins>; 332295011Sandrew 333295011Sandrew cs0 { 334295011Sandrew #address-cells = <2>; 335295011Sandrew #size-cells = <1>; 336295011Sandrew ranges; 337295011Sandrew 338295011Sandrew mpmc,cs = <0>; 339295011Sandrew mpmc,memory-width = <16>; 340295011Sandrew mpmc,byte-lane-low; 341295011Sandrew mpmc,write-enable-delay = <0>; 342295011Sandrew mpmc,output-enable-delay = <0>; 343295011Sandrew mpmc,read-access-delay = <70>; 344295011Sandrew mpmc,page-mode-read-delay = <70>; 345295011Sandrew 346295011Sandrew flash@0,0 { 347295011Sandrew compatible = "sst,sst39vf320", "cfi-flash"; 348295011Sandrew reg = <0 0 0x400000>; 349295011Sandrew bank-width = <2>; 350295011Sandrew #address-cells = <1>; 351295011Sandrew #size-cells = <1>; 352295011Sandrew 353295011Sandrew partition@0 { 354295011Sandrew label = "bootloader"; 355295011Sandrew reg = <0x000000 0x040000>; /* 256 KiB */ 356295011Sandrew }; 357295011Sandrew 358295011Sandrew partition@1 { 359295011Sandrew label = "kernel"; 360295011Sandrew reg = <0x040000 0x2C0000>; /* 2.75 MiB */ 361295011Sandrew }; 362295011Sandrew 363295011Sandrew partition@2 { 364295011Sandrew label = "rootfs"; 365295011Sandrew reg = <0x300000 0x100000>; /* 1 MiB */ 366295011Sandrew }; 367295011Sandrew }; 368295011Sandrew }; 369295011Sandrew 370295011Sandrew cs2 { 371295011Sandrew #address-cells = <2>; 372295011Sandrew #size-cells = <1>; 373295011Sandrew ranges; 374295011Sandrew 375295011Sandrew mpmc,cs = <2>; 376295011Sandrew mpmc,memory-width = <16>; 377295011Sandrew mpmc,byte-lane-low; 378295011Sandrew mpmc,write-enable-delay = <0>; 379295011Sandrew mpmc,output-enable-delay = <30>; 380295011Sandrew mpmc,read-access-delay = <90>; 381295011Sandrew mpmc,page-mode-read-delay = <55>; 382295011Sandrew mpmc,write-access-delay = <55>; 383295011Sandrew mpmc,turn-round-delay = <55>; 384295011Sandrew 385295011Sandrew ext_sram: sram@2,0 { 386295011Sandrew compatible = "mmio-sram"; 387295011Sandrew reg = <2 0 0x80000>; /* 512 KiB SRAM on IS62WV25616 */ 388295011Sandrew }; 389295011Sandrew }; 390295011Sandrew}; 391295011Sandrew 392295011Sandrew&enet_tx_clk { 393295011Sandrew clock-frequency = <25000000>; 394295011Sandrew}; 395295011Sandrew 396295011Sandrew&i2c0 { 397295011Sandrew status = "okay"; 398295011Sandrew pinctrl-names = "default"; 399295011Sandrew pinctrl-0 = <&i2c0_pins>; 400295011Sandrew clock-frequency = <400000>; 401295011Sandrew 402295011Sandrew /* NXP SE97BTP with temperature sensor + eeprom */ 403295011Sandrew sensor@18 { 404295011Sandrew compatible = "nxp,jc42"; 405295011Sandrew reg = <0x18>; 406295011Sandrew }; 407295011Sandrew 408295011Sandrew eeprom@50 { 409295011Sandrew compatible = "nxp,24c02"; 410295011Sandrew reg = <0x50>; 411295011Sandrew }; 412295011Sandrew 413295011Sandrew pca_gpio: gpio@24 { 414295011Sandrew compatible = "nxp,pca9673"; 415295011Sandrew reg = <0x24>; 416295011Sandrew gpio-controller; 417295011Sandrew #gpio-cells = <2>; 418295011Sandrew }; 419295011Sandrew}; 420295011Sandrew 421295011Sandrew&mac { 422295011Sandrew status = "okay"; 423295011Sandrew phy-mode = "mii"; 424295011Sandrew pinctrl-names = "default"; 425295011Sandrew pinctrl-0 = <&enet_mii_pins>; 426295011Sandrew}; 427295011Sandrew 428295011Sandrew&spifi { 429295011Sandrew status = "okay"; 430295011Sandrew pinctrl-names = "default"; 431295011Sandrew pinctrl-0 = <&spifi_pins>; 432295011Sandrew 433295011Sandrew flash@0 { 434295011Sandrew compatible = "jedec,spi-nor"; 435295011Sandrew spi-rx-bus-width = <4>; 436295011Sandrew #address-cells = <1>; 437295011Sandrew #size-cells = <1>; 438295011Sandrew 439295011Sandrew partition@0 { 440295011Sandrew label = "bootloader"; 441295011Sandrew reg = <0x000000 0x040000>; /* 256 KiB */ 442295011Sandrew }; 443295011Sandrew 444295011Sandrew partition@1 { 445295011Sandrew label = "kernel"; 446295011Sandrew reg = <0x040000 0x2c0000>; /* 2.75 MiB */ 447295011Sandrew }; 448295011Sandrew 449295011Sandrew partition@2 { 450295011Sandrew label = "rootfs"; 451295011Sandrew reg = <0x300000 0x500000>; /* 5 MiB */ 452295011Sandrew }; 453295011Sandrew }; 454295011Sandrew}; 455295011Sandrew 456295011Sandrew&uart0 { 457295011Sandrew status = "okay"; 458295011Sandrew pinctrl-names = "default"; 459295011Sandrew pinctrl-0 = <&uart0_pins>; 460295011Sandrew}; 461