xref: /OK3568_Linux_fs/kernel/arch/arm/boot/dts/at91-som60.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * at91-som60.dtsi - Device Tree file for the SOM60 module
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun *  Copyright (C) 2018 Laird,
6*4882a593Smuzhiyun *		  2018 Ben Whitten <ben.whitten@lairdtech.com>
7*4882a593Smuzhiyun *
8*4882a593Smuzhiyun */
9*4882a593Smuzhiyun#include "sama5d36.dtsi"
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun/ {
12*4882a593Smuzhiyun	model = "Laird SOM60";
13*4882a593Smuzhiyun	compatible = "laird,som60", "atmel,sama5d36", "atmel,sama5d3", "atmel,sama5";
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun	chosen {
16*4882a593Smuzhiyun		stdout-path = &dbgu;
17*4882a593Smuzhiyun	};
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun	memory@20000000 {
20*4882a593Smuzhiyun		reg = <0x20000000 0x8000000>;
21*4882a593Smuzhiyun	};
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun	clocks {
24*4882a593Smuzhiyun		slow_xtal {
25*4882a593Smuzhiyun			clock-frequency = <32768>;
26*4882a593Smuzhiyun		};
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun		main_xtal {
29*4882a593Smuzhiyun			clock-frequency = <12000000>;
30*4882a593Smuzhiyun		};
31*4882a593Smuzhiyun	};
32*4882a593Smuzhiyun};
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun&pinctrl {
35*4882a593Smuzhiyun	board {
36*4882a593Smuzhiyun		pinctrl_mmc0_cd: mmc0_cd {
37*4882a593Smuzhiyun			atmel,pins =
38*4882a593Smuzhiyun				<AT91_PIOE 31 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
39*4882a593Smuzhiyun		};
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun		pinctrl_mmc0_en: mmc0_en {
42*4882a593Smuzhiyun			atmel,pins =
43*4882a593Smuzhiyun				<AT91_PIOE 30 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
44*4882a593Smuzhiyun		};
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun		pinctrl_nand0_wp: nand0_wp {
47*4882a593Smuzhiyun			atmel,pins =
48*4882a593Smuzhiyun				<AT91_PIOE 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
49*4882a593Smuzhiyun		};
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun		pinctrl_usb_vbus: usb_vbus {
52*4882a593Smuzhiyun			atmel,pins =
53*4882a593Smuzhiyun				<AT91_PIOE 20 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
54*4882a593Smuzhiyun				/* Conflicts with USART2_SCK */
55*4882a593Smuzhiyun		};
56*4882a593Smuzhiyun
57*4882a593Smuzhiyun		pinctrl_usart2_sck: usart2_sck {
58*4882a593Smuzhiyun			atmel,pins =
59*4882a593Smuzhiyun				<AT91_PIOE 20 AT91_PERIPH_B AT91_PINCTRL_NONE>;
60*4882a593Smuzhiyun				/* Conflicts with USB_VBUS */
61*4882a593Smuzhiyun		};
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun		pinctrl_usb_oc: usb_oc {
64*4882a593Smuzhiyun			atmel,pins =
65*4882a593Smuzhiyun				<AT91_PIOE 15 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
66*4882a593Smuzhiyun				/* Conflicts with USART3_SCK */
67*4882a593Smuzhiyun		};
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun		pinctrl_usart3_sck: usart3_sck {
70*4882a593Smuzhiyun			atmel,pins =
71*4882a593Smuzhiyun				<AT91_PIOE 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
72*4882a593Smuzhiyun				/* Conflicts with USB_OC */
73*4882a593Smuzhiyun		};
74*4882a593Smuzhiyun
75*4882a593Smuzhiyun		pinctrl_usba_vbus: usba_vbus {
76*4882a593Smuzhiyun		   atmel,pins =
77*4882a593Smuzhiyun				<AT91_PIOC 14 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
78*4882a593Smuzhiyun		};
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun		pinctrl_geth_int: geth_int {
81*4882a593Smuzhiyun			atmel,pins =
82*4882a593Smuzhiyun				<AT91_PIOB 25 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
83*4882a593Smuzhiyun				/* Conflicts with USART1_SCK */
84*4882a593Smuzhiyun		};
85*4882a593Smuzhiyun
86*4882a593Smuzhiyun		pinctrl_usart1_sck: usart1_sck {
87*4882a593Smuzhiyun			atmel,pins =
88*4882a593Smuzhiyun				<AT91_PIOB 25 AT91_PERIPH_A AT91_PINCTRL_NONE>;
89*4882a593Smuzhiyun				/* Conflicts with GETH_INT */
90*4882a593Smuzhiyun		};
91*4882a593Smuzhiyun
92*4882a593Smuzhiyun		pinctrl_eth_int: eth_int {
93*4882a593Smuzhiyun			atmel,pins =
94*4882a593Smuzhiyun				<AT91_PIOC 10 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
95*4882a593Smuzhiyun		};
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun		pinctrl_pck2_as_audio_mck: pck2_as_audio_mck {
98*4882a593Smuzhiyun			atmel,pins =
99*4882a593Smuzhiyun				<AT91_PIOC 15 AT91_PERIPH_B AT91_PINCTRL_NONE>;
100*4882a593Smuzhiyun		};
101*4882a593Smuzhiyun	};
102*4882a593Smuzhiyun};
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun&mmc0 {
105*4882a593Smuzhiyun	slot@0 {
106*4882a593Smuzhiyun		reg = <0>;
107*4882a593Smuzhiyun		bus-width = <8>;
108*4882a593Smuzhiyun	};
109*4882a593Smuzhiyun};
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun&mmc1 {
112*4882a593Smuzhiyun	status = "okay";
113*4882a593Smuzhiyun	slot@0 {
114*4882a593Smuzhiyun		reg = <0>;
115*4882a593Smuzhiyun		bus-width = <4>;
116*4882a593Smuzhiyun	};
117*4882a593Smuzhiyun};
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun&spi0 {
120*4882a593Smuzhiyun	cs-gpios = <&pioD 13 0>, <0>, <0>, <0>;
121*4882a593Smuzhiyun};
122*4882a593Smuzhiyun
123*4882a593Smuzhiyun&usart0 {
124*4882a593Smuzhiyun	atmel,use-dma-rx;
125*4882a593Smuzhiyun	atmel,use-dma-tx;
126*4882a593Smuzhiyun	status = "okay";
127*4882a593Smuzhiyun	pinctrl-0 = <&pinctrl_usart0 &pinctrl_usart0_rts_cts>;
128*4882a593Smuzhiyun};
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun&usart1 {
131*4882a593Smuzhiyun	pinctrl-0 = <&pinctrl_usart1 &pinctrl_usart1_rts_cts>;
132*4882a593Smuzhiyun};
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun&usart2 {
135*4882a593Smuzhiyun	pinctrl-0 = <&pinctrl_usart2 &pinctrl_usart2_rts_cts>;
136*4882a593Smuzhiyun};
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun&usart3 {
139*4882a593Smuzhiyun	pinctrl-0 = <&pinctrl_usart3 &pinctrl_usart3_rts_cts>;
140*4882a593Smuzhiyun};
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun&adc0 {
143*4882a593Smuzhiyun	pinctrl-0 = <
144*4882a593Smuzhiyun		&pinctrl_adc0_adtrg
145*4882a593Smuzhiyun		&pinctrl_adc0_ad0
146*4882a593Smuzhiyun		&pinctrl_adc0_ad1
147*4882a593Smuzhiyun		&pinctrl_adc0_ad2
148*4882a593Smuzhiyun		&pinctrl_adc0_ad3
149*4882a593Smuzhiyun		&pinctrl_adc0_ad4
150*4882a593Smuzhiyun		&pinctrl_adc0_ad5
151*4882a593Smuzhiyun		>;
152*4882a593Smuzhiyun};
153*4882a593Smuzhiyun
154*4882a593Smuzhiyun&macb0 {
155*4882a593Smuzhiyun	phy-mode = "rgmii";
156*4882a593Smuzhiyun};
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun&macb1 {
159*4882a593Smuzhiyun	phy-mode = "rmii";
160*4882a593Smuzhiyun};
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun&ebi {
163*4882a593Smuzhiyun	pinctrl-0 = <&pinctrl_ebi_nand_addr>;
164*4882a593Smuzhiyun	pinctrl-names = "default";
165*4882a593Smuzhiyun	status = "okay";
166*4882a593Smuzhiyun};
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun&nand_controller {
169*4882a593Smuzhiyun	status = "okay";
170*4882a593Smuzhiyun
171*4882a593Smuzhiyun	nand: nand@3 {
172*4882a593Smuzhiyun		reg = <0x3 0x0 0x2>;
173*4882a593Smuzhiyun		atmel,rb = <0>;
174*4882a593Smuzhiyun		nand-bus-width = <8>;
175*4882a593Smuzhiyun		nand-ecc-mode = "hw";
176*4882a593Smuzhiyun		nand-ecc-strength = <8>;
177*4882a593Smuzhiyun		nand-ecc-step-size = <512>;
178*4882a593Smuzhiyun		nand-on-flash-bbt;
179*4882a593Smuzhiyun		label = "atmel_nand";
180*4882a593Smuzhiyun
181*4882a593Smuzhiyun		partitions {
182*4882a593Smuzhiyun			compatible = "fixed-partitions";
183*4882a593Smuzhiyun			#address-cells = <1>;
184*4882a593Smuzhiyun			#size-cells = <1>;
185*4882a593Smuzhiyun
186*4882a593Smuzhiyun			ubootspl@0 {
187*4882a593Smuzhiyun				label = "u-boot-spl";
188*4882a593Smuzhiyun				reg = <0x0 0x20000>;
189*4882a593Smuzhiyun			};
190*4882a593Smuzhiyun
191*4882a593Smuzhiyun			uboot@20000 {
192*4882a593Smuzhiyun				label = "u-boot";
193*4882a593Smuzhiyun				reg = <0x20000 0x80000>;
194*4882a593Smuzhiyun			};
195*4882a593Smuzhiyun
196*4882a593Smuzhiyun			ubootenv@a0000 {
197*4882a593Smuzhiyun				label = "u-boot-env";
198*4882a593Smuzhiyun				reg = <0xa0000 0x20000>;
199*4882a593Smuzhiyun			};
200*4882a593Smuzhiyun
201*4882a593Smuzhiyun			ubootenv@c0000 {
202*4882a593Smuzhiyun				label = "u-boot-env";
203*4882a593Smuzhiyun				reg = <0xc0000 0x20000>;
204*4882a593Smuzhiyun			};
205*4882a593Smuzhiyun
206*4882a593Smuzhiyun			ubi@e0000 {
207*4882a593Smuzhiyun				label = "ubi";
208*4882a593Smuzhiyun				reg = <0xe0000 0xfe00000>;
209*4882a593Smuzhiyun			};
210*4882a593Smuzhiyun		};
211*4882a593Smuzhiyun	};
212*4882a593Smuzhiyun};
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun&usb0 {
215*4882a593Smuzhiyun	pinctrl-names = "default";
216*4882a593Smuzhiyun	pinctrl-0 = <&pinctrl_usba_vbus>;
217*4882a593Smuzhiyun	atmel,vbus-gpio = <&pioC 14 GPIO_ACTIVE_HIGH>;
218*4882a593Smuzhiyun};
219*4882a593Smuzhiyun
220*4882a593Smuzhiyun&usb1 {
221*4882a593Smuzhiyun	pinctrl-names = "default";
222*4882a593Smuzhiyun	pinctrl-0 = <&pinctrl_usb_vbus &pinctrl_usb_oc>;
223*4882a593Smuzhiyun	num-ports = <3>;
224*4882a593Smuzhiyun	atmel,vbus-gpio = <0
225*4882a593Smuzhiyun		&pioE 20 GPIO_ACTIVE_HIGH
226*4882a593Smuzhiyun		0>;
227*4882a593Smuzhiyun	atmel,oc-gpio = <0
228*4882a593Smuzhiyun		&pioE 15 GPIO_ACTIVE_LOW
229*4882a593Smuzhiyun		0>;
230*4882a593Smuzhiyun};
231