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