1/*
2 * Copyright (c) 2023 Fr. Sauter AG
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/dts-v1/;
8#include <silabs/efr32mg24b220f1536im48.dtsi>
9#include <zephyr/dt-bindings/input/input-event-codes.h>
10#include "efr32_radio_brd4187c-pinctrl.dtsi"
11
12/ {
13	model = "Silicon Labs BRD4187C (Mighty Gecko Radio Board)";
14	compatible = "silabs,efr32mg24_brd4187c", "silabs,efr32mg24";
15
16	chosen {
17		zephyr,console = &usart0;
18		zephyr,shell-uart = &usart0;
19		zephyr,sram = &sram0;
20		zephyr,flash = &flash0;
21		zephyr,code-partition = &slot0_partition;
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 = <&gpiob GECKO_PIN(2) GPIO_ACTIVE_HIGH>;
37			label = "LED 0";
38		};
39		led1: led_1 {
40			gpios = <&gpiob GECKO_PIN(4) GPIO_ACTIVE_HIGH>;
41			label = "LED 1";
42		};
43	};
44
45	buttons {
46		compatible = "gpio-keys";
47		button0: button_0 {
48			gpios = <&gpiob GECKO_PIN(1) GPIO_ACTIVE_LOW>;
49			label = "User Push Button 0";
50			zephyr,code = <INPUT_KEY_0>;
51		};
52		button1: button_1 {
53			gpios = <&gpiob GECKO_PIN(3) GPIO_ACTIVE_LOW>;
54			label = "User Push Button 1";
55			zephyr,code = <INPUT_KEY_1>;
56		};
57	};
58
59};
60
61&cpu0 {
62	clock-frequency = <39000000>;
63};
64
65&pstate_em3 {
66	status = "disabled";
67};
68
69&usart0 {
70	current-speed = <115200>;
71	pinctrl-0 = <&usart0_default>;
72	pinctrl-names = "default";
73	status = "okay";
74};
75
76&gpio {
77	location-swo = <0>;
78	status = "okay";
79};
80
81&gpioa {
82	status = "okay";
83};
84
85&gpiob {
86	status = "okay";
87
88	board-controller-enable {
89		gpio-hog;
90		gpios = <0 GPIO_ACTIVE_HIGH>;
91		output-high;
92	};
93};
94
95&gpioc {
96	status = "okay";
97};
98
99&gpiod {
100	status = "okay";
101};
102
103&wdog0 {
104	status = "okay";
105};
106
107&burtc0 {
108	status = "okay";
109};
110
111&stimer0 {
112	status = "okay";
113};
114
115&se {
116	status = "okay";
117};
118
119&flash0 {
120	partitions {
121		compatible = "fixed-partitions";
122		#address-cells = <1>;
123		#size-cells = <1>;
124
125		/* Reserve 48 kB for the bootloader */
126		boot_partition: partition@0 {
127			label = "mcuboot";
128			reg = <0x0 DT_SIZE_K(48)>;
129			read-only;
130		};
131
132		/* Reserve 720 kB for the application in slot 0 */
133		slot0_partition: partition@c000 {
134			label = "image-0";
135			reg = <0x0000c000 0x000B4000>;
136		};
137
138		/* Reserve 720 kB for the application in slot 1 */
139		slot1_partition: partition@C0000 {
140			label = "image-1";
141			reg = <0x000C0000 0x000B4000>;
142		};
143
144		/* Reserve 32 kB for the scratch partition */
145		scratch_partition: partition@174000 {
146			label = "image-scratch";
147			reg = <0x00174000 DT_SIZE_K(32)>;
148		};
149
150		/* Set 16 kB of storage at the end of the 1536 kB of flash */
151		storage_partition: partition@17c000 {
152			label = "storage";
153			reg = <0x0017c000 DT_SIZE_K(16)>;
154		};
155	};
156};
157