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