1/*
2 * at91-sama5d3_xplained.dts - Device Tree file for the SAMA5D3 Xplained board
3 *
4 *  Copyright (C) 2014 Atmel,
5 *		  2014 Nicolas Ferre <nicolas.ferre@atmel.com>
6 *
7 * Licensed under GPLv2 or later.
8 */
9/dts-v1/;
10#include "sama5d36.dtsi"
11
12/ {
13	model = "SAMA5D3 Xplained";
14	compatible = "atmel,sama5d3-xplained", "atmel,sama5d3", "atmel,sama5";
15
16	chosen {
17		bootargs = "console=ttyS0,115200";
18	};
19
20	memory {
21		reg = <0x20000000 0x10000000>;
22	};
23
24	clocks {
25		slow_xtal {
26			clock-frequency = <32768>;
27		};
28
29		main_xtal {
30			clock-frequency = <12000000>;
31		};
32	};
33
34	ahb {
35		apb {
36			mmc0: mmc@f0000000 {
37				pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3 &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
38				status = "okay";
39				slot@0 {
40					reg = <0>;
41					bus-width = <8>;
42					cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
43				};
44			};
45
46			spi0: spi@f0004000 {
47				cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
48				status = "okay";
49			};
50
51			can0: can@f000c000 {
52				status = "okay";
53			};
54
55			i2c0: i2c@f0014000 {
56				pinctrl-0 = <&pinctrl_i2c0_pu>;
57				status = "okay";
58			};
59
60			i2c1: i2c@f0018000 {
61				status = "okay";
62
63				pmic: act8865@5b {
64					compatible = "active-semi,act8865";
65					reg = <0x5b>;
66					status = "okay";
67
68					regulators {
69						vcc_1v8_reg: DCDC_REG1 {
70							regulator-name = "VCC_1V8";
71							regulator-min-microvolt = <1800000>;
72							regulator-max-microvolt = <1800000>;
73							regulator-always-on;
74						};
75
76						vcc_1v2_reg: DCDC_REG2 {
77							regulator-name = "VCC_1V2";
78							regulator-min-microvolt = <1200000>;
79							regulator-max-microvolt = <1200000>;
80							regulator-always-on;
81						};
82
83						vcc_3v3_reg: DCDC_REG3 {
84							regulator-name = "VCC_3V3";
85							regulator-min-microvolt = <3300000>;
86							regulator-max-microvolt = <3300000>;
87							regulator-always-on;
88						};
89
90						vddfuse_reg: LDO_REG1 {
91							regulator-name = "FUSE_2V5";
92							regulator-min-microvolt = <2500000>;
93							regulator-max-microvolt = <2500000>;
94						};
95
96						vddana_reg: LDO_REG2 {
97							regulator-name = "VDDANA";
98							regulator-min-microvolt = <3300000>;
99							regulator-max-microvolt = <3300000>;
100							regulator-always-on;
101						};
102					};
103				};
104			};
105
106			macb0: ethernet@f0028000 {
107				phy-mode = "rgmii";
108				status = "okay";
109			};
110
111			pwm0: pwm@f002c000 {
112				pinctrl-names = "default";
113				pinctrl-0 = <&pinctrl_pwm0_pwmh0_0 &pinctrl_pwm0_pwmh1_0>;
114				status = "okay";
115			};
116
117			usart0: serial@f001c000 {
118				status = "okay";
119			};
120
121			usart1: serial@f0020000 {
122				pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
123				status = "okay";
124			};
125
126			uart0: serial@f0024000 {
127				status = "okay";
128			};
129
130			mmc1: mmc@f8000000 {
131				pinctrl-0 = <&pinctrl_mmc1_clk_cmd_dat0 &pinctrl_mmc1_dat1_3 &pinctrl_mmc1_cd>;
132				status = "okay";
133				slot@0 {
134					reg = <0>;
135					bus-width = <4>;
136					cd-gpios = <&pioE 1 GPIO_ACTIVE_HIGH>;
137				};
138			};
139
140			spi1: spi@f8008000 {
141				cs-gpios = <&pioC 25 0>;
142				status = "okay";
143			};
144
145			adc0: adc@f8018000 {
146				pinctrl-0 = <
147					&pinctrl_adc0_adtrg
148					&pinctrl_adc0_ad0
149					&pinctrl_adc0_ad1
150					&pinctrl_adc0_ad2
151					&pinctrl_adc0_ad3
152					&pinctrl_adc0_ad4
153					&pinctrl_adc0_ad5
154					&pinctrl_adc0_ad6
155					&pinctrl_adc0_ad7
156					&pinctrl_adc0_ad8
157					&pinctrl_adc0_ad9
158					>;
159				status = "okay";
160			};
161
162			i2c2: i2c@f801c000 {
163				dmas = <0>, <0>;	/* Do not use DMA for i2c2 */
164				pinctrl-0 = <&pinctrl_i2c2_pu>;
165				status = "okay";
166			};
167
168			macb1: ethernet@f802c000 {
169				phy-mode = "rmii";
170				#address-cells = <1>;
171				#size-cells = <0>;
172				status = "okay";
173
174				ethernet-phy@1 {
175					reg = <0x1>;
176				};
177			};
178
179			dbgu: serial@ffffee00 {
180				status = "okay";
181			};
182
183			pinctrl@fffff200 {
184				board {
185					pinctrl_i2c0_pu: i2c0_pu {
186						atmel,pins =
187							<AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
188							<AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
189					};
190
191					pinctrl_i2c2_pu: i2c2_pu {
192						atmel,pins =
193							<AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
194							<AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
195					};
196
197					pinctrl_key_gpio: key_gpio_0 {
198						atmel,pins =
199							<AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
200					};
201
202					pinctrl_mmc0_cd: mmc0_cd {
203						atmel,pins =
204							<AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
205					};
206
207					pinctrl_mmc1_cd: mmc1_cd {
208						atmel,pins =
209							<AT91_PIOE 1 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
210					};
211
212					pinctrl_usba_vbus: usba_vbus {
213						atmel,pins =
214							<AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;	/* PE9, conflicts with A9 */
215					};
216				};
217			};
218
219			pmc: pmc@fffffc00 {
220				main: mainck {
221					clock-frequency = <12000000>;
222				};
223			};
224		};
225
226		nand0: nand@60000000 {
227			nand-bus-width = <8>;
228			nand-ecc-mode = "hw";
229			atmel,has-pmecc;
230			atmel,pmecc-cap = <4>;
231			atmel,pmecc-sector-size = <512>;
232			nand-on-flash-bbt;
233			status = "okay";
234
235			at91bootstrap@0 {
236				label = "at91bootstrap";
237				reg = <0x0 0x40000>;
238			};
239
240			bootloader@40000 {
241				label = "bootloader";
242				reg = <0x40000 0x80000>;
243			};
244
245			bootloaderenv@c0000 {
246				label = "bootloader env";
247				reg = <0xc0000 0xc0000>;
248			};
249
250			dtb@180000 {
251				label = "device tree";
252				reg = <0x180000 0x80000>;
253			};
254
255			kernel@200000 {
256				label = "kernel";
257				reg = <0x200000 0x600000>;
258			};
259
260			rootfs@800000 {
261				label = "rootfs";
262				reg = <0x800000 0x0f800000>;
263			};
264		};
265
266		usb0: gadget@00500000 {
267			atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;	/* PE9, conflicts with A9 */
268			pinctrl-names = "default";
269			pinctrl-0 = <&pinctrl_usba_vbus>;
270			status = "okay";
271		};
272
273		usb1: ohci@00600000 {
274			num-ports = <3>;
275			atmel,vbus-gpio = <0
276					   &pioE 3 GPIO_ACTIVE_LOW
277					   &pioE 4 GPIO_ACTIVE_LOW
278					  >;
279			status = "okay";
280		};
281
282		usb2: ehci@00700000 {
283			status = "okay";
284		};
285	};
286
287	gpio_keys {
288		compatible = "gpio-keys";
289
290		pinctrl-names = "default";
291		pinctrl-0 = <&pinctrl_key_gpio>;
292
293		bp3 {
294			label = "PB_USER";
295			gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
296			linux,code = <0x104>;
297			gpio-key,wakeup;
298		};
299	};
300
301	leds {
302		compatible = "gpio-leds";
303
304		d2 {
305			label = "d2";
306			gpios = <&pioE 23 GPIO_ACTIVE_LOW>;	/* PE23, conflicts with A23, CTS2 */
307			linux,default-trigger = "heartbeat";
308		};
309
310		d3 {
311			label = "d3";
312			gpios = <&pioE 24 GPIO_ACTIVE_HIGH>;
313		};
314	};
315};
316