Commit | Line | Data |
---|---|---|
56bd3771 JE |
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 | ||
95dafb2c JE |
18 | #include "dt-bindings/input/input.h" |
19 | #include "dt-bindings/gpio/gpio.h" | |
20 | ||
56bd3771 JE |
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 | }; | |
bfd0b498 | 40 | |
5f2d9d18 JE |
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 | ||
bfd0b498 JE |
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 | }; | |
95dafb2c JE |
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 | ||
eeadc20c | 65 | button0 { |
95dafb2c JE |
66 | label = "joy_enter"; |
67 | linux,code = <KEY_ENTER>; | |
68 | gpios = <&gpio LPC_GPIO(4,8) GPIO_ACTIVE_LOW>; | |
69 | }; | |
70 | ||
eeadc20c | 71 | button1 { |
95dafb2c JE |
72 | label = "joy_left"; |
73 | linux,code = <KEY_LEFT>; | |
74 | gpios = <&gpio LPC_GPIO(4,9) GPIO_ACTIVE_LOW>; | |
75 | }; | |
76 | ||
eeadc20c | 77 | button2 { |
95dafb2c JE |
78 | label = "joy_up"; |
79 | linux,code = <KEY_UP>; | |
80 | gpios = <&gpio LPC_GPIO(4,10) GPIO_ACTIVE_LOW>; | |
81 | }; | |
82 | ||
eeadc20c | 83 | button3 { |
95dafb2c JE |
84 | label = "joy_right"; |
85 | linux,code = <KEY_RIGHT>; | |
86 | gpios = <&gpio LPC_GPIO(4,12) GPIO_ACTIVE_LOW>; | |
87 | }; | |
88 | ||
eeadc20c | 89 | button4 { |
95dafb2c JE |
90 | label = "joy_down"; |
91 | linux,code = <KEY_DOWN>; | |
92 | gpios = <&gpio LPC_GPIO(4,13) GPIO_ACTIVE_LOW>; | |
93 | }; | |
94 | }; | |
41a0dec9 JE |
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 | }; | |
56bd3771 JE |
164 | }; |
165 | ||
c97a63c9 | 166 | &pinctrl { |
3c6abb97 JE |
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 | ||
7de98f2a JE |
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 | ||
95dafb2c JE |
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 | ||
7eef5587 JE |
342 | i2c0_pins: i2c0-pins { |
343 | i2c0_pins_cfg { | |
344 | pins = "i2c0_scl", "i2c0_sda"; | |
345 | function = "i2c0"; | |
346 | input-enable; | |
347 | }; | |
348 | }; | |
349 | ||
bfd0b498 JE |
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 | ||
f359348b JE |
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 | ||
09d03997 JE |
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 | ||
c97a63c9 JE |
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 | }; | |
930a43e2 JE |
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 | }; | |
fd0cb235 JE |
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 | }; | |
c97a63c9 JE |
469 | }; |
470 | ||
5f2d9d18 JE |
471 | &adc0 { |
472 | status = "okay"; | |
473 | vref-supply = <&vcc>; | |
474 | }; | |
475 | ||
7eef5587 JE |
476 | &i2c0 { |
477 | status = "okay"; | |
478 | pinctrl-names = "default"; | |
479 | pinctrl-0 = <&i2c0_pins>; | |
480 | clock-frequency = <400000>; | |
481 | ||
a086dfe5 JE |
482 | mma7455@1d { |
483 | compatible = "fsl,mma7455"; | |
484 | reg = <0x1d>; | |
485 | }; | |
486 | ||
7eef5587 JE |
487 | lm75@48 { |
488 | compatible = "nxp,lm75"; | |
489 | reg = <0x48>; | |
490 | }; | |
491 | ||
492 | eeprom@57 { | |
493 | compatible = "microchip,24c64"; | |
494 | reg = <0x57>; | |
495 | }; | |
496 | }; | |
497 | ||
31b8f1af JE |
498 | &dac { |
499 | status = "okay"; | |
500 | vref-supply = <&vcc>; | |
501 | }; | |
502 | ||
3c6abb97 JE |
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 | ||
7de98f2a JE |
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 | ||
bfd0b498 JE |
574 | &mmcsd { |
575 | status = "okay"; | |
576 | bus-width = <4>; | |
577 | vmmc-supply = <&vmmc>; | |
578 | pinctrl-names = "default"; | |
579 | pinctrl-0 = <&sdmmc_pins>; | |
580 | }; | |
581 | ||
f359348b JE |
582 | &spifi { |
583 | status = "okay"; | |
584 | pinctrl-names = "default"; | |
585 | pinctrl-0 = <&spifi_pins>; | |
586 | ||
eeadc20c | 587 | flash { |
f359348b JE |
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 | ||
09d03997 JE |
602 | &ssp0 { |
603 | status = "okay"; | |
604 | pinctrl-names = "default"; | |
605 | pinctrl-0 = <&ssp0_pins>; | |
606 | num-cs = <1>; | |
607 | }; | |
608 | ||
56bd3771 JE |
609 | &uart0 { |
610 | status = "okay"; | |
c97a63c9 JE |
611 | pinctrl-names = "default"; |
612 | pinctrl-0 = <&uart0_pins>; | |
56bd3771 | 613 | }; |
930a43e2 JE |
614 | |
615 | &uart3 { | |
616 | status = "okay"; | |
617 | pinctrl-names = "default"; | |
618 | pinctrl-0 = <&uart3_pins>; | |
619 | }; | |
fd0cb235 JE |
620 | |
621 | &usb0 { | |
622 | status = "okay"; | |
623 | pinctrl-names = "default"; | |
624 | pinctrl-0 = <&usb0_pins>; | |
625 | }; |