1295011Sandrew/*
2295011Sandrew * at91-sama5d4_xplained.dts - Device Tree file for SAMA5D4 Xplained board
3295011Sandrew *
4295011Sandrew *  Copyright (C) 2015 Atmel,
5295011Sandrew *                2015 Josh Wu <josh.wu@atmel.com>
6295011Sandrew *
7295011Sandrew * This file is dual-licensed: you can use it either under the terms
8295011Sandrew * of the GPL or the X11 license, at your option. Note that this dual
9295011Sandrew * licensing only applies to this file, and not this project as a
10295011Sandrew * whole.
11295011Sandrew *
12295011Sandrew *  a) This file is free software; you can redistribute it and/or
13295011Sandrew *     modify it under the terms of the GNU General Public License as
14295011Sandrew *     published by the Free Software Foundation; either version 2 of the
15295011Sandrew *     License, or (at your option) any later version.
16295011Sandrew *
17295011Sandrew *     This file is distributed in the hope that it will be useful,
18295011Sandrew *     but WITHOUT ANY WARRANTY; without even the implied warranty of
19295011Sandrew *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20295011Sandrew *     GNU General Public License for more details.
21295011Sandrew *
22295011Sandrew * Or, alternatively,
23295011Sandrew *
24295011Sandrew *  b) Permission is hereby granted, free of charge, to any person
25295011Sandrew *     obtaining a copy of this software and associated documentation
26295011Sandrew *     files (the "Software"), to deal in the Software without
27295011Sandrew *     restriction, including without limitation the rights to use,
28295011Sandrew *     copy, modify, merge, publish, distribute, sublicense, and/or
29295011Sandrew *     sell copies of the Software, and to permit persons to whom the
30295011Sandrew *     Software is furnished to do so, subject to the following
31295011Sandrew *     conditions:
32295011Sandrew *
33295011Sandrew *     The above copyright notice and this permission notice shall be
34295011Sandrew *     included in all copies or substantial portions of the Software.
35295011Sandrew *
36295011Sandrew *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
37295011Sandrew *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
38295011Sandrew *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
39295011Sandrew *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
40295011Sandrew *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
41295011Sandrew *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
42295011Sandrew *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
43295011Sandrew *     OTHER DEALINGS IN THE SOFTWARE.
44295011Sandrew */
45295011Sandrew/dts-v1/;
46295011Sandrew#include "sama5d4.dtsi"
47295011Sandrew
48295011Sandrew/ {
49295011Sandrew	model = "Atmel SAMA5D4 Xplained";
50295011Sandrew	compatible = "atmel,sama5d4-xplained", "atmel,sama5d4", "atmel,sama5";
51295011Sandrew
52295011Sandrew	chosen {
53295011Sandrew		stdout-path = "serial0:115200n8";
54295011Sandrew	};
55295011Sandrew
56295011Sandrew	memory {
57295011Sandrew		reg = <0x20000000 0x20000000>;
58295011Sandrew	};
59295011Sandrew
60295011Sandrew	clocks {
61295011Sandrew		slow_xtal {
62295011Sandrew			clock-frequency = <32768>;
63295011Sandrew		};
64295011Sandrew
65295011Sandrew		main_xtal {
66295011Sandrew			clock-frequency = <12000000>;
67295011Sandrew		};
68295011Sandrew	};
69295011Sandrew
70295011Sandrew	ahb {
71295011Sandrew		apb {
72295011Sandrew			spi0: spi@f8010000 {
73295011Sandrew				cs-gpios = <&pioC 3 0>, <0>, <0>, <0>;
74295011Sandrew				status = "okay";
75295011Sandrew				m25p80@0 {
76295011Sandrew					compatible = "atmel,at25df321a";
77295011Sandrew					spi-max-frequency = <50000000>;
78295011Sandrew					reg = <0>;
79295011Sandrew				};
80295011Sandrew			};
81295011Sandrew
82295011Sandrew			i2c0: i2c@f8014000 {
83295011Sandrew				status = "okay";
84295011Sandrew			};
85295011Sandrew
86295011Sandrew			macb0: ethernet@f8020000 {
87295011Sandrew				phy-mode = "rmii";
88295011Sandrew				status = "okay";
89295011Sandrew
90295011Sandrew				phy0: ethernet-phy@1 {
91295011Sandrew					interrupt-parent = <&pioE>;
92295011Sandrew					interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
93295011Sandrew					reg = <1>;
94295011Sandrew				};
95295011Sandrew			};
96295011Sandrew
97295011Sandrew			mmc1: mmc@fc000000 {
98295011Sandrew				pinctrl-names = "default";
99295011Sandrew				pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
100295011Sandrew				vmmc-supply = <&vcc_mmc1_reg>;
101295011Sandrew				vqmmc-supply = <&vcc_3v3_reg>;
102295011Sandrew				status = "okay";
103295011Sandrew				slot@0 {
104295011Sandrew					reg = <0>;
105295011Sandrew					bus-width = <4>;
106295011Sandrew					cd-gpios = <&pioE 3 0>;
107295011Sandrew				};
108295011Sandrew			};
109295011Sandrew
110295011Sandrew			usart3: serial@fc00c000 {
111295011Sandrew				status = "okay";
112295011Sandrew			};
113295011Sandrew
114295011Sandrew			usart4: serial@fc010000 {
115295011Sandrew				status = "okay";
116295011Sandrew			};
117295011Sandrew
118295011Sandrew			spi1: spi@fc018000 {
119295011Sandrew				cs-gpios = <&pioB 21 0>;
120295011Sandrew				status = "okay";
121295011Sandrew			};
122295011Sandrew
123295011Sandrew			adc0: adc@fc034000 {
124295011Sandrew				pinctrl-names = "default";
125295011Sandrew				pinctrl-0 = <
126295011Sandrew					/* external trigger conflicts with USBA_VBUS */
127295011Sandrew					&pinctrl_adc0_ad0
128295011Sandrew					&pinctrl_adc0_ad1
129295011Sandrew					&pinctrl_adc0_ad2
130295011Sandrew					&pinctrl_adc0_ad3
131295011Sandrew					&pinctrl_adc0_ad4
132295011Sandrew					>;
133295011Sandrew				atmel,adc-vref = <3300>;
134295011Sandrew				status = "okay";
135295011Sandrew			};
136295011Sandrew
137295011Sandrew			watchdog@fc068640 {
138295011Sandrew				status = "okay";
139295011Sandrew			};
140295011Sandrew
141295011Sandrew			pinctrl@fc06a000 {
142295011Sandrew				board {
143295011Sandrew					pinctrl_mmc1_cd: mmc1_cd {
144295011Sandrew						atmel,pins =
145295011Sandrew							<AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
146295011Sandrew					};
147295011Sandrew					pinctrl_usba_vbus: usba_vbus {
148295011Sandrew						atmel,pins =
149295011Sandrew							<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
150295011Sandrew					};
151295011Sandrew					pinctrl_key_gpio: key_gpio_0 {
152295011Sandrew						atmel,pins =
153295011Sandrew							<AT91_PIOE 8 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
154295011Sandrew					};
155295011Sandrew				};
156295011Sandrew			};
157295011Sandrew		};
158295011Sandrew
159295011Sandrew		usb0: gadget@00400000 {
160295011Sandrew			atmel,vbus-gpio = <&pioE 31 GPIO_ACTIVE_HIGH>;
161295011Sandrew			pinctrl-names = "default";
162295011Sandrew			pinctrl-0 = <&pinctrl_usba_vbus>;
163295011Sandrew			status = "okay";
164295011Sandrew		};
165295011Sandrew
166295011Sandrew		usb1: ohci@00500000 {
167295011Sandrew			num-ports = <3>;
168295011Sandrew			atmel,vbus-gpio = <0
169295011Sandrew					   &pioE 11 GPIO_ACTIVE_HIGH
170295011Sandrew					   &pioE 14 GPIO_ACTIVE_HIGH
171295011Sandrew					  >;
172295011Sandrew			status = "okay";
173295011Sandrew		};
174295011Sandrew
175295011Sandrew		usb2: ehci@00600000 {
176295011Sandrew			status = "okay";
177295011Sandrew		};
178295011Sandrew
179295011Sandrew		nand0: nand@80000000 {
180295011Sandrew			nand-bus-width = <8>;
181295011Sandrew			nand-ecc-mode = "hw";
182295011Sandrew			nand-on-flash-bbt;
183295011Sandrew			atmel,has-pmecc;
184295011Sandrew			status = "okay";
185295011Sandrew
186295011Sandrew			at91bootstrap@0 {
187295011Sandrew				label = "at91bootstrap";
188295011Sandrew				reg = <0x0 0x40000>;
189295011Sandrew			};
190295011Sandrew
191295011Sandrew			bootloader@40000 {
192295011Sandrew				label = "bootloader";
193295011Sandrew				reg = <0x40000 0x80000>;
194295011Sandrew			};
195295011Sandrew
196295011Sandrew			bootloaderenv@c0000 {
197295011Sandrew				label = "bootloader env";
198295011Sandrew				reg = <0xc0000 0xc0000>;
199295011Sandrew			};
200295011Sandrew
201295011Sandrew			dtb@180000 {
202295011Sandrew				label = "device tree";
203295011Sandrew				reg = <0x180000 0x80000>;
204295011Sandrew			};
205295011Sandrew
206295011Sandrew			kernel@200000 {
207295011Sandrew				label = "kernel";
208295011Sandrew				reg = <0x200000 0x600000>;
209295011Sandrew			};
210295011Sandrew
211295011Sandrew			rootfs@800000 {
212295011Sandrew				label = "rootfs";
213295011Sandrew				reg = <0x800000 0x0f800000>;
214295011Sandrew			};
215295011Sandrew		};
216295011Sandrew	};
217295011Sandrew
218295011Sandrew	gpio_keys {
219295011Sandrew		compatible = "gpio-keys";
220295011Sandrew
221295011Sandrew		pinctrl-names = "default";
222295011Sandrew		pinctrl-0 = <&pinctrl_key_gpio>;
223295011Sandrew
224295011Sandrew		pb_user1 {
225295011Sandrew			label = "pb_user1";
226295011Sandrew			gpios = <&pioE 8 GPIO_ACTIVE_HIGH>;
227295011Sandrew			linux,code = <0x100>;
228295011Sandrew			wakeup-source;
229295011Sandrew		};
230295011Sandrew	};
231295011Sandrew
232295011Sandrew	leds {
233295011Sandrew		compatible = "gpio-leds";
234295011Sandrew		status = "okay";
235295011Sandrew
236295011Sandrew		d8 {
237295011Sandrew			label = "d8";
238295011Sandrew			gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
239295011Sandrew			default-state = "on";
240295011Sandrew		};
241295011Sandrew
242295011Sandrew		d10 {
243295011Sandrew			label = "d10";
244295011Sandrew			gpios = <&pioE 15 GPIO_ACTIVE_LOW>;
245295011Sandrew			linux,default-trigger = "heartbeat";
246295011Sandrew		};
247295011Sandrew	};
248295011Sandrew
249295011Sandrew	vcc_3v3_reg: fixedregulator@0 {
250295011Sandrew		compatible = "regulator-fixed";
251295011Sandrew		regulator-name = "VCC 3V3";
252295011Sandrew		regulator-min-microvolt = <3300000>;
253295011Sandrew		regulator-max-microvolt = <3300000>;
254295011Sandrew		regulator-boot-on;
255295011Sandrew		regulator-always-on;
256295011Sandrew	};
257295011Sandrew
258295011Sandrew	vcc_mmc1_reg: fixedregulator@1 {
259295011Sandrew		compatible = "regulator-fixed";
260295011Sandrew		gpio = <&pioE 4 GPIO_ACTIVE_LOW>;
261295011Sandrew		regulator-name = "VDD MCI1";
262295011Sandrew		regulator-min-microvolt = <3300000>;
263295011Sandrew		regulator-max-microvolt = <3300000>;
264295011Sandrew		vin-supply = <&vcc_3v3_reg>;
265295011Sandrew	};
266295011Sandrew};
267