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		bootargs = "console=ttyS0,115200 ignore_loglevel earlyprintk";
54	};
55
56	memory {
57		reg = <0x20000000 0x20000000>;
58	};
59
60	clocks {
61		#address-cells = <1>;
62		#size-cells = <1>;
63		ranges;
64
65		main_clock: clock@0 {
66			compatible = "atmel,osc", "fixed-clock";
67			clock-frequency = <12000000>;
68		};
69
70		slow_xtal {
71			clock-frequency = <32768>;
72		};
73
74		main_xtal {
75			clock-frequency = <12000000>;
76		};
77	};
78
79	ahb {
80		apb {
81			lcd_bus@f0000000 {
82				status = "okay";
83
84				lcd@f0000000 {
85					status = "okay";
86				};
87
88				lcdovl1@f0000140 {
89					status = "okay";
90				};
91
92				lcdovl2@f0000240 {
93					status = "okay";
94				};
95
96				lcdheo1@f0000340 {
97					status = "okay";
98				};
99			};
100
101			adc0: adc@fc034000 {
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
143			macb0: ethernet@f8020000 {
144				pinctrl-0 = <&pinctrl_macb0_rmii &pinctrl_macb0_phy_irq>;
145				phy-mode = "rmii";
146				status = "okay";
147
148				ethernet-phy@1 {
149					reg = <0x1>;
150					interrupt-parent = <&pioE>;
151					interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
152				};
153			};
154
155			mmc1: mmc@fc000000 {
156				pinctrl-names = "default";
157				pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
158				status = "okay";
159				slot@0 {
160					reg = <0>;
161					bus-width = <4>;
162					cd-gpios = <&pioE 6 0>;
163				};
164			};
165
166			usart2: serial@fc008000 {
167				status = "okay";
168			};
169
170			usart3: serial@fc00c000 {
171				status = "okay";
172			};
173
174			usart4: serial@fc010000 {
175				status = "okay";
176			};
177
178			watchdog@fc068640 {
179				status = "okay";
180			};
181
182			pinctrl@fc06a000 {
183				board {
184					pinctrl_macb0_phy_irq: macb0_phy_irq {
185						atmel,pins =
186							<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
187					};
188					pinctrl_mmc0_cd: mmc0_cd {
189						atmel,pins =
190							<AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
191					};
192					pinctrl_mmc1_cd: mmc1_cd {
193						atmel,pins =
194							<AT91_PIOE 6 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
195					};
196					pinctrl_pck2_as_audio_mck: pck2_as_audio_mck {
197						atmel,pins =
198							<AT91_PIOB 10 AT91_PERIPH_B AT91_PINCTRL_NONE>;
199					};
200					pinctrl_usba_vbus: usba_vbus {
201						atmel,pins =
202							<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
203					};
204					pinctrl_key_gpio: key_gpio_0 {
205						atmel,pins =
206							<AT91_PIOE 13 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>; /* PE13 gpio */
207					};
208				};
209			};
210		};
211
212		usb0: gadget@00400000 {
213			atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
214			pinctrl-names = "default";
215			pinctrl-0 = <&pinctrl_usba_vbus>;
216			status = "okay";
217		};
218
219		usb1: ohci@00500000 {
220			num-ports = <3>;
221			atmel,vbus-gpio = <0 /* &pioE 10 GPIO_ACTIVE_LOW */
222					   &pioE 11 GPIO_ACTIVE_LOW
223					   &pioE 12 GPIO_ACTIVE_LOW
224					  >;
225			status = "okay";
226		};
227
228		usb2: ehci@00600000 {
229			status = "okay";
230		};
231
232		nand0: nand@80000000 {
233			nand-bus-width = <8>;
234			nand-ecc-mode = "hw";
235			nand-on-flash-bbt;
236			atmel,has-pmecc;
237			status = "okay";
238
239			at91bootstrap@0 {
240				label = "at91bootstrap";
241				reg = <0x0 0x40000>;
242			};
243
244			bootloader@40000 {
245				label = "bootloader";
246				reg = <0x40000 0x80000>;
247			};
248
249			bootloaderenv@c0000 {
250				label = "bootloader env";
251				reg = <0xc0000 0xc0000>;
252			};
253
254			dtb@180000 {
255				label = "device tree";
256				reg = <0x180000 0x80000>;
257			};
258
259			kernel@200000 {
260				label = "kernel";
261				reg = <0x200000 0x600000>;
262			};
263
264			rootfs@800000 {
265				label = "rootfs";
266				reg = <0x800000 0x0f800000>;
267			};
268		};
269	};
270
271	gpio_keys {
272		compatible = "gpio-keys";
273
274		pinctrl-names = "default";
275		pinctrl-0 = <&pinctrl_key_gpio>;
276
277		pb_user1 {
278			label = "pb_user1";
279			gpios = <&pioE 13 GPIO_ACTIVE_HIGH>;
280			linux,code = <0x100>;
281			gpio-key,wakeup;
282		};
283	};
284
285	leds {
286		compatible = "gpio-leds";
287		status = "okay";
288
289		d8 {
290			label = "d8";
291			/* PE28, conflicts with usart4 rts pin */
292			gpios = <&pioE 28 GPIO_ACTIVE_LOW>;
293		};
294
295		d9 {
296			label = "d9";
297			gpios = <&pioE 9 GPIO_ACTIVE_HIGH>;
298		};
299
300		d10 {
301			label = "d10";
302			gpios = <&pioE 8 GPIO_ACTIVE_LOW>;
303			linux,default-trigger = "heartbeat";
304		};
305	};
306
307	sound {
308		compatible = "atmel,asoc-wm8904";
309		pinctrl-names = "default";
310		pinctrl-0 = <&pinctrl_pck2_as_audio_mck>;
311
312		atmel,model = "wm8904 @ SAMA5D4EK";
313		atmel,audio-routing =
314			"Headphone Jack", "HPOUTL",
315			"Headphone Jack", "HPOUTR",
316			"IN1L", "Line In Jack",
317			"IN1R", "Line In Jack";
318
319		atmel,ssc-controller = <&ssc0>;
320		atmel,audio-codec = <&wm8904>;
321	};
322};
323