1/*
2 * Copyright (c) 2024 Daikin Comfort Technologies North America, Inc.
3 * Copyright (c) 2020 TriaGnoSys GmbH
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8/dts-v1/;
9#include <silabs/efr32mg24b020f1536im40.dtsi>
10#include "sparkfun_thing_plus_matter_mgm240p-pinctrl.dtsi"
11#include <zephyr/dt-bindings/input/input-event-codes.h>
12#include <zephyr/dt-bindings/regulator/silabs_dcdc.h>
13
14/ {
15	 model = "Sparkfun MGM240P (Sparkfun Thing Plus Matter)";
16	 compatible = "sparkfun,sparkfun_thing_plus_mgm240p", "silabs,efr32mg24";
17
18	chosen {
19		zephyr,console = &usart0;
20		zephyr,shell-uart = &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 = &blue_led;
29		spi0 = &eusart1;
30		watchdog0 = &wdog0;
31	};
32
33	leds {
34		compatible = "gpio-leds";
35		blue_led: led_1 {
36			gpios = <&gpioa 8 GPIO_ACTIVE_LOW>;
37		};
38
39	};
40
41	wake_up_trigger: gpio-wake-up  {
42		compatible = "silabs,gecko-wake-up-trigger";
43		gpios = <&gpioa 5 GPIO_ACTIVE_LOW>;
44	};
45
46};
47
48&cpu0 {
49	clock-frequency = <78000000>;
50};
51
52&hfxo {
53	status = "okay";
54	ctune = <140>;
55	precision = <50>;
56};
57
58&hfrcodpll {
59	clock-frequency = <DT_FREQ_M(78)>;
60	clocks = <&hfxo>;
61	dpll-n = <3839>;
62	dpll-m = <1919>;
63	dpll-edge = "fall";
64	dpll-lock = "phase";
65	dpll-autorecover;
66};
67
68&usart0 {
69	current-speed = <115200>;
70	pinctrl-0 = <&usart0_default>;
71	pinctrl-names = "default";
72	status = "okay";
73};
74
75&eusart1 {
76	compatible = "silabs,gecko-spi-eusart";
77
78	#address-cells = <1>;
79	#size-cells = <0>;
80	pinctrl-0 = <&eusart1_default>;
81	pinctrl-names = "default";
82
83	status = "okay";
84};
85
86&i2c0 {
87	pinctrl-0 = <&i2c0_default>;
88	pinctrl-names = "default";
89	status = "okay";
90
91};
92
93&gpio {
94	status = "okay";
95};
96
97&gpioa {
98	status = "okay";
99};
100
101&gpiob {
102	status = "okay";
103};
104
105&gpioc {
106	status = "okay";
107};
108
109&gpiod {
110	status = "okay";
111};
112
113&wdog0 {
114	status = "okay";
115};
116
117&se {
118	status = "okay";
119};
120
121&dcdc {
122	status = "okay";
123	regulator-boot-on;
124	regulator-initial-mode = <SILABS_DCDC_MODE_BUCK>;
125	silabs,pfmx-peak-current-milliamp = <50>;
126};
127
128&flash0 {
129	partitions {
130		compatible = "fixed-partitions";
131		#address-cells = <1>;
132		#size-cells = <1>;
133
134		/* Reserve 48 kB for the bootloader */
135		boot_partition: partition@0 {
136			label = "mcuboot";
137			reg = <0x0 0x0000c000>;
138			read-only;
139		};
140
141		/* Reserve 464 kB for the application in slot 0 */
142		slot0_partition: partition@c000 {
143			label = "storage";
144			reg = <0x0000c000 0x00074000>;
145		};
146
147		/* Reserve 464 kB for the application in slot 1 */
148		slot1_partition: partition@80000 {
149			label = "image-0";
150			reg = <0x00080000 0x00074000>;
151		};
152
153		/* Reserve 32 kB for the scratch partition */
154		scratch_partition: partition@f4000 {
155			label = "image-1";
156			reg = <0x000f4000 0x00008000>;
157		};
158
159		/* Set 528Kb of storage at the end of the 1024Kb of flash */
160		storage_partition: partition@fc000 {
161			label = "image-scratch";
162			reg = <0x000fc000 0x00084000>;
163		};
164	};
165};
166
167&adc0 {
168	status = "okay";
169};
170
171&stimer0 {
172	status = "okay";
173};
174
175&bt_hci_silabs {
176	status = "okay";
177};
178