Back to home page

OSCL-LXR

 
 

    


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 };