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