xref: /linux/arch/arm/boot/dts/microchip/at91-sama7d65_curiosity.dts (revision 68a052239fc4b351e961f698b824f7654a346091)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 *  at91-sama7d65_curiosity.dts - Device Tree file for SAMA7D65 Curiosity board
4 *
5 *  Copyright (c) 2024 Microchip Technology Inc. and its subsidiaries
6 *
7 *  Author: Romain Sioen <romain.sioen@microchip.com>
8 *
9 */
10/dts-v1/;
11#include "sama7d65-pinfunc.h"
12#include "sama7d65.dtsi"
13#include <dt-bindings/mfd/atmel-flexcom.h>
14#include <dt-bindings/input/input.h>
15#include <dt-bindings/leds/common.h>
16#include <dt-bindings/pinctrl/at91.h>
17
18/ {
19	model = "Microchip SAMA7D65 Curiosity";
20	compatible = "microchip,sama7d65-curiosity", "microchip,sama7d65",
21		     "microchip,sama7d6", "microchip,sama7";
22
23	aliases {
24		serial0 = &uart6;
25	};
26
27	chosen {
28		stdout-path = "serial0:115200n8";
29	};
30
31	gpio-keys {
32		compatible = "gpio-keys";
33
34		pinctrl-names = "default";
35		pinctrl-0 = <&pinctrl_key_gpio_default>;
36
37		button {
38			label = "PB_USER";
39			gpios = <&pioa PIN_PC10 GPIO_ACTIVE_LOW>;
40			linux,code = <KEY_PROG1>;
41			wakeup-source;
42		};
43	};
44
45	leds {
46		compatible = "gpio-leds";
47		pinctrl-names = "default";
48		pinctrl-0 = <&pinctrl_led_gpio_default>;
49
50		led0: led-red {
51			color = <LED_COLOR_ID_RED>;
52			gpios = <&pioa PIN_PB17 GPIO_ACTIVE_HIGH>; /* Conflict with pwm. */
53		};
54
55		led1: led-green {
56			color = <LED_COLOR_ID_GREEN>;
57			gpios = <&pioa PIN_PB15 GPIO_ACTIVE_HIGH>; /* Conflict with pwm. */
58		};
59
60		led2: led-blue {
61			color = <LED_COLOR_ID_BLUE>;
62			function = LED_FUNCTION_HEARTBEAT;
63			gpios = <&pioa PIN_PA21 GPIO_ACTIVE_HIGH>;
64			linux,default-trigger = "heartbeat";
65		};
66	};
67
68	memory@60000000 {
69		device_type = "memory";
70		reg = <0x60000000 0x40000000>;
71	};
72
73	reg_5v: regulator-5v {
74		compatible = "regulator-fixed";
75		regulator-name = "5V_MAIN";
76		regulator-min-microvolt = <5000000>;
77		regulator-max-microvolt = <5000000>;
78		regulator-always-on;
79	};
80};
81
82&can1 {
83	pinctrl-names = "default";
84	pinctrl-0 = <&pinctrl_can1_default>;
85	status = "okay";
86};
87
88&can2 {
89	pinctrl-names = "default";
90	pinctrl-0 = <&pinctrl_can2_default>;
91	status = "okay";
92};
93
94&can3 {
95	pinctrl-names = "default";
96	pinctrl-0 = <&pinctrl_can3_default>;
97	status = "okay";
98};
99
100&dma0 {
101	status = "okay";
102};
103
104&dma1 {
105	status = "okay";
106};
107
108&dma2 {
109	status = "okay";
110};
111
112&flx6 {
113	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_USART>;
114	status = "okay";
115};
116
117&uart6 {
118	pinctrl-names = "default";
119	pinctrl-0 = <&pinctrl_uart6_default>;
120	status = "okay";
121};
122
123&flx10 {
124	atmel,flexcom-mode = <ATMEL_FLEXCOM_MODE_TWI>;
125	status = "okay";
126};
127
128&gmac0 {
129	#address-cells = <1>;
130	#size-cells = <0>;
131	pinctrl-names = "default";
132	pinctrl-0 = <&pinctrl_gmac0_default
133		     &pinctrl_gmac0_mdio_default
134		     &pinctrl_gmac0_txck_default
135		     &pinctrl_gmac0_phy_irq>;
136	phy-mode = "rgmii-id";
137	nvmem-cells = <&eeprom0_eui48>;
138	nvmem-cell-names = "mac-address";
139	status = "okay";
140
141	ethernet-phy@7 {
142		reg = <0x7>;
143		interrupt-parent = <&pioa>;
144		interrupts = <PIN_PC1 IRQ_TYPE_LEVEL_LOW>;
145	};
146};
147
148&i2c10 {
149	dmas = <0>, <0>;
150	i2c-analog-filter;
151	i2c-digital-filter;
152	i2c-digital-filter-width-ns = <35>;
153	pinctrl-names = "default";
154	pinctrl-0 = <&pinctrl_i2c10_default>;
155	status = "okay";
156
157	power-monitor@10 {
158		compatible = "microchip,pac1934";
159		reg = <0x10>;
160		#address-cells = <1>;
161		#size-cells = <0>;
162
163		channel@1 {
164			reg = <0x1>;
165			shunt-resistor-micro-ohms = <47000>;
166			label = "VDD3V3";
167		};
168
169		channel@2 {
170			reg = <0x2>;
171			shunt-resistor-micro-ohms = <47000>;
172			label = "VDDIODDR";
173		};
174
175		channel@3 {
176			reg = <0x3>;
177			shunt-resistor-micro-ohms = <47000>;
178			label = "VDDCORE";
179		};
180
181		channel@4 {
182			reg = <0x4>;
183			shunt-resistor-micro-ohms = <47000>;
184			label = "VDDCPU";
185		};
186	};
187
188	pmic@5b {
189		compatible = "microchip,mcp16502";
190		reg = <0x5b>;
191		lvin-supply = <&reg_5v>;
192		pvin1-supply = <&reg_5v>;
193		pvin2-supply = <&reg_5v>;
194		pvin3-supply = <&reg_5v>;
195		pvin4-supply = <&reg_5v>;
196		status = "okay";
197
198		regulators {
199			vdd_3v3: VDD_IO {
200				regulator-name = "VDD_IO";
201				regulator-min-microvolt = <3300000>;
202				regulator-max-microvolt = <3300000>;
203				regulator-initial-mode = <2>;
204				regulator-allowed-modes = <2>, <4>;
205				regulator-always-on;
206
207				regulator-state-standby {
208					regulator-on-in-suspend;
209					regulator-suspend-microvolt = <3300000>;
210					regulator-mode = <4>;
211				};
212
213				regulator-state-mem {
214					regulator-off-in-suspend;
215					regulator-mode = <4>;
216				};
217			};
218
219			vddioddr: VDD_DDR {
220				regulator-name = "VDD_DDR";
221				regulator-min-microvolt = <1350000>;
222				regulator-max-microvolt = <1350000>;
223				regulator-initial-mode = <2>;
224				regulator-allowed-modes = <2>, <4>;
225				regulator-always-on;
226
227				regulator-state-standby {
228					regulator-on-in-suspend;
229					regulator-suspend-microvolt = <1350000>;
230					regulator-mode = <4>;
231				};
232
233				regulator-state-mem {
234					regulator-on-in-suspend;
235					regulator-suspend-microvolt = <1350000>;
236					regulator-mode = <4>;
237				};
238			};
239
240			vddcore: VDD_CORE {
241				regulator-name = "VDD_CORE";
242				regulator-min-microvolt = <1050000>;
243				regulator-max-microvolt = <1050000>;
244				regulator-initial-mode = <2>;
245				regulator-allowed-modes = <2>, <4>;
246				regulator-always-on;
247
248				regulator-state-standby {
249					regulator-on-in-suspend;
250					regulator-suspend-microvolt = <1050000>;
251					regulator-mode = <4>;
252				};
253
254				regulator-state-mem {
255					regulator-off-in-suspend;
256					regulator-mode = <4>;
257				};
258			};
259
260			vddcpu: VDD_OTHER {
261				regulator-name = "VDD_OTHER";
262				regulator-min-microvolt = <1050000>;
263				regulator-max-microvolt = <1250000>;
264				regulator-initial-mode = <2>;
265				regulator-allowed-modes = <2>, <4>;
266				regulator-ramp-delay = <3125>;
267				regulator-always-on;
268
269				regulator-state-standby {
270					regulator-on-in-suspend;
271					regulator-suspend-microvolt = <1050000>;
272					regulator-mode = <4>;
273				};
274
275				regulator-state-mem {
276					regulator-off-in-suspend;
277					regulator-mode = <4>;
278				};
279			};
280
281			vldo1: LDO1 {
282				regulator-name = "LDO1";
283				regulator-min-microvolt = <1800000>;
284				regulator-max-microvolt = <1800000>;
285				regulator-always-on;
286
287				regulator-state-standby {
288					regulator-suspend-microvolt = <1800000>;
289					regulator-on-in-suspend;
290				};
291
292				regulator-state-mem {
293					regulator-off-in-suspend;
294				};
295			};
296
297			vldo2: LDO2 {
298				regulator-name = "LDO2";
299				regulator-min-microvolt = <1200000>;
300				regulator-max-microvolt = <3700000>;
301
302				regulator-state-standby {
303					regulator-on-in-suspend;
304				};
305
306				regulator-state-mem {
307					regulator-off-in-suspend;
308				};
309			};
310		};
311	};
312
313	eeprom0: eeprom@51 {
314		compatible = "microchip,24aa025e48";
315		reg = <0x51>;
316		size = <256>;
317		pagesize = <16>;
318		vcc-supply = <&vdd_3v3>;
319
320		nvmem-layout {
321			compatible = "fixed-layout";
322			#address-cells = <1>;
323			#size-cells = <1>;
324
325			eeprom0_eui48: eui48@fa {
326				reg = <0xfa 0x6>;
327			};
328		};
329	};
330};
331
332&main_xtal {
333	clock-frequency = <24000000>;
334};
335
336&pioa {
337	pinctrl_can1_default: can1-default {
338		pinmux = <PIN_PD10__CANTX1>,
339			 <PIN_PD11__CANRX1>;
340		bias-disable;
341	};
342
343	pinctrl_can2_default: can2-default {
344		pinmux = <PIN_PD12__CANTX2>,
345			 <PIN_PD13__CANRX2>;
346		bias-disable;
347	};
348
349	pinctrl_can3_default: can3-default {
350		pinmux = <PIN_PD14__CANTX3>,
351			 <PIN_PD15__CANRX3>;
352		bias-disable;
353	};
354
355	pinctrl_gmac0_default: gmac0-default {
356		pinmux = <PIN_PA26__G0_TX0>,
357			 <PIN_PA27__G0_TX1>,
358			 <PIN_PB4__G0_TX2>,
359			 <PIN_PB5__G0_TX3>,
360			 <PIN_PA29__G0_RX0>,
361			 <PIN_PA30__G0_RX1>,
362			 <PIN_PB2__G0_RX2>,
363			 <PIN_PB6__G0_RX3>,
364			 <PIN_PA25__G0_TXCTL>,
365			 <PIN_PB3__G0_RXCK>,
366			 <PIN_PA28__G0_RXCTL>;
367		slew-rate = <0>;
368		bias-disable;
369	};
370
371	pinctrl_gmac0_mdio_default: gmac0-mdio-default {
372		pinmux = <PIN_PA31__G0_MDC>,
373			 <PIN_PB0__G0_MDIO>;
374		bias-disable;
375	};
376
377	pinctrl_gmac0_phy_irq: gmac0-phy-irq {
378		pinmux = <PIN_PC1__GPIO>;
379		bias-disable;
380	};
381
382	pinctrl_gmac0_txck_default: gmac0-txck-default {
383		pinmux = <PIN_PB1__G0_REFCK>;
384		slew-rate = <0>;
385		bias-pull-up;
386	};
387
388	pinctrl_i2c10_default: i2c10-default {
389		pinmux = <PIN_PB19__FLEXCOM10_IO1>,
390			 <PIN_PB20__FLEXCOM10_IO0>;
391		bias-pull-up;
392	};
393
394	pinctrl_key_gpio_default: key-gpio-default {
395		pinmux = <PIN_PC10__GPIO>;
396		bias-pull-up;
397	};
398
399	pinctrl_led_gpio_default: led-gpio-default {
400		pinmux = <PIN_PB15__GPIO>,
401			 <PIN_PB17__GPIO>,
402			 <PIN_PA21__GPIO>;
403		bias-pull-up;
404	};
405
406	pinctrl_sdmmc1_default: sdmmc1-default {
407		cmd-data {
408			pinmux = <PIN_PB22__SDMMC1_CMD>,
409				 <PIN_PB24__SDMMC1_DAT0>,
410				 <PIN_PB25__SDMMC1_DAT1>,
411				 <PIN_PB26__SDMMC1_DAT2>,
412				 <PIN_PB27__SDMMC1_DAT3>;
413			slew-rate = <0>;
414			bias-disable;
415		};
416
417		ck-cd-rstn-vddsel {
418			pinmux = <PIN_PB23__SDMMC1_CK>,
419				 <PIN_PB21__SDMMC1_RSTN>,
420				 <PIN_PB30__SDMMC1_1V8SEL>,
421				 <PIN_PB29__SDMMC1_CD>,
422				 <PIN_PB28__SDMMC1_WP>;
423			slew-rate = <0>;
424			bias-disable;
425		};
426	};
427
428	pinctrl_uart6_default: uart6-default {
429		pinmux = <PIN_PD18__FLEXCOM6_IO0>,
430			 <PIN_PD19__FLEXCOM6_IO1>;
431		bias-disable;
432	};
433};
434
435&rtt {
436	atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
437};
438
439&sdmmc1 {
440	bus-width = <4>;
441	no-1-8-v;
442	sdhci-caps-mask = <0x0 0x00200000>;
443	pinctrl-names = "default";
444	pinctrl-0 = <&pinctrl_sdmmc1_default>;
445	status = "okay";
446};
447
448&shdwc {
449	debounce-delay-us = <976>;
450	status = "okay";
451
452	input@0 {
453		reg = <0>;
454	};
455};
456
457&slow_xtal {
458	clock-frequency = <32768>;
459};
460