1/*
2 * Copyright (c) 2019 Benjamin Valentin
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <atmel/same5xx20.dtsi>
9#include "same54_xpro-pinctrl.dtsi"
10#include <zephyr/dt-bindings/input/input-event-codes.h>
11
12/ {
13	model = "SAM E54 Xplained Pro";
14	compatible = "same54,xpro", "atmel,same54p20a", "atmel,same54";
15
16	chosen {
17		zephyr,console = &sercom2;
18		zephyr,shell-uart = &sercom2;
19		zephyr,sram = &sram0;
20		zephyr,flash = &flash0;
21	};
22
23	/* These aliases are provided for compatibility with samples */
24	aliases {
25		led0 = &led0;
26		pwm-led0 = &pwm_led0;
27		sw0 = &button0;
28		i2c-0 = &sercom7;
29	};
30
31	leds {
32		compatible = "gpio-leds";
33		led0: led_0 {
34			gpios = <&portc 18 GPIO_ACTIVE_LOW>;
35			label = "Yellow LED";
36		};
37	};
38
39	pwmleds {
40		compatible = "pwm-leds";
41		pwm_led0: pwm_led_0 {
42			pwms = <&tcc0 2 PWM_MSEC(20)>;
43		};
44	};
45
46	buttons {
47		compatible = "gpio-keys";
48		button0: button_0 {
49			gpios = <&portb 31 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
50			label = "SW0";
51			zephyr,code = <INPUT_KEY_0>;
52		};
53	};
54};
55
56&cpu0 {
57	clock-frequency = <120000000>;
58};
59
60&tcc0 {
61	status = "okay";
62	compatible = "atmel,sam0-tcc-pwm";
63	/* Gives a maximum period of 1.1s for 120MHz main clock */
64	prescaler = <8>;
65	#pwm-cells = <2>;
66
67	pinctrl-0 = <&pwm_default>;
68	pinctrl-names = "default";
69};
70
71&sercom2 {
72	status = "okay";
73	compatible = "atmel,sam0-uart";
74	current-speed = <115200>;
75	rxpo = <1>;
76	txpo = <0>;
77	#address-cells = <1>;
78	#size-cells = <0>;
79
80	pinctrl-0 = <&sercom2_uart_default>;
81	pinctrl-names = "default";
82};
83
84&sercom4 {
85	status = "okay";
86	compatible = "atmel,sam0-spi";
87	dipo = <3>;
88	dopo = <0>;
89	#address-cells = <1>;
90	#size-cells = <0>;
91
92	pinctrl-0 = <&sercom4_spi_default>;
93	pinctrl-names = "default";
94};
95
96&sercom7 {
97	status = "okay";
98	compatible = "atmel,sam0-i2c";
99	clock-frequency = <I2C_BITRATE_FAST>;
100	#address-cells = <1>;
101	#size-cells = <0>;
102
103	pinctrl-0 = <&sercom7_i2c_default>;
104	pinctrl-names = "default";
105
106	eeprom: eeprom@5e {
107		compatible = "atmel,24mac402";
108		reg = <0x5e>;
109	};
110};
111
112&adc0 {
113	status = "okay";
114};
115
116zephyr_udc0: &usb0 {
117	status = "okay";
118
119	pinctrl-0 = <&usb_dc_default>;
120	pinctrl-names = "default";
121};
122
123&gmac {
124	status = "okay";
125
126	pinctrl-0 = <&gmac_rmii>;
127	pinctrl-names = "default";
128
129	mac-eeprom = <&eeprom>;
130	phy-handle = <&phy>;
131};
132
133&mdio {
134	status = "okay";
135
136	pinctrl-0 = <&mdio_default>;
137	pinctrl-names = "default";
138
139	phy: ethernet-phy@0 {
140		compatible = "ethernet-phy";
141		status = "okay";
142		reg = <0>;
143	};
144};
145
146&flash0 {
147	partitions {
148		compatible = "fixed-partitions";
149		#address-cells = <1>;
150		#size-cells = <1>;
151
152		/*
153		 * The final 16 KiB is reserved for the application.
154		 * Storage partition will be used by FCB/LittleFS/NVS
155		 * if enabled.
156		 */
157		storage_partition: partition@fc000 {
158			label = "storage";
159			reg = <0x000fc000 0x00004000>;
160		};
161	};
162};
163