1/*
2 * Embedded Artists LPC3250 board
3 *
4 * Copyright 2012 Roland Stigge <stigge@antcom.de>
5 *
6 * The code contained herein is licensed under the GNU General Public
7 * License. You may obtain a copy of the GNU General Public License
8 * Version 2 or later at the following locations:
9 *
10 * http://www.opensource.org/licenses/gpl-license.html
11 * http://www.gnu.org/copyleft/gpl.html
12 */
13
14/dts-v1/;
15/include/ "lpc32xx.dtsi"
16
17/ {
18	model = "Embedded Artists LPC3250 board based on NXP LPC3250";
19	compatible = "ea,ea3250", "nxp,lpc3250";
20	#address-cells = <1>;
21	#size-cells = <1>;
22
23	memory {
24		device_type = "memory";
25		reg = <0 0x4000000>;
26	};
27
28	ahb {
29		mac: ethernet@31060000 {
30			phy-mode = "rmii";
31			use-iram;
32		};
33
34		/* Here, choose exactly one from: ohci, usbd */
35		ohci@31020000 {
36			transceiver = <&isp1301>;
37			status = "okay";
38		};
39
40/*
41		usbd@31020000 {
42			transceiver = <&isp1301>;
43			status = "okay";
44		};
45*/
46
47		/* 128MB Flash via SLC NAND controller */
48		slc: flash@20020000 {
49			status = "okay";
50			#address-cells = <1>;
51			#size-cells = <1>;
52
53			nxp,wdr-clks = <14>;
54			nxp,wwidth = <260000000>;
55			nxp,whold = <104000000>;
56			nxp,wsetup = <200000000>;
57			nxp,rdr-clks = <14>;
58			nxp,rwidth = <34666666>;
59			nxp,rhold = <104000000>;
60			nxp,rsetup = <200000000>;
61			nand-on-flash-bbt;
62			gpios = <&gpio 5 19 1>; /* GPO_P3 19, active low */
63
64			mtd0@00000000 {
65				label = "ea3250-boot";
66				reg = <0x00000000 0x00080000>;
67				read-only;
68			};
69
70			mtd1@00080000 {
71				label = "ea3250-uboot";
72				reg = <0x00080000 0x000c0000>;
73				read-only;
74			};
75
76			mtd2@00140000 {
77				label = "ea3250-kernel";
78				reg = <0x00140000 0x00400000>;
79			};
80
81			mtd3@00540000 {
82				label = "ea3250-rootfs";
83				reg = <0x00540000 0x07ac0000>;
84			};
85		};
86
87		apb {
88			uart5: serial@40090000 {
89				status = "okay";
90			};
91
92			uart3: serial@40080000 {
93				status = "okay";
94			};
95
96			uart6: serial@40098000 {
97				status = "okay";
98			};
99
100			i2c1: i2c@400A0000 {
101				clock-frequency = <100000>;
102
103				eeprom@50 {
104					compatible = "at,24c256";
105					reg = <0x50>;
106				};
107
108				eeprom@57 {
109					compatible = "at,24c64";
110					reg = <0x57>;
111				};
112
113				uda1380: uda1380@18 {
114					compatible = "nxp,uda1380";
115					reg = <0x18>;
116					power-gpio = <&gpio 0x59 0>;
117					reset-gpio = <&gpio 0x51 0>;
118					dac-clk = "wspll";
119				};
120
121				pca9532: pca9532@60 {
122					compatible = "nxp,pca9532";
123					gpio-controller;
124					#gpio-cells = <2>;
125					reg = <0x60>;
126				};
127			};
128
129			i2c2: i2c@400A8000 {
130				clock-frequency = <100000>;
131			};
132
133			i2cusb: i2c@31020300 {
134				clock-frequency = <100000>;
135
136				isp1301: usb-transceiver@2d {
137					compatible = "nxp,isp1301";
138					reg = <0x2d>;
139				};
140			};
141
142			sd@20098000 {
143				wp-gpios = <&pca9532 5 0>;
144				cd-gpios = <&pca9532 4 0>;
145				cd-inverted;
146				bus-width = <4>;
147				status = "okay";
148			};
149		};
150
151		fab {
152			uart1: serial@40014000 {
153				status = "okay";
154			};
155
156			/* 3-axis accelerometer X,Y,Z (or AD-IN instead of Z) */
157			adc@40048000 {
158				status = "okay";
159			};
160		};
161	};
162
163	gpio_keys {
164		compatible = "gpio-keys";
165		#address-cells = <1>;
166		#size-cells = <0>;
167		autorepeat;
168		button@21 {
169			label = "Interrupt Key";
170			linux,code = <103>;
171			gpios = <&gpio 4 1 0>; /* GPI_P3 1 */
172		};
173		key1 {
174			label = "KEY1";
175			linux,code = <1>;
176			gpios = <&pca9532 0 0>;
177		};
178		key2 {
179			label = "KEY2";
180			linux,code = <2>;
181			gpios = <&pca9532 1 0>;
182		};
183		key3 {
184			label = "KEY3";
185			linux,code = <3>;
186			gpios = <&pca9532 2 0>;
187		};
188		key4 {
189			label = "KEY4";
190			linux,code = <4>;
191			gpios = <&pca9532 3 0>;
192		};
193		joy0 {
194			label = "Joystick Key 0";
195			linux,code = <10>;
196			gpios = <&gpio 2 0 0>; /* P2.0 */
197		};
198		joy1 {
199			label = "Joystick Key 1";
200			linux,code = <11>;
201			gpios = <&gpio 2 1 0>; /* P2.1 */
202		};
203		joy2 {
204			label = "Joystick Key 2";
205			linux,code = <12>;
206			gpios = <&gpio 2 2 0>; /* P2.2 */
207		};
208		joy3 {
209			label = "Joystick Key 3";
210			linux,code = <13>;
211			gpios = <&gpio 2 3 0>; /* P2.3 */
212		};
213		joy4 {
214			label = "Joystick Key 4";
215			linux,code = <14>;
216			gpios = <&gpio 2 4 0>; /* P2.4 */
217		};
218	};
219
220	leds {
221		compatible = "gpio-leds";
222
223		/* LEDs on OEM Board */
224
225		led1 {
226			gpios = <&gpio 5 14 1>; /* GPO_P3 14, GPIO 93, active low */
227			linux,default-trigger = "timer";
228			default-state = "off";
229		};
230
231		led2 {
232			gpios = <&gpio 2 10 1>; /* P2.10, active low */
233			default-state = "off";
234		};
235
236		led3 {
237			gpios = <&gpio 2 11 1>; /* P2.11, active low */
238			default-state = "off";
239		};
240
241		led4 {
242			gpios = <&gpio 2 12 1>; /* P2.12, active low */
243			default-state = "off";
244		};
245
246		/* LEDs on Base Board */
247
248		lede1 {
249			gpios = <&pca9532 8 0>;
250			default-state = "off";
251		};
252		lede2 {
253			gpios = <&pca9532 9 0>;
254			default-state = "off";
255		};
256		lede3 {
257			gpios = <&pca9532 10 0>;
258			default-state = "off";
259		};
260		lede4 {
261			gpios = <&pca9532 11 0>;
262			default-state = "off";
263		};
264		lede5 {
265			gpios = <&pca9532 12 0>;
266			default-state = "off";
267		};
268		lede6 {
269			gpios = <&pca9532 13 0>;
270			default-state = "off";
271		};
272		lede7 {
273			gpios = <&pca9532 14 0>;
274			default-state = "off";
275		};
276		lede8 {
277			gpios = <&pca9532 15 0>;
278			default-state = "off";
279		};
280	};
281};
282