1295011Sandrew/*
2295011Sandrew * Hitex LPC4350 Evaluation Board
3295011Sandrew *
4295011Sandrew * Copyright 2015 Ariel D'Alessandro <ariel.dalessandro@gmail.com>
5295011Sandrew *
6295011Sandrew * This code is released using a dual license strategy: BSD/GPL
7295011Sandrew * You can choose the licence that better fits your requirements.
8295011Sandrew *
9295011Sandrew * Released under the terms of 3-clause BSD License
10295011Sandrew * Released under the terms of GNU General Public License Version 2.0
11295011Sandrew *
12295011Sandrew */
13295011Sandrew/dts-v1/;
14295011Sandrew
15295011Sandrew#include "lpc18xx.dtsi"
16295011Sandrew#include "lpc4350.dtsi"
17295011Sandrew
18295011Sandrew#include "dt-bindings/input/input.h"
19295011Sandrew#include "dt-bindings/gpio/gpio.h"
20295011Sandrew
21295011Sandrew/ {
22295011Sandrew	model = "Hitex LPC4350 Evaluation Board";
23295011Sandrew	compatible = "hitex,lpc4350-eval-board", "nxp,lpc4350";
24295011Sandrew
25295011Sandrew	aliases {
26295011Sandrew		serial0 = &uart0;
27295011Sandrew		serial1 = &uart1;
28295011Sandrew		serial2 = &uart2;
29295011Sandrew		serial3 = &uart3;
30295011Sandrew	};
31295011Sandrew
32295011Sandrew	chosen {
33295011Sandrew		stdout-path = &uart0;
34295011Sandrew	};
35295011Sandrew
36295011Sandrew	memory {
37295011Sandrew		device_type = "memory";
38295011Sandrew		reg = <0x28000000 0x800000>; /* 8 MB */
39295011Sandrew	};
40295011Sandrew
41295011Sandrew	pca_buttons {
42295011Sandrew		compatible = "gpio-keys-polled";
43295011Sandrew		#address-cells = <1>;
44295011Sandrew		#size-cells = <0>;
45295011Sandrew		poll-interval = <100>;
46295011Sandrew		autorepeat;
47295011Sandrew
48295011Sandrew		button@0 {
49295011Sandrew			label = "joy:right";
50295011Sandrew			linux,code = <KEY_RIGHT>;
51295011Sandrew			gpios = <&pca_gpio 8 GPIO_ACTIVE_LOW>;
52295011Sandrew		};
53295011Sandrew
54295011Sandrew		button@1 {
55295011Sandrew			label = "joy:up";
56295011Sandrew			linux,code = <KEY_UP>;
57295011Sandrew			gpios = <&pca_gpio 9 GPIO_ACTIVE_LOW>;
58295011Sandrew		};
59295011Sandrew
60295011Sandrew
61295011Sandrew		button@2 {
62295011Sandrew			label = "joy:enter";
63295011Sandrew			linux,code = <KEY_ENTER>;
64295011Sandrew			gpios = <&pca_gpio 10 GPIO_ACTIVE_LOW>;
65295011Sandrew		};
66295011Sandrew
67295011Sandrew		button@3 {
68295011Sandrew			label = "joy:left";
69295011Sandrew			linux,code = <KEY_LEFT>;
70295011Sandrew			gpios = <&pca_gpio 11 GPIO_ACTIVE_LOW>;
71295011Sandrew		};
72295011Sandrew
73295011Sandrew		button@4 {
74295011Sandrew			label = "joy:down";
75295011Sandrew			linux,code = <KEY_DOWN>;
76295011Sandrew			gpios = <&pca_gpio 12 GPIO_ACTIVE_LOW>;
77295011Sandrew		};
78295011Sandrew
79295011Sandrew		button@5 {
80295011Sandrew			label = "user:sw3";
81295011Sandrew			linux,code = <KEY_F1>;
82295011Sandrew			gpios = <&pca_gpio 13 GPIO_ACTIVE_LOW>;
83295011Sandrew		};
84295011Sandrew
85295011Sandrew		button@6 {
86295011Sandrew			label = "user:sw4";
87295011Sandrew			linux,code = <KEY_F2>;
88295011Sandrew			gpios = <&pca_gpio 14 GPIO_ACTIVE_LOW>;
89295011Sandrew		};
90295011Sandrew
91295011Sandrew		button@7 {
92295011Sandrew			label = "user:sw5";
93295011Sandrew			linux,code = <KEY_F3>;
94295011Sandrew			gpios = <&pca_gpio 15 GPIO_ACTIVE_LOW>;
95295011Sandrew		};
96295011Sandrew	};
97295011Sandrew
98295011Sandrew	pca_leds {
99295011Sandrew		compatible = "gpio-leds";
100295011Sandrew
101295011Sandrew		led0 {
102295011Sandrew			label = "ext:led0";
103295011Sandrew			gpios = <&pca_gpio 0 GPIO_ACTIVE_LOW>;
104295011Sandrew			linux,default-trigger = "heartbeat";
105295011Sandrew		};
106295011Sandrew
107295011Sandrew		led1 {
108295011Sandrew			label = "ext:led1";
109295011Sandrew			gpios = <&pca_gpio 1 GPIO_ACTIVE_LOW>;
110295011Sandrew		};
111295011Sandrew
112295011Sandrew		led2 {
113295011Sandrew			label = "ext:led2";
114295011Sandrew			gpios = <&pca_gpio 2 GPIO_ACTIVE_LOW>;
115295011Sandrew		};
116295011Sandrew
117295011Sandrew		led3 {
118295011Sandrew			label = "ext:led3";
119295011Sandrew			gpios = <&pca_gpio 3 GPIO_ACTIVE_LOW>;
120295011Sandrew		};
121295011Sandrew	};
122295011Sandrew};
123295011Sandrew
124295011Sandrew&pinctrl {
125295011Sandrew	emc_pins: emc-pins {
126295011Sandrew		emc_addr0_23_cfg {
127295011Sandrew			pins =	"p2_9",  "p2_10", "p2_11", "p2_12",
128295011Sandrew				"p2_13", "p1_0",  "p1_1",  "p1_2",
129295011Sandrew				"p2_8",  "p2_7",  "p2_6",  "p2_2",
130295011Sandrew				"p2_1",  "p2_0",  "p6_8",  "p6_7",
131295011Sandrew				"pd_16", "pd_15", "pe_0",  "pe_1",
132295011Sandrew				"pe_2",  "pe_3",  "pe_4",  "pa_4";
133295011Sandrew			function = "emc";
134295011Sandrew			slew-rate = <1>;
135295011Sandrew			bias-disable;
136295011Sandrew			input-enable;
137295011Sandrew			input-schmitt-disable;
138295011Sandrew		};
139295011Sandrew
140295011Sandrew		emc_data0_15_cfg {
141295011Sandrew			pins =	"p1_7",  "p1_8",  "p1_9",  "p1_10",
142295011Sandrew				"p1_11", "p1_12", "p1_13", "p1_14",
143295011Sandrew				"p5_4",  "p5_5",  "p5_6",  "p5_7",
144295011Sandrew				"p5_0",  "p5_1",  "p5_2",  "p5_3";
145295011Sandrew			function = "emc";
146295011Sandrew			slew-rate = <1>;
147295011Sandrew			bias-disable;
148295011Sandrew			input-enable;
149295011Sandrew			input-schmitt-disable;
150295011Sandrew		};
151295011Sandrew
152295011Sandrew		emc_we_oe_cfg {
153295011Sandrew			pins = "p1_6", "p1_3";
154295011Sandrew			function = "emc";
155295011Sandrew			slew-rate = <1>;
156295011Sandrew			bias-disable;
157295011Sandrew			input-enable;
158295011Sandrew			input-schmitt-disable;
159295011Sandrew		};
160295011Sandrew
161295011Sandrew		emc_bls0_3_cfg {
162295011Sandrew			pins = "p1_4", "p6_6", "pd_13", "pd_10";
163295011Sandrew			function = "emc";
164295011Sandrew			slew-rate = <1>;
165295011Sandrew			bias-disable;
166295011Sandrew			input-enable;
167295011Sandrew			input-schmitt-disable;
168295011Sandrew		};
169295011Sandrew
170295011Sandrew		emc_cs0_cs2_cfg {
171295011Sandrew			pins = "p1_5", "pd_12";
172295011Sandrew			function = "emc";
173295011Sandrew			slew-rate = <1>;
174295011Sandrew			bias-disable;
175295011Sandrew			input-enable;
176295011Sandrew			input-schmitt-disable;
177295011Sandrew		};
178295011Sandrew
179295011Sandrew		emc_sdram_dqm0_3_cfg {
180295011Sandrew			pins = "p6_12", "p6_10", "pd_0", "pe_13";
181295011Sandrew			function = "emc";
182295011Sandrew			slew-rate = <1>;
183295011Sandrew			bias-disable;
184295011Sandrew			input-enable;
185295011Sandrew			input-schmitt-disable;
186295011Sandrew		};
187295011Sandrew
188295011Sandrew		emc_sdram_ras_cas_cfg {
189295011Sandrew			pins = "p6_5", "p6_4";
190295011Sandrew			function = "emc";
191295011Sandrew			slew-rate = <1>;
192295011Sandrew			bias-disable;
193295011Sandrew			input-enable;
194295011Sandrew			input-schmitt-disable;
195295011Sandrew		};
196295011Sandrew
197295011Sandrew		emc_sdram_dycs0_cfg {
198295011Sandrew			pins = "p6_9";
199295011Sandrew			function = "emc";
200295011Sandrew			slew-rate = <1>;
201295011Sandrew			bias-disable;
202295011Sandrew			input-enable;
203295011Sandrew			input-schmitt-disable;
204295011Sandrew		};
205295011Sandrew
206295011Sandrew		emc_sdram_cke_cfg {
207295011Sandrew			pins = "p6_11";
208295011Sandrew			function = "emc";
209295011Sandrew			slew-rate = <1>;
210295011Sandrew			bias-disable;
211295011Sandrew			input-enable;
212295011Sandrew			input-schmitt-disable;
213295011Sandrew		};
214295011Sandrew
215295011Sandrew		emc_sdram_clock_cfg {
216295011Sandrew			pins = "clk0", "clk1", "clk2", "clk3";
217295011Sandrew			function = "emc";
218295011Sandrew			slew-rate = <1>;
219295011Sandrew			bias-disable;
220295011Sandrew			input-enable;
221295011Sandrew			input-schmitt-disable;
222295011Sandrew		};
223295011Sandrew	};
224295011Sandrew
225295011Sandrew	enet_mii_pins: enet-mii-pins {
226295011Sandrew		enet_mii_rxd0_3_cfg {
227295011Sandrew			pins = "p1_15", "p0_0", "p9_3", "p9_2";
228295011Sandrew			function = "enet";
229295011Sandrew			bias-disable;
230295011Sandrew			input-enable;
231295011Sandrew		};
232295011Sandrew
233295011Sandrew		enet_mii_txd0_3_cfg {
234295011Sandrew			pins = "p1_18", "p1_20", "p9_4", "p9_5";
235295011Sandrew			function = "enet";
236295011Sandrew			bias-disable;
237295011Sandrew		};
238295011Sandrew
239295011Sandrew		enet_mii_crs_col_cfg {
240295011Sandrew			pins = "p9_0", "p9_6";
241295011Sandrew			function = "enet";
242295011Sandrew			bias-disable;
243295011Sandrew			input-enable;
244295011Sandrew		};
245295011Sandrew
246295011Sandrew		enet_mii_rx_clk_dv_er_cfg {
247295011Sandrew			pins = "pc_0", "p1_16", "p9_1";
248295011Sandrew			function = "enet";
249295011Sandrew			bias-disable;
250295011Sandrew			input-enable;
251295011Sandrew		};
252295011Sandrew
253295011Sandrew		enet_mii_tx_clk_en_cfg {
254295011Sandrew			pins = "p1_19", "p0_1";
255295011Sandrew			function = "enet";
256295011Sandrew			bias-disable;
257295011Sandrew			input-enable;
258295011Sandrew		};
259295011Sandrew
260295011Sandrew		enet_mdio_cfg {
261295011Sandrew			pins = "p1_17";
262295011Sandrew			function = "enet";
263295011Sandrew			bias-disable;
264295011Sandrew			input-enable;
265295011Sandrew		};
266295011Sandrew
267295011Sandrew		enet_mdc_cfg {
268295011Sandrew			pins = "pc_1";
269295011Sandrew			function = "enet";
270295011Sandrew			bias-disable;
271295011Sandrew		};
272295011Sandrew	};
273295011Sandrew
274295011Sandrew	i2c0_pins: i2c0-pins {
275295011Sandrew		i2c0_pins_cfg {
276295011Sandrew			pins = "i2c0_scl", "i2c0_sda";
277295011Sandrew			function = "i2c0";
278295011Sandrew			input-enable;
279295011Sandrew		};
280295011Sandrew	};
281295011Sandrew
282295011Sandrew	spifi_pins: spifi-pins {
283295011Sandrew		spifi_clk_cfg {
284295011Sandrew			pins = "p3_3";
285295011Sandrew			function = "spifi";
286295011Sandrew			slew-rate = <1>;
287295011Sandrew			bias-disable;
288295011Sandrew			input-enable;
289295011Sandrew			input-schmitt-disable;
290295011Sandrew		};
291295011Sandrew
292295011Sandrew		spifi_mosi_miso_sio2_3_cfg {
293295011Sandrew			pins = "p3_7", "p3_6", "p3_5", "p3_4";
294295011Sandrew			function = "spifi";
295295011Sandrew			slew-rate = <1>;
296295011Sandrew			bias-disable;
297295011Sandrew			input-enable;
298295011Sandrew			input-schmitt-disable;
299295011Sandrew		};
300295011Sandrew
301295011Sandrew		spifi_cs_cfg {
302295011Sandrew			pins = "p3_8";
303295011Sandrew			function = "spifi";
304295011Sandrew			slew-rate = <1>;
305295011Sandrew			bias-disable;
306295011Sandrew			input-enable;
307295011Sandrew			input-schmitt-disable;
308295011Sandrew		};
309295011Sandrew	};
310295011Sandrew
311295011Sandrew	uart0_pins: uart0-pins {
312295011Sandrew		uart0_rx_cfg {
313295011Sandrew			pins = "pf_11";
314295011Sandrew			function = "uart0";
315295011Sandrew			input-schmitt-disable;
316295011Sandrew			bias-disable;
317295011Sandrew			input-enable;
318295011Sandrew		};
319295011Sandrew
320295011Sandrew		uart0_tx_cfg {
321295011Sandrew			pins = "pf_10";
322295011Sandrew			function = "uart0";
323295011Sandrew			bias-pull-down;
324295011Sandrew		};
325295011Sandrew	};
326295011Sandrew};
327295011Sandrew
328295011Sandrew&emc {
329295011Sandrew	status = "okay";
330295011Sandrew	pinctrl-names = "default";
331295011Sandrew	pinctrl-0 = <&emc_pins>;
332295011Sandrew
333295011Sandrew	cs0 {
334295011Sandrew		#address-cells = <2>;
335295011Sandrew		#size-cells = <1>;
336295011Sandrew		ranges;
337295011Sandrew
338295011Sandrew		mpmc,cs = <0>;
339295011Sandrew		mpmc,memory-width = <16>;
340295011Sandrew		mpmc,byte-lane-low;
341295011Sandrew		mpmc,write-enable-delay = <0>;
342295011Sandrew		mpmc,output-enable-delay = <0>;
343295011Sandrew		mpmc,read-access-delay = <70>;
344295011Sandrew		mpmc,page-mode-read-delay = <70>;
345295011Sandrew
346295011Sandrew		flash@0,0 {
347295011Sandrew			compatible = "sst,sst39vf320", "cfi-flash";
348295011Sandrew			reg = <0 0 0x400000>;
349295011Sandrew			bank-width = <2>;
350295011Sandrew			#address-cells = <1>;
351295011Sandrew			#size-cells = <1>;
352295011Sandrew
353295011Sandrew			partition@0 {
354295011Sandrew				label = "bootloader";
355295011Sandrew				reg = <0x000000 0x040000>; /* 256 KiB */
356295011Sandrew			};
357295011Sandrew
358295011Sandrew			partition@1 {
359295011Sandrew				label = "kernel";
360295011Sandrew				reg = <0x040000 0x2C0000>; /* 2.75 MiB */
361295011Sandrew			};
362295011Sandrew
363295011Sandrew			partition@2 {
364295011Sandrew				label = "rootfs";
365295011Sandrew				reg = <0x300000 0x100000>; /* 1 MiB */
366295011Sandrew			};
367295011Sandrew		};
368295011Sandrew	};
369295011Sandrew
370295011Sandrew	cs2 {
371295011Sandrew		#address-cells = <2>;
372295011Sandrew		#size-cells = <1>;
373295011Sandrew		ranges;
374295011Sandrew
375295011Sandrew		mpmc,cs = <2>;
376295011Sandrew		mpmc,memory-width = <16>;
377295011Sandrew		mpmc,byte-lane-low;
378295011Sandrew		mpmc,write-enable-delay = <0>;
379295011Sandrew		mpmc,output-enable-delay = <30>;
380295011Sandrew		mpmc,read-access-delay = <90>;
381295011Sandrew		mpmc,page-mode-read-delay = <55>;
382295011Sandrew		mpmc,write-access-delay = <55>;
383295011Sandrew		mpmc,turn-round-delay = <55>;
384295011Sandrew
385295011Sandrew		ext_sram: sram@2,0 {
386295011Sandrew			compatible = "mmio-sram";
387295011Sandrew			reg = <2 0 0x80000>; /* 512 KiB SRAM on IS62WV25616 */
388295011Sandrew		};
389295011Sandrew	};
390295011Sandrew};
391295011Sandrew
392295011Sandrew&enet_tx_clk {
393295011Sandrew	clock-frequency = <25000000>;
394295011Sandrew};
395295011Sandrew
396295011Sandrew&i2c0 {
397295011Sandrew	status = "okay";
398295011Sandrew	pinctrl-names = "default";
399295011Sandrew	pinctrl-0 = <&i2c0_pins>;
400295011Sandrew	clock-frequency = <400000>;
401295011Sandrew
402295011Sandrew	/* NXP SE97BTP with temperature sensor + eeprom */
403295011Sandrew	sensor@18 {
404295011Sandrew		compatible = "nxp,jc42";
405295011Sandrew		reg = <0x18>;
406295011Sandrew	};
407295011Sandrew
408295011Sandrew	eeprom@50 {
409295011Sandrew		compatible = "nxp,24c02";
410295011Sandrew		reg = <0x50>;
411295011Sandrew	};
412295011Sandrew
413295011Sandrew	pca_gpio: gpio@24 {
414295011Sandrew		compatible = "nxp,pca9673";
415295011Sandrew		reg = <0x24>;
416295011Sandrew		gpio-controller;
417295011Sandrew		#gpio-cells = <2>;
418295011Sandrew	};
419295011Sandrew};
420295011Sandrew
421295011Sandrew&mac {
422295011Sandrew	status = "okay";
423295011Sandrew	phy-mode = "mii";
424295011Sandrew	pinctrl-names = "default";
425295011Sandrew	pinctrl-0 = <&enet_mii_pins>;
426295011Sandrew};
427295011Sandrew
428295011Sandrew&spifi {
429295011Sandrew	status = "okay";
430295011Sandrew	pinctrl-names = "default";
431295011Sandrew	pinctrl-0 = <&spifi_pins>;
432295011Sandrew
433295011Sandrew	flash@0 {
434295011Sandrew		compatible = "jedec,spi-nor";
435295011Sandrew		spi-rx-bus-width = <4>;
436295011Sandrew		#address-cells = <1>;
437295011Sandrew		#size-cells = <1>;
438295011Sandrew
439295011Sandrew		partition@0 {
440295011Sandrew			label = "bootloader";
441295011Sandrew			reg = <0x000000 0x040000>; /* 256 KiB */
442295011Sandrew		};
443295011Sandrew
444295011Sandrew		partition@1 {
445295011Sandrew			label = "kernel";
446295011Sandrew			reg = <0x040000 0x2c0000>; /* 2.75 MiB */
447295011Sandrew		};
448295011Sandrew
449295011Sandrew		partition@2 {
450295011Sandrew			label = "rootfs";
451295011Sandrew			reg = <0x300000 0x500000>; /* 5 MiB */
452295011Sandrew		};
453295011Sandrew	};
454295011Sandrew};
455295011Sandrew
456295011Sandrew&uart0 {
457295011Sandrew	status = "okay";
458295011Sandrew	pinctrl-names = "default";
459295011Sandrew	pinctrl-0 = <&uart0_pins>;
460295011Sandrew};
461