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