1/*
2 * at91-sama5d4ek.dts - Device Tree file for SAMA5D4 Evaluation Kit
3 *
4 *  Copyright (C) 2014 Atmel,
5 *                2014 Nicolas Ferre <nicolas.ferre@atmel.com>
6 *
7 * This file is dual-licensed: you can use it either under the terms
8 * of the GPL or the X11 license, at your option. Note that this dual
9 * licensing only applies to this file, and not this project as a
10 * whole.
11 *
12 *  a) This file is free software; you can redistribute it and/or
13 *     modify it under the terms of the GNU General Public License as
14 *     published by the Free Software Foundation; either version 2 of the
15 *     License, or (at your option) any later version.
16 *
17 *     This file is distributed in the hope that it will be useful,
18 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
19 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 *     GNU General Public License for more details.
21 *
22 * Or, alternatively,
23 *
24 *  b) Permission is hereby granted, free of charge, to any person
25 *     obtaining a copy of this software and associated documentation
26 *     files (the "Software"), to deal in the Software without
27 *     restriction, including without limitation the rights to use,
28 *     copy, modify, merge, publish, distribute, sublicense, and/or
29 *     sell copies of the Software, and to permit persons to whom the
30 *     Software is furnished to do so, subject to the following
31 *     conditions:
32 *
33 *     The above copyright notice and this permission notice shall be
34 *     included in all copies or substantial portions of the Software.
35 *
36 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43 *     OTHER DEALINGS IN THE SOFTWARE.
44 */
45/dts-v1/;
46#include "sama5d4.dtsi"
47
48/ {
49	model = "Atmel SAMA5D4-EK";
50	compatible = "atmel,sama5d4ek", "atmel,sama5d4", "atmel,sama5";
51
52	chosen {
53		stdout-path = "serial0:115200n8";
54	};
55
56	memory {
57		reg = <0x20000000 0x20000000>;
58	};
59
60	clocks {
61		slow_xtal {
62			clock-frequency = <32768>;
63		};
64
65		main_xtal {
66			clock-frequency = <12000000>;
67		};
68	};
69
70	ahb {
71		apb {
72			lcd_bus@f0000000 {
73				status = "okay";
74
75				lcd@f0000000 {
76					status = "okay";
77				};
78
79				lcdovl1@f0000140 {
80					status = "okay";
81				};
82
83				lcdovl2@f0000240 {
84					status = "okay";
85				};
86
87				lcdheo1@f0000340 {
88					status = "okay";
89				};
90			};
91
92			adc0: adc@fc034000 {
93				pinctrl-names = "default";
94				pinctrl-0 = <
95					/* external trigger conflicts with USBA_VBUS */
96					&pinctrl_adc0_ad0
97					&pinctrl_adc0_ad1
98					&pinctrl_adc0_ad2
99					&pinctrl_adc0_ad3
100					&pinctrl_adc0_ad4
101					>;
102				/* The vref depends on JP22 of EK. If connect 1-2 then use 3.3V. connect 2-3 use 3.0V */
103				atmel,adc-vref = <3300>;
104				/*atmel,adc-ts-wires = <4>;*/	/* Set up ADC touch screen */
105				status = "okay";		/* Enable ADC IIO support */
106			};
107
108			mmc0: mmc@f8000000 {
109				pinctrl-names = "default";
110				pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_cd>;
111				slot@0 {
112					reg = <0>;
113					bus-width = <4>;
114					cd-gpios = <&pioE 5 0>;
115				};
116			};
117
118			ssc0: ssc@f8008000 {
119				status = "okay";
120			};
121
122			spi0: spi@f8010000 {
123				cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
124				status = "okay";
125				m25p80@0 {
126					compatible = "atmel,at25df321a";
127					spi-max-frequency = <50000000>;
128					reg = <0>;
129				};
130			};
131
132			i2c0: i2c@f8014000 {
133				status = "okay";
134
135				wm8904: codec@1a {
136					compatible = "wlf,wm8904";
137					reg = <0x1a>;
138					clocks = <&pck2>;
139					clock-names = "mclk";
140				};
141
142				qt1070:keyboard@1b {
143					compatible = "qt1070";
144					reg = <0x1b>;
145					interrupt-parent = <&pioE>;
146					interrupts = <25 0x0>;
147					pinctrl-names = "default";
148					pinctrl-0 = <&pinctrl_qt1070_irq>;
149					wakeup-source;
150				};
151
152				atmel_mxt_ts@4c {
153					compatible = "atmel,atmel_mxt_ts";
154					reg = <0x4c>;
155					interrupt-parent = <&pioE>;
156					interrupts = <24 0x0>;
157					pinctrl-names = "default";
158					pinctrl-0 = <&pinctrl_mxt_ts>;
159				};
160			};
161
162			macb0: ethernet@f8020000 {
163				pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
164				phy-mode = "rmii";
165				status = "okay";
166
167				ethernet-phy@1 {
168					reg = <0x1>;
169					interrupt-parent = <&pioE>;
170					interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
171				};
172			};
173
174			mmc1: mmc@fc000000 {
175				pinctrl-names = "default";
176				pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
177				status = "okay";
178				slot@0 {
179					reg = <0>;
180					bus-width = <4>;
181					cd-gpios = <&pioE 6 0>;
182				};
183			};
184
185			usart2: serial@fc008000 {
186				status = "okay";
187			};
188
189			usart3: serial@fc00c000 {
190				status = "okay";
191			};
192
193			usart4: serial@fc010000 {
194				status = "okay";
195			};
196
197			watchdog@fc068640 {
198				status = "okay";
199			};
200
201			pinctrl@fc06a000 {
202				board {
203					pinctrl_macb0_phy_irq: macb0_phy_irq {
204						atmel,pins =
205							<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
206					};
207					pinctrl_mmc0_cd: mmc0_cd {
208						atmel,pins =
209							<AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
210					};
211					pinctrl_mmc1_cd: mmc1_cd {
212						atmel,pins =
213							<AT91_PIOE 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
214					};
215					pinctrl_pck2_as_audio_mck: pck2_as_audio_mck {
216						atmel,pins =
217							<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
218					};
219					pinctrl_usba_vbus: usba_vbus {
220						atmel,pins =
221							<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
222					};
223					pinctrl_key_gpio: key_gpio_0 {
224						atmel,pins =
225							<AT91_PIOE 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PE13 gpio */
226					};
227					pinctrl_qt1070_irq: qt1070_irq {
228						atmel,pins =
229							<AT91_PIOE 25 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
230					};
231					pinctrl_mxt_ts: mxt_irq {
232						atmel,pins =
233							<AT91_PIOE 24 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
234					};
235				};
236			};
237		};
238
239		usb0: gadget@00400000 {
240			atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
241			pinctrl-names = "default";
242			pinctrl-0 = <&pinctrl_usba_vbus>;
243			status = "okay";
244		};
245
246		usb1: ohci@00500000 {
247			num-ports = <3>;
248			atmel,vbus-gpio = <0 /* &pioE 10 GPIO_ACTIVE_LOW */
249					   &pioE 11 GPIO_ACTIVE_LOW
250					   &pioE 12 GPIO_ACTIVE_LOW
251					  >;
252			status = "okay";
253		};
254
255		usb2: ehci@00600000 {
256			status = "okay";
257		};
258
259		nand0: nand@80000000 {
260			nand-bus-width = <8>;
261			nand-ecc-mode = "hw";
262			nand-on-flash-bbt;
263			atmel,has-pmecc;
264			status = "okay";
265
266			at91bootstrap@0 {
267				label = "at91bootstrap";
268				reg = <0x0 0x40000>;
269			};
270
271			bootloader@40000 {
272				label = "bootloader";
273				reg = <0x40000 0x80000>;
274			};
275
276			bootloaderenv@c0000 {
277				label = "bootloader env";
278				reg = <0xc0000 0xc0000>;
279			};
280
281			dtb@180000 {
282				label = "device tree";
283				reg = <0x180000 0x80000>;
284			};
285
286			kernel@200000 {
287				label = "kernel";
288				reg = <0x200000 0x600000>;
289			};
290
291			rootfs@800000 {
292				label = "rootfs";
293				reg = <0x800000 0x0f800000>;
294			};
295		};
296	};
297
298	gpio_keys {
299		compatible = "gpio-keys";
300
301		pinctrl-names = "default";
302		pinctrl-0 = <&pinctrl_key_gpio>;
303
304		pb_user1 {
305			label = "pb_user1";
306			gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
307			linux,code = <0x100>;
308			wakeup-source;
309		};
310	};
311
312	leds {
313		compatible = "gpio-leds";
314		status = "okay";
315
316		d8 {
317			label = "d8";
318			/* PE28, conflicts with usart4 rts pin */
319			gpios = <&pioE 28 GPIO_ACTIVE_LOW>;
320		};
321
322		d9 {
323			label = "d9";
324			gpios = <&pioE 9 GPIO_ACTIVE_HIGH>;
325		};
326
327		d10 {
328			label = "d10";
329			gpios = <&pioE 8 GPIO_ACTIVE_LOW>;
330			linux,default-trigger = "heartbeat";
331		};
332	};
333
334	sound {
335		compatible = "atmel,asoc-wm8904";
336		pinctrl-names = "default";
337		pinctrl-0 = <&pinctrl_pck2_as_audio_mck>;
338
339		atmel,model = "wm8904 @ SAMA5D4EK";
340		atmel,audio-routing =
341			"Headphone Jack", "HPOUTL",
342			"Headphone Jack", "HPOUTR",
343			"IN1L", "Line In Jack",
344			"IN1R", "Line In Jack";
345
346		atmel,ssc-controller = <&ssc0>;
347		atmel,audio-codec = <&wm8904>;
348	};
349};
350