blob: 1c7f0fa6a49004943e5a4ac6637db5e806cc92f3 [file] [log] [blame]
Durai Manickam KRa0509712022-04-04 11:23:19 +05301// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * at91-sam9x60_curiosity.dts - Device Tree file for SAM9X60 CURIOSITY board
4 *
5 * Copyright (C) 2022 Microchip Technology Inc. and its subsidiaries
6 *
7 * Author: Durai Manickam KR <durai.manickamkr@microchip.com>
8 */
9/dts-v1/;
Alexander Dahlcdb420d2023-08-23 15:58:56 +020010#include <dt-bindings/input/input.h>
Durai Manickam KRa0509712022-04-04 11:23:19 +053011#include <dt-bindings/mfd/atmel-flexcom.h>
12#include "sam9x60.dtsi"
13
14/ {
Alexander Dahl5c3e8672023-07-05 22:17:00 +020015 model = "Microchip SAM9X60 Curiosity";
Durai Manickam KRa0509712022-04-04 11:23:19 +053016 compatible = "microchip,sam9x60-curiosity", "microchip,sam9x60", "atmel,at91sam9";
17
Durai Manickam KRa0509712022-04-04 11:23:19 +053018 chosen {
19 stdout-path = &dbgu;
20 i2c0 = &flx0;
21 };
22
Alexander Dahl5c3e8672023-07-05 22:17:00 +020023 memory {
24 reg = <0x20000000 0x8000000>;
25 };
26
Durai Manickam KRa0509712022-04-04 11:23:19 +053027 clocks {
28 slow_xtal: slow_xtal {
29 clock-frequency = <32768>;
30 };
31
32 main_xtal: main_xtal {
33 clock-frequency = <24000000>;
34 };
35 };
36
Alexander Dahlcdb420d2023-08-23 15:58:56 +020037 gpio-keys {
38 compatible = "gpio-keys";
39 pinctrl-names = "default";
40 pinctrl-0 = <&pinctrl_key_gpio_default>;
41
42 button-user {
43 label = "PB_USER";
44 gpios = <&pioA 29 GPIO_ACTIVE_LOW>;
45 linux,code = <KEY_PROG1>;
46 wakeup-source;
47 };
48 };
49
Alexander Dahl17811e22023-08-23 15:58:54 +020050 leds {
51 compatible = "gpio-leds";
52 pinctrl-names = "default";
53 pinctrl-0 = <&pinctrl_gpio_leds>;
54
55 led-red {
56 label = "red";
57 gpios = <&pioD 17 GPIO_ACTIVE_HIGH>;
58 };
59
60 led-green {
61 label = "green";
62 gpios = <&pioD 19 GPIO_ACTIVE_HIGH>;
63 };
64
65 led-blue {
66 label = "blue";
67 gpios = <&pioD 21 GPIO_ACTIVE_HIGH>;
68 linux,default-trigger = "heartbeat";
69 };
70 };
71
Durai Manickam KRed458092022-07-07 16:40:56 +053072 onewire_tm: onewire {
73 gpios = <&pioD 14 GPIO_ACTIVE_HIGH>;
74 pinctrl-names = "default";
75 pinctrl-0 = <&pinctrl_onewire_tm_default>;
76 status = "okay";
77
78 w1_eeprom: w1_eeprom@0 {
79 compatible = "maxim,ds24b33";
80 status = "okay";
81 };
82 };
Durai Manickam KRa0509712022-04-04 11:23:19 +053083};
84
Manikandan Muralidharanbcfacd22025-02-10 12:21:39 +053085&dbgu {
86 pinctrl-names = "default";
87 pinctrl-0 = <&pinctrl_dbgu>;
88};
89
Alexander Dahl6a1866f2023-07-05 22:17:01 +020090&ebi {
91 pinctrl-names = "default";
92 pinctrl-0 = <&pinctrl_ebi_addr_nand &pinctrl_ebi_data_0_7>;
93 status = "okay";
94
95 nand_controller: nand-controller {
96 pinctrl-names = "default";
97 pinctrl-0 = <&pinctrl_nand_oe_we &pinctrl_nand_cs &pinctrl_nand_rb>;
98 status = "okay";
99
100 nand@3 {
101 reg = <0x3 0x0 0x800000>;
102 rb-gpios = <&pioD 5 GPIO_ACTIVE_HIGH>;
103 cs-gpios = <&pioD 4 GPIO_ACTIVE_HIGH>;
104 nand-bus-width = <8>;
105 nand-ecc-mode = "hw";
106 nand-ecc-strength = <8>;
107 nand-ecc-step-size = <512>;
108 nand-on-flash-bbt;
109 label = "atmel_nand";
110
111 partitions {
112 compatible = "fixed-partitions";
113 #address-cells = <1>;
114 #size-cells = <1>;
115
116 at91bootstrap@0 {
117 label = "at91bootstrap";
118 reg = <0x0 0x40000>;
119 };
120
121 uboot@40000 {
122 label = "u-boot";
123 reg = <0x40000 0xc0000>;
124 };
125
126 ubootenvred@100000 {
127 label = "U-Boot Env Redundant";
128 reg = <0x100000 0x40000>;
129 };
130
131 ubootenv@140000 {
132 label = "U-Boot Env";
133 reg = <0x140000 0x40000>;
134 };
135
136 dtb@180000 {
137 label = "device tree";
138 reg = <0x180000 0x80000>;
139 };
140
141 kernel@200000 {
142 label = "kernel";
143 reg = <0x200000 0x600000>;
144 };
145
146 rootfs@800000 {
147 label = "rootfs";
148 reg = <0x800000 0x1f800000>;
149 };
150 };
151 };
152 };
153};
154
Alexander Dahl5c3e8672023-07-05 22:17:00 +0200155&flx0 {
156 atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
157 status = "okay";
158
159 i2c@600 {
160 compatible = "microchip,sam9x60-i2c";
161 reg = <0x600 0x200>;
162 pinctrl-names = "default";
163 pinctrl-0 = <&pinctrl_flx0>;
164 #address-cells = <1>;
165 #size-cells = <0>;
166 clocks = <&pmc PMC_TYPE_PERIPHERAL 5>;
167 status = "okay";
168
169 eeprom@53 {
170 compatible = "atmel,24c02";
171 reg = <0x53>;
172 pagesize = <16>;
173 };
174 };
175};
176
Durai Manickam KRa0509712022-04-04 11:23:19 +0530177&macb0 {
178 phy-mode = "rmii";
Manikandan Muralidharanbcfacd22025-02-10 12:21:39 +0530179 pinctrl-names = "default";
180 pinctrl-0 = <&pinctrl_macb0_rmii>;
Durai Manickam KRa0509712022-04-04 11:23:19 +0530181 status = "okay";
182};
Sergiu Mogafd41ebf2023-01-04 16:04:11 +0200183
Alexander Dahl5c3e8672023-07-05 22:17:00 +0200184&pinctrl {
Manikandan Muralidharanbcfacd22025-02-10 12:21:39 +0530185 dbgu {
186 pinctrl_dbgu: dbgu-0 {
187 atmel,pins =
188 <AT91_PIOA 9 AT91_PERIPH_A AT91_PINCTRL_PULL_UP
189 AT91_PIOA 10 AT91_PERIPH_A AT91_PINCTRL_NONE>;
190 };
191 };
192
Alexander Dahl6a1866f2023-07-05 22:17:01 +0200193 ebi {
194 pinctrl_ebi_data_0_7: ebi-data-lsb-0 {
195 atmel,pins =
196 <AT91_PIOD 6 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
197 AT91_PIOD 7 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
198 AT91_PIOD 8 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
199 AT91_PIOD 9 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
200 AT91_PIOD 10 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
201 AT91_PIOD 11 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
202 AT91_PIOD 12 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
203 AT91_PIOD 13 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
204 };
205
206 pinctrl_ebi_addr_nand: ebi-addr-0 {
207 atmel,pins =
208 <AT91_PIOD 2 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
209 AT91_PIOD 3 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
210 };
211 };
212
Alexander Dahl5c3e8672023-07-05 22:17:00 +0200213 flexcom {
214 pinctrl_flx0: flx0_default {
215 atmel,pins =
216 <AT91_PIOA 0 AT91_PERIPH_A AT91_PINCTRL_NONE
217 AT91_PIOA 1 AT91_PERIPH_A AT91_PINCTRL_NONE>;
218 };
219 };
220
Alexander Dahlcdb420d2023-08-23 15:58:56 +0200221 gpio-keys {
222 pinctrl_key_gpio_default: pinctrl-key-gpio {
223 atmel,pins = <AT91_PIOA 29 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
224 };
225 };
226
Alexander Dahl17811e22023-08-23 15:58:54 +0200227 leds {
228 pinctrl_gpio_leds: gpio-leds {
229 atmel,pins = <AT91_PIOD 17 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
230 AT91_PIOD 19 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
231 AT91_PIOD 21 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
232 };
233 };
234
Manikandan Muralidharanbcfacd22025-02-10 12:21:39 +0530235 macb0 {
236 pinctrl_macb0_rmii: macb0_rmii-0 {
237 atmel,pins =
238 <AT91_PIOB 0 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB0 periph A */
239 AT91_PIOB 1 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB1 periph A */
240 AT91_PIOB 2 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB2 periph A */
241 AT91_PIOB 3 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB3 periph A */
242 AT91_PIOB 4 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB4 periph A */
243 AT91_PIOB 5 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB5 periph A */
244 AT91_PIOB 6 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB6 periph A */
245 AT91_PIOB 7 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB7 periph A */
246 AT91_PIOB 9 AT91_PERIPH_A AT91_PINCTRL_NONE /* PB9 periph A */
247 AT91_PIOB 10 AT91_PERIPH_A AT91_PINCTRL_NONE>; /* PB10 periph A */
248 };
249 };
250
Alexander Dahl6a1866f2023-07-05 22:17:01 +0200251 nand {
252 pinctrl_nand_oe_we: nand-oe-we-0 {
253 atmel,pins =
254 <AT91_PIOD 0 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)
255 AT91_PIOD 1 AT91_PERIPH_A (AT91_PINCTRL_NONE | AT91_PINCTRL_SLEWRATE_DIS)>;
256 };
257
258 pinctrl_nand_rb: nand-rb-0 {
259 atmel,pins =
260 <AT91_PIOD 5 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
261 };
262
263 pinctrl_nand_cs: nand-cs-0 {
264 atmel,pins =
265 <AT91_PIOD 4 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
266 };
267 };
268
Alexander Dahl5c3e8672023-07-05 22:17:00 +0200269 pinctrl_onewire_tm_default: onewire_tm_default {
270 atmel,pins =
271 <AT91_PIOD 14 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;
272 };
273
Manikandan Muralidharanbcfacd22025-02-10 12:21:39 +0530274 sdhci0 {
275 pinctrl_sdhci0: sdhci0 {
276 atmel,pins =
277 <AT91_PIOA 17 AT91_PERIPH_A
278 (AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA17 CK periph A with pullup */
279 AT91_PIOA 16 AT91_PERIPH_A
280 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA16 CMD periph A with pullup */
281 AT91_PIOA 15 AT91_PERIPH_A
282 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA15 DAT0 periph A */
283 AT91_PIOA 18 AT91_PERIPH_A
284 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA18 DAT1 periph A with pullup */
285 AT91_PIOA 19 AT91_PERIPH_A
286 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA) /* PA19 DAT2 periph A with pullup */
287 AT91_PIOA 20 AT91_PERIPH_A
288 (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI | AT91_PINCTRL_SLEWRATE_ENA)>; /* PA20 DAT3 periph A with pullup */
289 };
290 };
291
292 sdhci1 {
293 pinctrl_sdhci1: sdhci1 {
294 atmel,pins =
295 <AT91_PIOA 13 AT91_PERIPH_B (AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA13 CK periph B */
296 AT91_PIOA 12 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA12 CMD periph B with pullup */
297 AT91_PIOA 11 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA11 DAT0 periph B with pullup */
298 AT91_PIOA 2 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA2 DAT1 periph B with pullup */
299 AT91_PIOA 3 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI) /* PA3 DAT2 periph B with pullup */
300 AT91_PIOA 4 AT91_PERIPH_B (AT91_PINCTRL_PULL_UP | AT91_PINCTRL_DRIVE_STRENGTH_HI)>; /* PA4 DAT3 periph B with pullup */
301 };
302 };
303
Alexander Dahl5c3e8672023-07-05 22:17:00 +0200304 usb1 {
305 pinctrl_usb_default: usb_default {
306 atmel,pins = <AT91_PIOD 15 AT91_PERIPH_GPIO AT91_PINCTRL_NONE
307 AT91_PIOD 18 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
308 };
309 };
310};
311
Manikandan Muralidharanbcfacd22025-02-10 12:21:39 +0530312&sdhci0 {
313 pinctrl-names = "default";
314 pinctrl-0 = <&pinctrl_sdhci0>;
315};
316
317&sdhci1 {
318 pinctrl-names = "default";
319 pinctrl-0 = <&pinctrl_sdhci1>;
320};
321
Zixun LI67929592025-03-31 18:26:09 +0200322&usb0 {
323 status = "okay";
324};
325
Sergiu Mogafd41ebf2023-01-04 16:04:11 +0200326&usb1 {
327 num-ports = <3>;
328 atmel,vbus-gpio = <0
329 &pioD 15 GPIO_ACTIVE_HIGH
330 &pioD 18 GPIO_ACTIVE_HIGH>;
331 pinctrl-names = "default";
332 pinctrl-0 = <&pinctrl_usb_default>;
333 status = "okay";
334};
335
336&usb2 {
337 status = "okay";
338};