1/*
2 * Copyright (c) 2021 Laird Connectivity
3 * Copyright (c) 2024 Ezurio
4 *
5 * SPDX-License-Identifier: Apache-2.0
6 */
7
8/dts-v1/;
9#include <nordic/nrf52840_qiaa.dtsi>
10#include "bt610-pinctrl.dtsi"
11#include <zephyr/dt-bindings/input/input-event-codes.h>
12
13/ {
14	model = "Ezurio BT610 Sensor";
15	compatible = "ezurio,bt610";
16
17	chosen {
18		zephyr,console = &uart0;
19		zephyr,shell-uart = &uart0;
20		zephyr,uart-mcumgr = &uart0;
21		zephyr,bt-mon-uart = &uart0;
22		zephyr,bt-c2h-uart = &uart0;
23		zephyr,sram = &sram0;
24		zephyr,flash = &flash0;
25		zephyr,code-partition = &slot0_partition;
26		zephyr,ieee802154 = &ieee802154;
27	};
28
29	leds {
30		compatible = "gpio-leds";
31		led1: led_1 {
32			gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
33			label = "Red LED 1";
34		};
35		led2: led_2 {
36			gpios = <&gpio1 3 GPIO_ACTIVE_HIGH>;
37			label = "Green LED 2";
38		};
39	};
40
41	pwmleds {
42		compatible = "pwm-leds";
43
44		led1pwm: led_1_pwm {
45			pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
46			label = "Red PWM LED 1";
47		};
48
49		led2pwm: led_2_pwm {
50			pwms = <&pwm1 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
51			label = "Green PWM LED 2";
52		};
53	};
54
55	buttons {
56		compatible = "gpio-keys";
57		button1: button_1 {
58			gpios = <&gpio0 24 GPIO_PULL_UP>;
59			label = "Boot button switch 1 (SW1)";
60			zephyr,code = <INPUT_KEY_0>;
61		};
62		button2: button_2 {
63			gpios = <&gpio1 1 GPIO_PULL_UP>;
64			label = "Tamper switch 2 (SW2)";
65			zephyr,code = <INPUT_KEY_1>;
66		};
67	};
68
69	/* These aliases are provided for compatibility with samples */
70	aliases {
71		led0 = &led1;
72		led1 = &led2;
73		led0pwm = &led1pwm;
74		led1pwm = &led2pwm;
75		sw0 = &button1;
76		sw1 = &button2;
77		sw2 = &mag1;
78		mcuboot-button0 = &button1;
79		mcuboot-led0 = &led1;
80		watchdog0 = &wdt0;
81	};
82
83	mag1: mag_1 {
84		compatible = "honeywell,sm351lt";
85		gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
86	};
87
88	dinenable1: din_enable_1 {
89		compatible = "regulator-fixed";
90		regulator-name = "din_enable_1";
91		enable-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
92	};
93
94	dinenable2: din_enable_2 {
95		compatible = "regulator-fixed";
96		regulator-name = "din_enable_2";
97		enable-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
98	};
99
100	thermenable: therm_enable {
101		compatible = "regulator-fixed";
102		regulator-name = "therm_enable";
103		enable-gpios = <&gpio0 10 GPIO_ACTIVE_LOW>;
104	};
105
106	analogenable: analog_enable {
107		compatible = "regulator-fixed";
108		regulator-name = "analog_enable";
109		enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
110	};
111
112	highsupplyenable: high_supply_enable {
113		compatible = "regulator-fixed";
114		regulator-name = "high_supply_enable";
115		enable-gpios = <&gpio1 12 GPIO_ACTIVE_HIGH>;
116	};
117
118	batteryoutputenable: battery_output_enable {
119		compatible = "regulator-fixed";
120		regulator-name = "battery_output_enable";
121		enable-gpios = <&gpio0 30 GPIO_ACTIVE_HIGH>;
122	};
123};
124
125&reg1 {
126	regulator-initial-mode = <NRF5X_REG_MODE_DCDC>;
127};
128
129&pwm0 {
130	status = "okay";
131	pinctrl-0 = <&pwm0_default>;
132	pinctrl-1 = <&pwm0_sleep>;
133	pinctrl-names = "default", "sleep";
134};
135
136&pwm1 {
137	status = "okay";
138	pinctrl-0 = <&pwm1_default>;
139	pinctrl-1 = <&pwm1_sleep>;
140	pinctrl-names = "default", "sleep";
141};
142
143&adc {
144	status = "okay";
145};
146
147&gpiote {
148	status = "okay";
149};
150
151&uicr {
152	nfct-pins-as-gpios;
153	gpio-as-nreset;
154};
155
156&gpio0 {
157	status = "okay";
158};
159
160&gpio1 {
161	status = "okay";
162};
163
164&uart0 {
165	compatible = "nordic,nrf-uarte";
166	current-speed = <115200>;
167	status = "okay";
168	pinctrl-0 = <&uart0_default>;
169	pinctrl-1 = <&uart0_sleep>;
170	pinctrl-names = "default", "sleep";
171};
172
173&uart1 {
174	compatible = "nordic,nrf-uarte";
175	current-speed = <115200>;
176	status = "okay";
177	pinctrl-0 = <&uart1_default>;
178	pinctrl-1 = <&uart1_sleep>;
179	pinctrl-names = "default", "sleep";
180};
181
182&i2c0 {
183	compatible = "nordic,nrf-twi";
184	status = "okay";
185
186	pinctrl-0 = <&i2c0_default>;
187	pinctrl-1 = <&i2c0_sleep>;
188	pinctrl-names = "default", "sleep";
189	gpio_exp0: tca9538@70 {
190		compatible = "ti,tca9538";
191		reg = <0x70>;
192		gpio-controller;
193		#gpio-cells = <2>;
194		ngpios = <8>;
195		nint-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
196	};
197};
198
199&spi1 {
200	compatible = "nordic,nrf-spi";
201	status = "okay";
202	cs-gpios = <&gpio0 25 0>,
203		<&gpio0 31 0>;
204	pinctrl-0 = <&spi1_default>;
205	pinctrl-1 = <&spi1_sleep>;
206	pinctrl-names = "default", "sleep";
207};
208
209&qspi {
210	status = "okay";
211	pinctrl-0 = <&qspi_default>;
212	pinctrl-1 = <&qspi_sleep>;
213	pinctrl-names = "default", "sleep";
214	mx25r64: mx25r6435f@0 {
215		compatible = "nordic,qspi-nor";
216		reg = <0>;
217		writeoc = "pp4io";
218		readoc = "read4io";
219		sck-frequency = <8000000>;
220		jedec-id = [c2 28 17];
221		sfdp-bfp = [
222			e5 20 f1 ff  ff ff ff 03  44 eb 08 6b  08 3b 04 bb
223			ee ff ff ff  ff ff 00 ff  ff ff 00 ff  0c 20 0f 52
224			10 d8 00 ff  23 72 f5 00  82 ed 04 cc  44 83 68 44
225			30 b0 30 b0  f7 c4 d5 5c  00 be 29 ff  f0 d0 ff ff
226		];
227		size = <67108864>;
228		has-dpd;
229		t-enter-dpd = <10000>;
230		t-exit-dpd = <35000>;
231	};
232};
233
234&ieee802154 {
235	status = "okay";
236};
237
238&flash0 {
239	partitions {
240		compatible = "fixed-partitions";
241		#address-cells = <1>;
242		#size-cells = <1>;
243
244		/* 96K */
245		boot_partition: partition@0 {
246			label = "mcuboot";
247			reg = <0x00000000 0x00018000>;
248		};
249		/* 896K */
250		slot0_partition: partition@18000 {
251			label = "image-0";
252			reg = <0x00018000 0x000E0000>;
253		};
254
255		/*
256		 * The flash starting at 0x000f8000 and ending at
257		 * 0x000fffff is reserved for use by the application.
258		 */
259
260		/*
261		 * Storage partition will be used by FCB/NVS
262		 * if enabled. 32K
263		 */
264		storage_partition: partition@f8000 {
265			label = "storage";
266			reg = <0x000f8000 0x00008000>;
267		};
268	};
269};
270
271&mx25r64 {
272	partitions {
273		compatible = "fixed-partitions";
274		#address-cells = <1>;
275		#size-cells = <1>;
276
277		/* 896K */
278		slot1_partition: partition@0 {
279			label = "image-1";
280			reg = <0x00000000 0x000E0000>;
281		};
282		/* 16K */
283		scratch_partition: partition@E0000 {
284			label = "image-scratch";
285			reg = <0x000E0000 0x00004000>;
286		};
287		/* 112K */
288		customer_partition: partition@E4000 {
289			label = "customer-storage";
290			reg = <0x000E4000 0x0001C000>;
291		};
292		/* 7MB */
293		lfs_partition: partition@100000 {
294			label = "lfs_storage";
295			reg = <0x00100000 0x00700000>;
296		};
297	};
298};
299