GNU Linux-libre 6.1.90-gnu
[releases.git] / arch / arm / boot / dts / at91-sama5d3_eds.dts
1 // SPDX-License-Identifier: GPL-2.0+ OR MIT
2 /*
3  * at91-sama5d3_eds.dts - Device Tree file for the SAMA5D3 Ethernet
4  *    Development System board.
5  *
6  * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
7  *
8  * Author: Jerry Ray <jerry.ray@microchip.com>
9  */
10 /dts-v1/;
11 #include "sama5d36.dtsi"
12
13 / {
14         model = "SAMA5D3 Ethernet Development System";
15         compatible = "microchip,sama5d3-eds", "atmel,sama5d36",
16                      "atmel,sama5d3", "atmel,sama5";
17
18         chosen {
19                 stdout-path = "serial0:115200n8";
20         };
21
22         gpio-keys {
23                 compatible = "gpio-keys";
24
25                 pinctrl-names = "default";
26                 pinctrl-0 = <&pinctrl_key_gpio>;
27
28                 button-3 {
29                         label = "PB_USER";
30                         gpios = <&pioE 29 GPIO_ACTIVE_LOW>;
31                         linux,code = <0x104>;
32                         wakeup-source;
33                 };
34         };
35
36         memory@20000000 {
37                 reg = <0x20000000 0x10000000>;
38         };
39
40         vcc_3v3_reg: regulator-1 {
41                 compatible = "regulator-fixed";
42                 regulator-name = "VCC_3V3";
43                 regulator-min-microvolt = <3300000>;
44                 regulator-max-microvolt = <3300000>;
45                 regulator-always-on;
46         };
47
48         vcc_2v5_reg: regulator-2 {
49                 compatible = "regulator-fixed";
50                 regulator-name = "VCC_2V5";
51                 regulator-min-microvolt = <2500000>;
52                 regulator-max-microvolt = <2500000>;
53                 regulator-always-on;
54                 vin-supply = <&vcc_3v3_reg>;
55         };
56
57         vcc_1v8_reg: regulator-3 {
58                 compatible = "regulator-fixed";
59                 regulator-name = "VCC_1V8";
60                 regulator-min-microvolt = <1800000>;
61                 regulator-max-microvolt = <1800000>;
62                 regulator-always-on;
63                 vin-supply = <&vcc_3v3_reg>;
64         };
65
66         vcc_1v2_reg: regulator-4 {
67                 compatible = "regulator-fixed";
68                 regulator-name = "VCC_1V2";
69                 regulator-min-microvolt = <1200000>;
70                 regulator-max-microvolt = <1200000>;
71                 regulator-always-on;
72         };
73
74         vcc_mmc0_reg: regulator-5 {
75                 compatible = "regulator-fixed";
76                 regulator-name = "mmc0-card-supply";
77                 regulator-min-microvolt = <3300000>;
78                 regulator-max-microvolt = <3300000>;
79                 regulator-always-on;
80                 pinctrl-names = "default";
81                 pinctrl-0 = <&pinctrl_vcc_mmc0_reg_gpio>;
82                 gpio = <&pioE 2 GPIO_ACTIVE_LOW>;
83         };
84 };
85
86 &can0 {
87         status = "okay";
88 };
89
90 &dbgu {
91         status = "okay";
92 };
93
94 &ebi {
95         pinctrl-0 = <&pinctrl_ebi_nand_addr>;
96         pinctrl-names = "default";
97         status = "okay";
98
99         nand_controller: nand-controller {
100                 status = "okay";
101
102                 nand@3 {
103                         reg = <0x3 0x0 0x2>;
104                         atmel,rb = <0>;
105                         nand-bus-width = <8>;
106                         nand-ecc-mode = "hw";
107                         nand-ecc-strength = <4>;
108                         nand-ecc-step-size = <512>;
109                         nand-on-flash-bbt;
110                         label = "atmel_nand";
111
112                         partitions {
113                                 compatible = "fixed-partitions";
114                                 #address-cells = <1>;
115                                 #size-cells = <1>;
116
117                                 at91bootstrap@0 {
118                                         label = "at91bootstrap";
119                                         reg = <0x0 0x40000>;
120                                 };
121
122                                 bootloader@40000 {
123                                         label = "bootloader";
124                                         reg = <0x40000 0xc0000>;
125                                 };
126
127                                 bootloaderenvred@100000 {
128                                         label = "bootloader env redundant";
129                                         reg = <0x100000 0x40000>;
130                                 };
131
132                                 bootloaderenv@140000 {
133                                         label = "bootloader env";
134                                         reg = <0x140000 0x40000>;
135                                 };
136
137                                 dtb@180000 {
138                                         label = "device tree";
139                                         reg = <0x180000 0x80000>;
140                                 };
141
142                                 kernel@200000 {
143                                         label = "kernel";
144                                         reg = <0x200000 0x600000>;
145                                 };
146
147                                 rootfs@800000 {
148                                         label = "rootfs";
149                                         reg = <0x800000 0x0f800000>;
150                                 };
151                         };
152                 };
153         };
154 };
155
156 &i2c0 {
157         pinctrl-0 = <&pinctrl_i2c0_pu>;
158         status = "okay";
159 };
160
161 &i2c1 {
162         status = "okay";
163 };
164
165 &i2c2 {
166         pinctrl-0 = <&pinctrl_i2c2_pu>;
167         status = "okay";
168 };
169
170 &main_xtal {
171         clock-frequency = <12000000>;
172 };
173
174 &mmc0 {
175         pinctrl-0 = <&pinctrl_mmc0_clk_cmd_dat0 &pinctrl_mmc0_dat1_3
176                      &pinctrl_mmc0_dat4_7 &pinctrl_mmc0_cd>;
177         vmmc-supply = <&vcc_mmc0_reg>;
178         vqmmc-supply = <&vcc_3v3_reg>;
179         status = "okay";
180         slot@0 {
181                 reg = <0>;
182                 bus-width = <8>;
183                 cd-gpios = <&pioE 0 GPIO_ACTIVE_LOW>;
184         };
185 };
186
187 &pinctrl {
188         board {
189                 pinctrl_i2c0_pu: i2c0-pu {
190                         atmel,pins =
191                                 <AT91_PIOA 30 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>,
192                                 <AT91_PIOA 31 AT91_PERIPH_A AT91_PINCTRL_PULL_UP>;
193                 };
194
195                 pinctrl_i2c2_pu: i2c2-pu {
196                         atmel,pins =
197                                 <AT91_PIOA 18 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>,
198                                 <AT91_PIOA 19 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;
199                 };
200
201                 pinctrl_key_gpio: key-gpio-0 {
202                         atmel,pins =
203                                 <AT91_PIOE 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
204                 };
205
206                 pinctrl_mmc0_cd: mmc0-cd {
207                         atmel,pins =
208                                 <AT91_PIOE 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
209                 };
210
211                 /* Reserved for reset signal to the RGMII connector. */
212                 pinctrl_rgmii_rstn: rgmii-rstn {
213                         atmel,pins =
214                                 <AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;
215                 };
216
217                 /* Reserved for an interrupt line from the RMII and RGMII connectors. */
218                 pinctrl_spi_irqn: spi-irqn {
219                         atmel,pins =
220                                 <AT91_PIOB 28 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
221                 };
222
223                 pinctrl_spi0_cs: spi0-cs-default {
224                         atmel,pins =
225                                 <AT91_PIOD 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
226                                  AT91_PIOD 16 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
227                 };
228
229                 pinctrl_spi1_cs: spi1-cs-default {
230                         atmel,pins = <AT91_PIOC 25 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
231                                       AT91_PIOC 28 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
232                 };
233
234                 pinctrl_usba_vbus: usba-vbus {
235                         atmel,pins =
236                                 <AT91_PIOE 9 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
237                 };
238
239                 pinctrl_usb_default: usb-default {
240                         atmel,pins =
241                                 <AT91_PIOE 3 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
242                                  AT91_PIOE 4 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
243                 };
244
245                 /* Reserved for VBUS fault interrupt. */
246                 pinctrl_vbusfault_irqn: vbusfault-irqn {
247                         atmel,pins =
248                                 <AT91_PIOE 5 AT91_PERIPH_GPIO AT91_PINCTRL_DEGLITCH>;
249                 };
250
251                 pinctrl_vcc_mmc0_reg_gpio: vcc-mmc0-reg-gpio-default {
252                         atmel,pins = <AT91_PIOE 2 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
253                 };
254         };
255 };
256
257 &slow_xtal {
258         clock-frequency = <32768>;
259 };
260
261 &spi0 {
262         pinctrl-names = "default", "cs";
263         pinctrl-1 = <&pinctrl_spi0_cs>;
264         cs-gpios = <&pioD 13 0>, <0>, <0>, <&pioD 16 0>;
265         status = "okay";
266 };
267
268 &spi1 {
269         pinctrl-names = "default", "cs";
270         pinctrl-1 = <&pinctrl_spi1_cs>;
271         cs-gpios = <&pioC 25 0>, <0>, <0>, <&pioC 28 0>;
272         status = "okay";
273 };
274
275 &tcb0 {
276         timer0: timer@0 {
277                 compatible = "atmel,tcb-timer";
278                 reg = <0>;
279         };
280
281         timer1: timer@1 {
282                 compatible = "atmel,tcb-timer";
283                 reg = <1>;
284         };
285 };
286
287 &usb0 { /* USB Device port with VBUS detection. */
288         atmel,vbus-gpio = <&pioE 9 GPIO_ACTIVE_HIGH>;
289         pinctrl-names = "default";
290         pinctrl-0 = <&pinctrl_usba_vbus>;
291         status = "okay";
292 };
293
294 &usb1 { /* 3-port Host. First port is unused. */
295         atmel,vbus-gpio = <0
296                            &pioE 3 GPIO_ACTIVE_HIGH
297                            &pioE 4 GPIO_ACTIVE_HIGH
298                           >;
299         num-ports = <3>;
300         pinctrl-names = "default";
301         pinctrl-0 = <&pinctrl_usb_default>;
302         status = "okay";
303 };
304
305 &usb2 {
306         status = "okay";
307 };