1/*
2 * Copyright (c) 2020 TriaGnoSys GmbH
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <silabs/efr32mg24b210f1536im48.dtsi>
9#include <zephyr/dt-bindings/input/input-event-codes.h>
10#include <zephyr/dt-bindings/regulator/silabs_dcdc.h>
11#include "xg24_ek2703a-pinctrl.dtsi"
12
13/ {
14	model = "Silicon Labs BRD2703A (xG24 Explorer Kit)";
15	compatible = "silabs,xg24_ek2703a", "silabs,efr32mg24";
16
17	chosen {
18		zephyr,console = &usart0;
19		zephyr,shell-uart = &usart0;
20		zephyr,uart-pipe = &usart0;
21		zephyr,sram = &sram0;
22		zephyr,flash = &flash0;
23		zephyr,code-partition = &slot0_partition;
24		zephyr,bt-hci = &bt_hci_silabs;
25	};
26
27	aliases {
28		led0 = &led0;
29		led1 = &led1;
30		sw0 = &button0;
31		sw1 = &button1;
32		watchdog0 = &wdog0;
33	};
34
35	leds {
36		compatible = "gpio-leds";
37		led0: led_0 {
38			gpios = <&gpioa 4 GPIO_ACTIVE_LOW>;
39		};
40		led1: led_1 {
41			gpios = <&gpioa 7 GPIO_ACTIVE_LOW>;
42		};
43	};
44
45	buttons {
46		compatible = "gpio-keys";
47		button0: button_0 {
48			gpios = <&gpiob 2 GPIO_ACTIVE_LOW>;
49			zephyr,code = <INPUT_KEY_0>;
50		};
51		button1: button_1 {
52			gpios = <&gpiob 3 GPIO_ACTIVE_LOW>;
53			zephyr,code = <INPUT_KEY_1>;
54		};
55	};
56
57	wake_up_trigger: gpio-wake-up  {
58		compatible = "silabs,gecko-wake-up-trigger";
59		gpios = <&gpioa 5 GPIO_ACTIVE_LOW>;
60	};
61};
62
63&cpu0 {
64	clock-frequency = <78000000>;
65};
66
67&hfxo {
68	status = "okay";
69	ctune = <140>;
70	precision = <50>;
71};
72
73&lfxo {
74	status = "okay";
75	ctune = <63>;
76	precision = <50>;
77};
78
79&hfrcodpll {
80	clock-frequency = <DT_FREQ_M(78)>;
81	clocks = <&hfxo>;
82	dpll-n = <3839>;
83	dpll-m = <1919>;
84	dpll-edge = "fall";
85	dpll-lock = "phase";
86	dpll-autorecover;
87};
88
89&em23grpaclk {
90	clocks = <&lfxo>;
91};
92
93&em4grpaclk {
94	clocks = <&lfxo>;
95};
96
97&sysrtcclk {
98	clocks = <&lfxo>;
99};
100
101&wdog0clk {
102	clocks = <&lfxo>;
103};
104
105&wdog1clk {
106	clocks = <&lfxo>;
107};
108
109&usart0 {
110	current-speed = <115200>;
111	pinctrl-0 = <&usart0_default>;
112	pinctrl-names = "default";
113	status = "okay";
114};
115
116&i2c0 {
117	pinctrl-0 = <&i2c0_default>;
118	pinctrl-names = "default";
119	status = "okay";
120};
121
122&gpio {
123	status = "okay";
124};
125
126&gpioa {
127	status = "okay";
128};
129
130&gpiob {
131	status = "okay";
132};
133
134&gpioc {
135	status = "okay";
136};
137
138&gpiod {
139	status = "okay";
140};
141
142&wdog0 {
143	status = "okay";
144};
145
146&se {
147	status = "okay";
148};
149
150&dcdc {
151	status = "okay";
152	regulator-boot-on;
153	regulator-initial-mode = <SILABS_DCDC_MODE_BUCK>;
154	silabs,pfmx-peak-current-milliamp = <120>;
155};
156
157&flash0 {
158	partitions {
159		compatible = "fixed-partitions";
160		#address-cells = <1>;
161		#size-cells = <1>;
162
163		/* Reserve 48 kB for the bootloader */
164		boot_partition: partition@0 {
165			label = "mcuboot";
166			reg = <0x0 0x0000c000>;
167			read-only;
168		};
169
170		/* Reserve 464 kB for the application in slot 0 */
171		slot0_partition: partition@c000 {
172			label = "image-0";
173			reg = <0x0000c000 0x00074000>;
174		};
175
176		/* Reserve 464 kB for the application in slot 1 */
177		slot1_partition: partition@80000 {
178			label = "image-1";
179			reg = <0x00080000 0x00074000>;
180		};
181
182		/* Reserve 32 kB for the scratch partition */
183		scratch_partition: partition@f4000 {
184			label = "image-scratch";
185			reg = <0x000f4000 0x00008000>;
186		};
187
188		/* Set 528Kb of storage at the end of the 1024Kb of flash */
189		storage_partition: partition@fc000 {
190			label = "storage";
191			reg = <0x000fc000 0x00084000>;
192		};
193	};
194};
195
196&adc0 {
197	status = "okay";
198};
199
200&sysrtc0 {
201	status = "okay";
202};
203
204&bt_hci_silabs {
205	status = "okay";
206};
207