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