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