Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.9.4.
  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};