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 "atsame54_xpro-pinctrl.dtsi"
10#include <zephyr/dt-bindings/input/input-event-codes.h>
11
12/ {
13	model = "SAM E54 Xplained Pro";
14	compatible = "atsame54,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&tcc0 {
57	status = "okay";
58	compatible = "atmel,sam0-tcc-pwm";
59	/* Gives a maximum period of 1.1s for 120MHz main clock */
60	prescaler = <8>;
61	#pwm-cells = <2>;
62
63	pinctrl-0 = <&pwm_default>;
64	pinctrl-names = "default";
65};
66
67&sercom2 {
68	status = "okay";
69	compatible = "atmel,sam0-uart";
70	current-speed = <115200>;
71	rxpo = <1>;
72	txpo = <0>;
73	#address-cells = <1>;
74	#size-cells = <0>;
75
76	pinctrl-0 = <&sercom2_uart_default>;
77	pinctrl-names = "default";
78};
79
80&sercom4 {
81	status = "okay";
82	compatible = "atmel,sam0-spi";
83	dipo = <3>;
84	dopo = <0>;
85	#address-cells = <1>;
86	#size-cells = <0>;
87
88	pinctrl-0 = <&sercom4_spi_default>;
89	pinctrl-names = "default";
90};
91
92&sercom7 {
93	status = "okay";
94	compatible = "atmel,sam0-i2c";
95	clock-frequency = <I2C_BITRATE_FAST>;
96	#address-cells = <1>;
97	#size-cells = <0>;
98
99	pinctrl-0 = <&sercom7_i2c_default>;
100	pinctrl-names = "default";
101
102	eeprom: eeprom@5e {
103		compatible = "atmel,24mac402";
104		reg = <0x5e>;
105	};
106};
107
108&adc0 {
109	status = "okay";
110};
111
112zephyr_udc0: &usb0 {
113	status = "okay";
114
115	pinctrl-0 = <&usb_dc_default>;
116	pinctrl-names = "default";
117};
118
119&gmac {
120	status = "okay";
121
122	pinctrl-0 = <&gmac_rmii>;
123	pinctrl-names = "default";
124
125	mac-eeprom = <&eeprom>;
126	phy-handle = <&phy>;
127};
128
129&mdio {
130	status = "okay";
131
132	pinctrl-0 = <&mdio_default>;
133	pinctrl-names = "default";
134
135	phy: ethernet-phy@0 {
136		compatible = "ethernet-phy";
137		status = "okay";
138		reg = <0>;
139	};
140};
141
142&flash0 {
143	partitions {
144		compatible = "fixed-partitions";
145		#address-cells = <1>;
146		#size-cells = <1>;
147
148		/*
149		 * The final 16 KiB is reserved for the application.
150		 * Storage partition will be used by FCB/LittleFS/NVS
151		 * if enabled.
152		 */
153		storage_partition: partition@fc000 {
154			label = "storage";
155			reg = <0x000fc000 0x00004000>;
156		};
157	};
158};
159