0001 /*
0002 * Hitex LPC4350 Evaluation Board
0003 *
0004 * Copyright 2015 Ariel D'Alessandro <ariel.dalessandro@gmail.com>
0005 *
0006 * This code is released using a dual license strategy: BSD/GPL
0007 * You can choose the licence that better fits your requirements.
0008 *
0009 * Released under the terms of 3-clause BSD License
0010 * Released under the terms of GNU General Public License Version 2.0
0011 *
0012 */
0013 /dts-v1/;
0014
0015 #include "lpc18xx.dtsi"
0016 #include "lpc4350.dtsi"
0017
0018 #include "dt-bindings/input/input.h"
0019 #include "dt-bindings/gpio/gpio.h"
0020
0021 / {
0022 model = "Hitex LPC4350 Evaluation Board";
0023 compatible = "hitex,lpc4350-eval-board", "nxp,lpc4350";
0024
0025 aliases {
0026 serial0 = &uart0;
0027 serial1 = &uart1;
0028 serial2 = &uart2;
0029 serial3 = &uart3;
0030 };
0031
0032 chosen {
0033 stdout-path = &uart0;
0034 };
0035
0036 memory@28000000 {
0037 device_type = "memory";
0038 reg = <0x28000000 0x800000>; /* 8 MB */
0039 };
0040
0041 pca_buttons {
0042 compatible = "gpio-keys-polled";
0043 poll-interval = <100>;
0044 autorepeat;
0045
0046 button0 {
0047 label = "joy:right";
0048 linux,code = <KEY_RIGHT>;
0049 gpios = <&pca_gpio 8 GPIO_ACTIVE_LOW>;
0050 };
0051
0052 button1 {
0053 label = "joy:up";
0054 linux,code = <KEY_UP>;
0055 gpios = <&pca_gpio 9 GPIO_ACTIVE_LOW>;
0056 };
0057
0058
0059 button2 {
0060 label = "joy:enter";
0061 linux,code = <KEY_ENTER>;
0062 gpios = <&pca_gpio 10 GPIO_ACTIVE_LOW>;
0063 };
0064
0065 button3 {
0066 label = "joy:left";
0067 linux,code = <KEY_LEFT>;
0068 gpios = <&pca_gpio 11 GPIO_ACTIVE_LOW>;
0069 };
0070
0071 button4 {
0072 label = "joy:down";
0073 linux,code = <KEY_DOWN>;
0074 gpios = <&pca_gpio 12 GPIO_ACTIVE_LOW>;
0075 };
0076
0077 button5 {
0078 label = "user:sw3";
0079 linux,code = <KEY_F1>;
0080 gpios = <&pca_gpio 13 GPIO_ACTIVE_LOW>;
0081 };
0082
0083 button6 {
0084 label = "user:sw4";
0085 linux,code = <KEY_F2>;
0086 gpios = <&pca_gpio 14 GPIO_ACTIVE_LOW>;
0087 };
0088
0089 button7 {
0090 label = "user:sw5";
0091 linux,code = <KEY_F3>;
0092 gpios = <&pca_gpio 15 GPIO_ACTIVE_LOW>;
0093 };
0094 };
0095
0096 pca_leds {
0097 compatible = "gpio-leds";
0098
0099 led0 {
0100 label = "ext:led0";
0101 gpios = <&pca_gpio 0 GPIO_ACTIVE_LOW>;
0102 linux,default-trigger = "heartbeat";
0103 };
0104
0105 led1 {
0106 label = "ext:led1";
0107 gpios = <&pca_gpio 1 GPIO_ACTIVE_LOW>;
0108 };
0109
0110 led2 {
0111 label = "ext:led2";
0112 gpios = <&pca_gpio 2 GPIO_ACTIVE_LOW>;
0113 };
0114
0115 led3 {
0116 label = "ext:led3";
0117 gpios = <&pca_gpio 3 GPIO_ACTIVE_LOW>;
0118 };
0119 };
0120
0121 vcc: vcc_fixed {
0122 compatible = "regulator-fixed";
0123 regulator-name = "3v3io";
0124 regulator-min-microvolt = <3300000>;
0125 regulator-max-microvolt = <3300000>;
0126 };
0127 };
0128
0129 &pinctrl {
0130 adc1_pins: adc1-pins {
0131 adc1_pins_cfg {
0132 pins = "pf_9";
0133 function = "adc";
0134 input-disable;
0135 bias-disable;
0136 };
0137 };
0138
0139 emc_pins: emc-pins {
0140 emc_addr0_23_cfg {
0141 pins = "p2_9", "p2_10", "p2_11", "p2_12",
0142 "p2_13", "p1_0", "p1_1", "p1_2",
0143 "p2_8", "p2_7", "p2_6", "p2_2",
0144 "p2_1", "p2_0", "p6_8", "p6_7",
0145 "pd_16", "pd_15", "pe_0", "pe_1",
0146 "pe_2", "pe_3", "pe_4", "pa_4";
0147 function = "emc";
0148 slew-rate = <1>;
0149 bias-disable;
0150 input-enable;
0151 input-schmitt-disable;
0152 };
0153
0154 emc_data0_15_cfg {
0155 pins = "p1_7", "p1_8", "p1_9", "p1_10",
0156 "p1_11", "p1_12", "p1_13", "p1_14",
0157 "p5_4", "p5_5", "p5_6", "p5_7",
0158 "p5_0", "p5_1", "p5_2", "p5_3";
0159 function = "emc";
0160 slew-rate = <1>;
0161 bias-disable;
0162 input-enable;
0163 input-schmitt-disable;
0164 };
0165
0166 emc_we_oe_cfg {
0167 pins = "p1_6", "p1_3";
0168 function = "emc";
0169 slew-rate = <1>;
0170 bias-disable;
0171 input-enable;
0172 input-schmitt-disable;
0173 };
0174
0175 emc_bls0_3_cfg {
0176 pins = "p1_4", "p6_6", "pd_13", "pd_10";
0177 function = "emc";
0178 slew-rate = <1>;
0179 bias-disable;
0180 input-enable;
0181 input-schmitt-disable;
0182 };
0183
0184 emc_cs0_cs2_cfg {
0185 pins = "p1_5", "pd_12";
0186 function = "emc";
0187 slew-rate = <1>;
0188 bias-disable;
0189 input-enable;
0190 input-schmitt-disable;
0191 };
0192
0193 emc_sdram_dqm0_3_cfg {
0194 pins = "p6_12", "p6_10", "pd_0", "pe_13";
0195 function = "emc";
0196 slew-rate = <1>;
0197 bias-disable;
0198 input-enable;
0199 input-schmitt-disable;
0200 };
0201
0202 emc_sdram_ras_cas_cfg {
0203 pins = "p6_5", "p6_4";
0204 function = "emc";
0205 slew-rate = <1>;
0206 bias-disable;
0207 input-enable;
0208 input-schmitt-disable;
0209 };
0210
0211 emc_sdram_dycs0_cfg {
0212 pins = "p6_9";
0213 function = "emc";
0214 slew-rate = <1>;
0215 bias-disable;
0216 input-enable;
0217 input-schmitt-disable;
0218 };
0219
0220 emc_sdram_cke_cfg {
0221 pins = "p6_11";
0222 function = "emc";
0223 slew-rate = <1>;
0224 bias-disable;
0225 input-enable;
0226 input-schmitt-disable;
0227 };
0228
0229 emc_sdram_clock_cfg {
0230 pins = "clk0", "clk1", "clk2", "clk3";
0231 function = "emc";
0232 slew-rate = <1>;
0233 bias-disable;
0234 input-enable;
0235 input-schmitt-disable;
0236 };
0237 };
0238
0239 enet_mii_pins: enet-mii-pins {
0240 enet_mii_rxd0_3_cfg {
0241 pins = "p1_15", "p0_0", "p9_3", "p9_2";
0242 function = "enet";
0243 bias-disable;
0244 input-enable;
0245 };
0246
0247 enet_mii_txd0_3_cfg {
0248 pins = "p1_18", "p1_20", "p9_4", "p9_5";
0249 function = "enet";
0250 bias-disable;
0251 };
0252
0253 enet_mii_crs_col_cfg {
0254 pins = "p9_0", "p9_6";
0255 function = "enet";
0256 bias-disable;
0257 input-enable;
0258 };
0259
0260 enet_mii_rx_clk_dv_er_cfg {
0261 pins = "pc_0", "p1_16", "p9_1";
0262 function = "enet";
0263 bias-disable;
0264 input-enable;
0265 };
0266
0267 enet_mii_tx_clk_en_cfg {
0268 pins = "p1_19", "p0_1";
0269 function = "enet";
0270 bias-disable;
0271 input-enable;
0272 };
0273
0274 enet_mdio_cfg {
0275 pins = "p1_17";
0276 function = "enet";
0277 bias-disable;
0278 input-enable;
0279 };
0280
0281 enet_mdc_cfg {
0282 pins = "pc_1";
0283 function = "enet";
0284 bias-disable;
0285 };
0286 };
0287
0288 i2c0_pins: i2c0-pins {
0289 i2c0_pins_cfg {
0290 pins = "i2c0_scl", "i2c0_sda";
0291 function = "i2c0";
0292 input-enable;
0293 };
0294 };
0295
0296 spifi_pins: spifi-pins {
0297 spifi_clk_cfg {
0298 pins = "p3_3";
0299 function = "spifi";
0300 slew-rate = <1>;
0301 bias-disable;
0302 input-enable;
0303 input-schmitt-disable;
0304 };
0305
0306 spifi_mosi_miso_sio2_3_cfg {
0307 pins = "p3_7", "p3_6", "p3_5", "p3_4";
0308 function = "spifi";
0309 slew-rate = <1>;
0310 bias-disable;
0311 input-enable;
0312 input-schmitt-disable;
0313 };
0314
0315 spifi_cs_cfg {
0316 pins = "p3_8";
0317 function = "spifi";
0318 slew-rate = <1>;
0319 bias-disable;
0320 input-enable;
0321 input-schmitt-disable;
0322 };
0323 };
0324
0325 uart0_pins: uart0-pins {
0326 uart0_rx_cfg {
0327 pins = "pf_11";
0328 function = "uart0";
0329 input-schmitt-disable;
0330 bias-disable;
0331 input-enable;
0332 };
0333
0334 uart0_tx_cfg {
0335 pins = "pf_10";
0336 function = "uart0";
0337 bias-pull-down;
0338 };
0339 };
0340 };
0341
0342 &adc1 {
0343 status = "okay";
0344 vref-supply = <&vcc>;
0345 pinctrl-names = "default";
0346 pinctrl-0 = <&adc1_pins>;
0347 };
0348
0349 &emc {
0350 status = "okay";
0351 pinctrl-names = "default";
0352 pinctrl-0 = <&emc_pins>;
0353
0354 cs0 {
0355 #address-cells = <2>;
0356 #size-cells = <1>;
0357 ranges;
0358
0359 mpmc,cs = <0>;
0360 mpmc,memory-width = <16>;
0361 mpmc,byte-lane-low;
0362 mpmc,write-enable-delay = <0>;
0363 mpmc,output-enable-delay = <0>;
0364 mpmc,read-access-delay = <70>;
0365 mpmc,page-mode-read-delay = <70>;
0366
0367 flash@0,0 {
0368 compatible = "sst,sst39vf320", "cfi-flash";
0369 reg = <0 0 0x400000>;
0370 bank-width = <2>;
0371 #address-cells = <1>;
0372 #size-cells = <1>;
0373
0374 partition@0 {
0375 label = "bootloader";
0376 reg = <0x000000 0x040000>; /* 256 KiB */
0377 };
0378
0379 partition@1 {
0380 label = "kernel";
0381 reg = <0x040000 0x2C0000>; /* 2.75 MiB */
0382 };
0383
0384 partition@2 {
0385 label = "rootfs";
0386 reg = <0x300000 0x100000>; /* 1 MiB */
0387 };
0388 };
0389 };
0390
0391 cs2 {
0392 #address-cells = <2>;
0393 #size-cells = <1>;
0394 ranges;
0395
0396 mpmc,cs = <2>;
0397 mpmc,memory-width = <16>;
0398 mpmc,byte-lane-low;
0399 mpmc,write-enable-delay = <0>;
0400 mpmc,output-enable-delay = <30>;
0401 mpmc,read-access-delay = <90>;
0402 mpmc,page-mode-read-delay = <55>;
0403 mpmc,write-access-delay = <55>;
0404 mpmc,turn-round-delay = <55>;
0405
0406 ext_sram: sram@2,0 {
0407 compatible = "mmio-sram";
0408 reg = <2 0 0x80000>; /* 512 KiB SRAM on IS62WV25616 */
0409 };
0410 };
0411 };
0412
0413 &enet_tx_clk {
0414 clock-frequency = <25000000>;
0415 };
0416
0417 &i2c0 {
0418 status = "okay";
0419 pinctrl-names = "default";
0420 pinctrl-0 = <&i2c0_pins>;
0421 clock-frequency = <400000>;
0422
0423 /* NXP SE97BTP with temperature sensor + eeprom */
0424 sensor@18 {
0425 compatible = "nxp,se97", "jedec,jc-42.4-temp";
0426 reg = <0x18>;
0427 };
0428
0429 eeprom@50 {
0430 compatible = "nxp,24c02", "atmel,24c02";
0431 reg = <0x50>;
0432 };
0433
0434 pca_gpio: gpio@24 {
0435 compatible = "nxp,pca9673";
0436 reg = <0x24>;
0437 gpio-controller;
0438 #gpio-cells = <2>;
0439 };
0440 };
0441
0442 &mac {
0443 status = "okay";
0444 phy-mode = "mii";
0445 pinctrl-names = "default";
0446 pinctrl-0 = <&enet_mii_pins>;
0447 };
0448
0449 &spifi {
0450 status = "okay";
0451 pinctrl-names = "default";
0452 pinctrl-0 = <&spifi_pins>;
0453
0454 flash {
0455 compatible = "jedec,spi-nor";
0456 spi-rx-bus-width = <4>;
0457 #address-cells = <1>;
0458 #size-cells = <1>;
0459
0460 partition@0 {
0461 label = "bootloader";
0462 reg = <0x000000 0x040000>; /* 256 KiB */
0463 };
0464
0465 partition@1 {
0466 label = "kernel";
0467 reg = <0x040000 0x2c0000>; /* 2.75 MiB */
0468 };
0469
0470 partition@2 {
0471 label = "rootfs";
0472 reg = <0x300000 0x500000>; /* 5 MiB */
0473 };
0474 };
0475 };
0476
0477 &uart0 {
0478 status = "okay";
0479 pinctrl-names = "default";
0480 pinctrl-0 = <&uart0_pins>;
0481 };