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