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