1262569Simp/*
2262569Simp * at91-sama5d3_xplained.dts - Device Tree file for the SAMA5D3 Xplained board
3262569Simp *
4262569Simp *  Copyright (C) 2014 Atmel,
5262569Simp *		  2014 Nicolas Ferre <nicolas.ferre@atmel.com>
6262569Simp *
7262569Simp * Licensed under GPLv2 or later.
8262569Simp */
9262569Simp/dts-v1/;
10262569Simp#include "sama5d36.dtsi"
11262569Simp
12262569Simp/ {
13262569Simp	model = "SAMA5D3 Xplained";
14262569Simp	compatible = "atmel,sama5d3-xplained", "atmel,sama5d3", "atmel,sama5";
15262569Simp
16262569Simp	chosen {
17262569Simp		bootargs = "console=ttyS0,115200";
18262569Simp	};
19262569Simp
20262569Simp	memory {
21262569Simp		reg = <0x20000000 0x10000000>;
22262569Simp	};
23262569Simp
24270864Simp	clocks {
25270864Simp		slow_xtal {
26270864Simp			clock-frequency = <32768>;
27270864Simp		};
28270864Simp
29270864Simp		main_xtal {
30270864Simp			clock-frequency = <12000000>;
31270864Simp		};
32270864Simp	};
33270864Simp
34262569Simp	ahb {
35262569Simp		apb {
36262569Simp			mmc0: mmc@f0000000 {
37262569Simp				pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
38262569Simp				status = "okay";
39262569Simp				slot@0 {
40262569Simp					reg = <0>;
41262569Simp					bus-width = <8>;
42262569Simp					cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
43262569Simp				};
44262569Simp			};
45262569Simp
46262569Simp			spi0: spi@f0004000 {
47270864Simp				cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
48262569Simp				status = "okay";
49262569Simp			};
50262569Simp
51262569Simp			can0: can@f000c000 {
52262569Simp				status = "okay";
53262569Simp			};
54262569Simp
55262569Simp			i2c0: i2c@f0014000 {
56270864Simp				pinctrl-0 = <&pinctrl_i2c0_pu>;
57262569Simp				status = "okay";
58262569Simp			};
59262569Simp
60262569Simp			i2c1: i2c@f0018000 {
61262569Simp				status = "okay";
62270864Simp
63270864Simp				pmic: act8865@5b {
64270864Simp					compatible = "active-semi,act8865";
65270864Simp					reg = <0x5b>;
66270864Simp					status = "okay";
67270864Simp
68270864Simp					regulators {
69270864Simp						vcc_1v8_reg: DCDC_REG1 {
70270864Simp							regulator-name = "VCC_1V8";
71270864Simp							regulator-min-microvolt = <1800000>;
72270864Simp							regulator-max-microvolt = <1800000>;
73270864Simp							regulator-always-on;
74270864Simp						};
75270864Simp
76270864Simp						vcc_1v2_reg: DCDC_REG2 {
77270864Simp							regulator-name = "VCC_1V2";
78270864Simp							regulator-min-microvolt = <1200000>;
79270864Simp							regulator-max-microvolt = <1200000>;
80270864Simp							regulator-always-on;
81270864Simp						};
82270864Simp
83270864Simp						vcc_3v3_reg: DCDC_REG3 {
84270864Simp							regulator-name = "VCC_3V3";
85270864Simp							regulator-min-microvolt = <3300000>;
86270864Simp							regulator-max-microvolt = <3300000>;
87270864Simp							regulator-always-on;
88270864Simp						};
89270864Simp
90270864Simp						vddfuse_reg: LDO_REG1 {
91270864Simp							regulator-name = "FUSE_2V5";
92270864Simp							regulator-min-microvolt = <2500000>;
93270864Simp							regulator-max-microvolt = <2500000>;
94270864Simp						};
95270864Simp
96270864Simp						vddana_reg: LDO_REG2 {
97270864Simp							regulator-name = "VDDANA";
98270864Simp							regulator-min-microvolt = <3300000>;
99270864Simp							regulator-max-microvolt = <3300000>;
100270864Simp							regulator-always-on;
101270864Simp						};
102270864Simp					};
103270864Simp				};
104262569Simp			};
105262569Simp
106262569Simp			macb0: ethernet@f0028000 {
107262569Simp				phy-mode = "rgmii";
108262569Simp				status = "okay";
109262569Simp			};
110262569Simp
111270864Simp			pwm0: pwm@f002c000 {
112270864Simp				pinctrl-names = "default";
113270864Simp				pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>;
114270864Simp				status = "okay";
115270864Simp			};
116270864Simp
117262569Simp			usart0: serial@f001c000 {
118262569Simp				status = "okay";
119262569Simp			};
120262569Simp
121262569Simp			usart1: serial@f0020000 {
122262569Simp				pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
123262569Simp				status = "okay";
124262569Simp			};
125262569Simp
126262569Simp			uart0: serial@f0024000 {
127262569Simp				status = "okay";
128262569Simp			};
129262569Simp
130262569Simp			mmc1: mmc@f8000000 {
131262569Simp				pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
132262569Simp				status = "okay";
133262569Simp				slot@0 {
134262569Simp					reg = <0>;
135262569Simp					bus-width = <4>;
136262569Simp					cd-gpios = <&pioE 1 GPIO_ACTIVE_HIGH>;
137262569Simp				};
138262569Simp			};
139262569Simp
140262569Simp			spi1: spi@f8008000 {
141270864Simp				cs-gpios = <&pioC 25 0>;
142262569Simp				status = "okay";
143262569Simp			};
144262569Simp
145262569Simp			adc0: adc@f8018000 {
146262569Simp				pinctrl-0 = <
147262569Simp					&pinctrl_adc0_adtrg
148262569Simp					&pinctrl_adc0_ad0
149262569Simp					&pinctrl_adc0_ad1
150262569Simp					&pinctrl_adc0_ad2
151262569Simp					&pinctrl_adc0_ad3
152262569Simp					&pinctrl_adc0_ad4
153262569Simp					&pinctrl_adc0_ad5
154262569Simp					&pinctrl_adc0_ad6
155262569Simp					&pinctrl_adc0_ad7
156262569Simp					&pinctrl_adc0_ad8
157262569Simp					&pinctrl_adc0_ad9
158262569Simp					>;
159262569Simp				status = "okay";
160262569Simp			};
161262569Simp
162262569Simp			i2c2: i2c@f801c000 {
163262569Simp				dmas = <0>, <0>;	/* Do not use DMA for i2c2 */
164270864Simp				pinctrl-0 = <&pinctrl_i2c2_pu>;
165262569Simp				status = "okay";
166262569Simp			};
167262569Simp
168262569Simp			macb1: ethernet@f802c000 {
169262569Simp				phy-mode = "rmii";
170262569Simp				status = "okay";
171262569Simp			};
172262569Simp
173262569Simp			dbgu: serial@ffffee00 {
174262569Simp				status = "okay";
175262569Simp			};
176262569Simp
177262569Simp			pinctrl@fffff200 {
178262569Simp				board {
179270864Simp					pinctrl_i2c0_pu: i2c0_pu {
180270864Simp						atmel,pins =
181270864Simp							<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
182270864Simp							<AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
183270864Simp					};
184270864Simp
185270864Simp					pinctrl_i2c2_pu: i2c2_pu {
186270864Simp						atmel,pins =
187270864Simp							<AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
188270864Simp							<AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
189270864Simp					};
190270864Simp
191262569Simp					pinctrl_mmc0_cd: mmc0_cd {
192262569Simp						atmel,pins =
193262569Simp							<AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
194262569Simp					};
195262569Simp
196262569Simp					pinctrl_mmc1_cd: mmc1_cd {
197262569Simp						atmel,pins =
198262569Simp							<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
199262569Simp					};
200262569Simp
201262569Simp					pinctrl_usba_vbus: usba_vbus {
202262569Simp						atmel,pins =
203262569Simp							<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PE9, conflicts with A9 */
204262569Simp					};
205262569Simp				};
206262569Simp			};
207262569Simp
208262569Simp			pmc: pmc@fffffc00 {
209262569Simp				main: mainck {
210262569Simp					clock-frequency = <12000000>;
211262569Simp				};
212262569Simp			};
213262569Simp		};
214262569Simp
215262569Simp		nand0: nand@60000000 {
216262569Simp			nand-bus-width = <8>;
217262569Simp			nand-ecc-mode = "hw";
218262569Simp			atmel,has-pmecc;
219262569Simp			atmel,pmecc-cap = <4>;
220262569Simp			atmel,pmecc-sector-size = <512>;
221262569Simp			nand-on-flash-bbt;
222262569Simp			status = "okay";
223262569Simp
224262569Simp			at91bootstrap@0 {
225262569Simp				label = "at91bootstrap";
226262569Simp				reg = <0x0 0x40000>;
227262569Simp			};
228262569Simp
229262569Simp			bootloader@40000 {
230262569Simp				label = "bootloader";
231262569Simp				reg = <0x40000 0x80000>;
232262569Simp			};
233262569Simp
234262569Simp			bootloaderenv@c0000 {
235262569Simp				label = "bootloader env";
236262569Simp				reg = <0xc0000 0xc0000>;
237262569Simp			};
238262569Simp
239262569Simp			dtb@180000 {
240262569Simp				label = "device tree";
241262569Simp				reg = <0x180000 0x80000>;
242262569Simp			};
243262569Simp
244262569Simp			kernel@200000 {
245262569Simp				label = "kernel";
246262569Simp				reg = <0x200000 0x600000>;
247262569Simp			};
248262569Simp
249262569Simp			rootfs@800000 {
250262569Simp				label = "rootfs";
251262569Simp				reg = <0x800000 0x0f800000>;
252262569Simp			};
253262569Simp		};
254262569Simp
255262569Simp		usb0: gadget@00500000 {
256262569Simp			atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;	/* PE9, conflicts with A9 */
257262569Simp			pinctrl-names = "default";
258262569Simp			pinctrl-0 = <&pinctrl_usba_vbus>;
259262569Simp			status = "okay";
260262569Simp		};
261262569Simp
262262569Simp		usb1: ohci@00600000 {
263262569Simp			num-ports = <3>;
264262569Simp			atmel,vbus-gpio = <0
265262569Simp					   &pioE 3 GPIO_ACTIVE_LOW
266262569Simp					   &pioE 4 GPIO_ACTIVE_LOW
267262569Simp					  >;
268262569Simp			status = "okay";
269262569Simp		};
270262569Simp
271262569Simp		usb2: ehci@00700000 {
272262569Simp			status = "okay";
273262569Simp		};
274262569Simp	};
275262569Simp
276262569Simp	gpio_keys {
277262569Simp		compatible = "gpio-keys";
278262569Simp
279262569Simp		bp3 {
280262569Simp			label = "PB_USER";
281262569Simp			gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
282262569Simp			linux,code = <0x104>;
283262569Simp			gpio-key,wakeup;
284262569Simp		};
285262569Simp	};
286262569Simp
287262569Simp	leds {
288262569Simp		compatible = "gpio-leds";
289262569Simp
290262569Simp		d2 {
291262569Simp			label = "d2";
292262569Simp			gpios = <&pioE 23 GPIO_ACTIVE_LOW>;	/* PE23, conflicts with A23, CTS2 */
293262569Simp			linux,default-trigger = "heartbeat";
294262569Simp		};
295262569Simp
296262569Simp		d3 {
297262569Simp			label = "d3";
298262569Simp			gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
299262569Simp		};
300262569Simp	};
301262569Simp};
302