1/*
2 * Copyright (c) 2019 Interay Solutions B.V.
3 * Copyright (c) 2019 Oane Kingma
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8/dts-v1/;
9#include <silabs/efm32gg11b820f2048gl192.dtsi>
10#include <zephyr/dt-bindings/input/input-event-codes.h>
11#include "slstk3701a-pinctrl.dtsi"
12
13/ {
14	model = "Silicon Labs EFM32GG11 SLSTK3701A board";
15	compatible = "silabs,slstk3701a", "silabs,efm32gg11b";
16
17	chosen {
18		zephyr,console = &usart4;
19		zephyr,shell-uart = &usart4;
20		zephyr,sram = &sram0;
21		zephyr,flash = &flash0;
22	};
23
24	/* These aliases are provided for compatibility with samples */
25	aliases {
26		led0 = &led0;
27		led1 = &led1;
28		sw0 = &button0;
29		sw1 = &button1;
30		watchdog0 = &wdog0;
31	};
32
33	leds {
34		compatible = "gpio-leds";
35		led0: led_0 {
36			gpios = <&gpioh 10 GPIO_ACTIVE_LOW>;
37			label = "LED 0";
38		};
39		led1: led_1 {
40			gpios = <&gpioh 13 GPIO_ACTIVE_LOW>;
41			label = "LED 1";
42		};
43	};
44
45	buttons {
46		compatible = "gpio-keys";
47		button0: button_0 {
48			/* gpio flags need validation */
49			gpios = <&gpioc 8 GPIO_ACTIVE_LOW>;
50			label = "User Push Button 0";
51			zephyr,code = <INPUT_KEY_0>;
52		};
53		button1: button_1 {
54			/* gpio flags need validation */
55			gpios = <&gpioc 9 GPIO_ACTIVE_LOW>;
56			label = "User Push Button 1";
57			zephyr,code = <INPUT_KEY_1>;
58		};
59	};
60};
61
62&usart0 {
63	current-speed = <115200>;
64	pinctrl-0 = <&usart0_default>;
65	pinctrl-names = "default";
66	status = "okay";
67};
68
69&usart4 {
70	current-speed = <115200>;
71	pinctrl-0 = <&usart4_default>;
72	pinctrl-names = "default";
73	status = "okay";
74};
75
76&leuart0 {
77	current-speed = <9600>;
78	location-rx = <GECKO_LOCATION(18) GECKO_PORT_D GECKO_PIN(11)>;
79	location-tx = <GECKO_LOCATION(18) GECKO_PORT_D GECKO_PIN(10)>;
80	status = "okay";
81};
82
83&i2c0 {
84	pinctrl-0 = <&i2c0_default>;
85	pinctrl-names = "default";
86	status = "okay";
87};
88
89&i2c1 {
90	pinctrl-0 = <&i2c1_default>;
91	pinctrl-names = "default";
92	status = "okay";
93};
94
95&i2c2 {
96	pinctrl-0 = <&i2c2_default>;
97	pinctrl-names = "default";
98	status = "okay";
99};
100
101&rtcc0 {
102	prescaler = <1>;
103	status = "okay";
104};
105
106&gpio {
107	location-swo = <0>;
108	status = "okay";
109};
110
111&gpioa {
112	status = "okay";
113};
114
115&gpiob {
116	status = "okay";
117};
118
119&gpioc {
120	status = "okay";
121};
122
123&gpiod {
124	status = "okay";
125};
126
127&gpioe {
128	status = "okay";
129
130	board-controller-enable {
131		gpio-hog;
132		gpios = <1 GPIO_ACTIVE_HIGH>;
133		output-high;
134	};
135};
136
137&gpiof {
138	status = "okay";
139};
140
141&gpiog {
142	status = "okay";
143};
144
145&gpioh {
146	status = "okay";
147};
148
149&gpioi {
150	status = "okay";
151};
152
153&eth0 {
154	/* PHY address = 0 */
155	phy-address = <0>;
156
157	/* PHY management pins */
158	location-mdio        = <GECKO_LOCATION(1)>;
159	location-phy_mdc     = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(14)>;
160	location-phy_mdio    = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(13)>;
161
162	/* RMII interface pins */
163	location-rmii        = <GECKO_LOCATION(1)>;
164	location-rmii_refclk = <GECKO_LOCATION(5) GECKO_PORT_D GECKO_PIN(10)>;
165	location-rmii_crs_dv = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(11)>;
166	location-rmii_txd0   = <GECKO_LOCATION(1) GECKO_PORT_F GECKO_PIN(7)>;
167	location-rmii_txd1   = <GECKO_LOCATION(1) GECKO_PORT_F GECKO_PIN(6)>;
168	location-rmii_tx_en  = <GECKO_LOCATION(1) GECKO_PORT_F GECKO_PIN(8)>;
169	location-rmii_rxd0   = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(9)>;
170	location-rmii_rxd1   = <GECKO_LOCATION(1) GECKO_PORT_F GECKO_PIN(9)>;
171	location-rmii_rx_er  = <GECKO_LOCATION(1) GECKO_PORT_D GECKO_PIN(12)>;
172
173	status = "okay";
174};
175
176&flash0 {
177
178	partitions {
179		compatible = "fixed-partitions";
180		#address-cells = <1>;
181		#size-cells = <1>;
182
183		/* Set 12Kb of storage at the end of the 2048Kb of flash */
184		storage_partition: partition@1fd000 {
185			label = "storage";
186			reg = <0x001fd000 0x00003000>;
187		};
188	};
189};
190
191&wdog0 {
192	status = "okay";
193};
194
195&trng0 {
196	status = "okay";
197};
198
199&cpu0 {
200	clock-frequency = <72000000>;
201};
202