43 #include "sdk_config.h"
44 #include "drv_ext_light.h"
45 #include "drv_ext_gpio.h"
47 #include "nrf_saadc.h"
49 #define MPU9250_ADDR 0x68
50 #define LPS22HB_ADDR 0x5C
51 #define BH1745_ADDR 0x38
52 #define SX1509_ADDR 0x3E
53 #define CCS811_ADDR 0x5A
54 #define HTS221_ADDR 0x5F
56 #if defined(THINGY_HW_v0_8_0)
57 #define LIS2DH12_ADDR 0x18
58 #elif defined(THINGY_HW_v0_9_0)
59 #define LIS2DH12_ADDR 0x18
61 #define LIS2DH12_ADDR 0x19
64 #define TWI_SENSOR_INSTANCE 0
76 #define NRF_PIN_OUTPUT_CLEAR {NRF_GPIO_PIN_DIR_OUTPUT, \
77 NRF_GPIO_PIN_INPUT_DISCONNECT, \
78 NRF_GPIO_PIN_NOPULL, \
80 NRF_GPIO_PIN_NOSENSE, \
83 #define NRF_PIN_OUTPUT_SET {NRF_GPIO_PIN_DIR_OUTPUT, \
84 NRF_GPIO_PIN_INPUT_DISCONNECT, \
85 NRF_GPIO_PIN_NOPULL, \
87 NRF_GPIO_PIN_NOSENSE, \
90 #define NRF_PIN_DISCON_PULLUP {NRF_GPIO_PIN_DIR_INPUT, \
91 NRF_GPIO_PIN_INPUT_DISCONNECT, \
92 NRF_GPIO_PIN_PULLUP, \
94 NRF_GPIO_PIN_NOSENSE, \
97 #define NRF_PIN_DISCON_NOPULL {NRF_GPIO_PIN_DIR_INPUT, \
98 NRF_GPIO_PIN_INPUT_DISCONNECT, \
99 NRF_GPIO_PIN_NOPULL, \
101 NRF_GPIO_PIN_NOSENSE, \
104 #define NRF_PIN_DISCON_PULLDOWN {NRF_GPIO_PIN_DIR_INPUT, \
105 NRF_GPIO_PIN_INPUT_DISCONNECT, \
106 NRF_GPIO_PIN_PULLDOWN, \
108 NRF_GPIO_PIN_NOSENSE, \
112 #define SX_PIN_OUTPUT_CLEAR {DRV_EXT_GPIO_PIN_DIR_OUTPUT, \
113 DRV_EXT_GPIO_PIN_INPUT_BUF_ENABLED, \
114 DRV_EXT_GPIO_PIN_NOPULL, \
115 DRV_EXT_GPIO_PIN_DRIVE_PUSHPULL, \
116 DRV_EXT_GPIO_PIN_INCREASED_SLEWRATE_DISABLED, \
119 #define SX_PIN_OUTPUT_SET {DRV_EXT_GPIO_PIN_DIR_OUTPUT, \
120 DRV_EXT_GPIO_PIN_INPUT_BUF_ENABLED, \
121 DRV_EXT_GPIO_PIN_NOPULL, \
122 DRV_EXT_GPIO_PIN_DRIVE_PUSHPULL, \
123 DRV_EXT_GPIO_PIN_INCREASED_SLEWRATE_DISABLED, \
126 #define SX_PIN_INPUT_NOPULL {DRV_EXT_GPIO_PIN_DIR_INPUT, \
127 DRV_EXT_GPIO_PIN_INPUT_BUF_ENABLED, \
128 DRV_EXT_GPIO_PIN_NOPULL, \
129 DRV_EXT_GPIO_PIN_DRIVE_PUSHPULL, \
130 DRV_EXT_GPIO_PIN_INCREASED_SLEWRATE_DISABLED, \
133 #define SX_PIN_INPUT_PULLDOWN {DRV_EXT_GPIO_PIN_DIR_INPUT, \
134 DRV_EXT_GPIO_PIN_INPUT_BUF_ENABLED, \
135 DRV_EXT_GPIO_PIN_PULLDOWN, \
136 DRV_EXT_GPIO_PIN_DRIVE_PUSHPULL, \
137 DRV_EXT_GPIO_PIN_INCREASED_SLEWRATE_DISABLED, \
140 #define SX_PIN_INPUT_PULLUP {DRV_EXT_GPIO_PIN_DIR_INPUT, \
141 DRV_EXT_GPIO_PIN_INPUT_BUF_ENABLED, \
142 DRV_EXT_GPIO_PIN_PULLUP, \
143 DRV_EXT_GPIO_PIN_DRIVE_PUSHPULL, \
144 DRV_EXT_GPIO_PIN_INCREASED_SLEWRATE_DISABLED, \
149 nrf_gpio_pin_dir_t dir;
150 nrf_gpio_pin_input_t input;
151 nrf_gpio_pin_pull_t pull;
152 nrf_gpio_pin_drive_t drive;
153 nrf_gpio_pin_sense_t sense;
154 pin_output_state_t state;
164 pin_output_state_t state;
174 #define SX_IOEXT_NUM_PINS 16
177 #define IOEXT_PIN00_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
180 #define IOEXT_PIN01_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
183 #define IOEXT_PIN02_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
185 #if defined(THINGY_HW_v0_7_0)
186 #define SX_BAT_CHG_EN 3
187 #define IOEXT_PIN03_SYSTEM_DEFAULT_CFG SX_PIN_INPUT_NOPULL
188 #elif defined(THINGY_HW_v0_8_0)
189 #define SX_BAT_CHG_EN 3
190 #define IOEXT_PIN03_SYSTEM_DEFAULT_CFG SX_PIN_INPUT_NOPULL
193 #define IOEXT_PIN03_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
196 #if defined(THINGY_HW_v0_7_0)
197 #define SX_SPK_PWR_CTRL 4
198 #define IOEXT_PIN04_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
199 #elif defined(THINGY_HW_v0_8_0)
200 #define SX_SPK_PWR_CTRL 4
201 #define IOEXT_PIN04_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
203 #define SX_BAT_MON_EN 4
204 #define IOEXT_PIN04_SYSTEM_DEFAULT_CFG SX_PIN_INPUT_NOPULL
207 #define SX_LIGHTWELL_G 5
208 #define IOEXT_PIN05_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
210 #define SX_LIGHTWELL_B 6
211 #define IOEXT_PIN06_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
213 #define SX_LIGHTWELL_R 7
214 #define IOEXT_PIN07_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
216 #if defined(THINGY_HW_v0_7_0)
217 #define SX_MPU_PWR_CTRL 8
218 #define IOEXT_PIN08_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
219 #elif defined(THINGY_HW_v0_8_0)
220 #define SX_MPU_PWR_CTRL 8
221 #define IOEXT_PIN08_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
222 #elif defined(THINGY_HW_v0_9_0)
223 #define SX_MPU_PWR_CTRL 8
224 #define IOEXT_PIN08_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
226 #define SX_MPU_PWR_CTRL 8
227 #define IOEXT_PIN08_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
230 #if defined(THINGY_HW_v0_7_0)
231 #define SX_MIC_PWR_CTRL 9
232 #define IOEXT_PIN09_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
233 #elif defined(THINGY_HW_v0_8_0)
234 #define SX_MIC_PWR_CTRL 9
235 #define IOEXT_PIN09_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
236 #elif defined(THINGY_HW_v0_9_0)
237 #define SX_MIC_PWR_CTRL 9
238 #define IOEXT_PIN09_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
240 #define SX_MIC_PWR_CTRL 9
241 #define IOEXT_PIN09_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
244 #if defined(THINGY_HW_v0_7_0)
245 #define SX_CCS_PWR_CTRL 10
246 #define IOEXT_PIN10_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
247 #elif defined(THINGY_HW_v0_8_0)
248 #define SX_CCS_PWR_CTRL 10
249 #define IOEXT_PIN10_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
250 #elif defined(THINGY_HW_v0_9_0)
251 #define SX_CCS_PWR_CTRL 10
252 #define IOEXT_PIN10_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
254 #define SX_CCS_PWR_CTRL 10
255 #define IOEXT_PIN10_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_CLEAR
258 #define SX_CCS_RESET 11
259 #define IOEXT_PIN11_SYSTEM_DEFAULT_CFG SX_PIN_INPUT_PULLDOWN
261 #define SX_CCS_WAKE 12
262 #define IOEXT_PIN12_SYSTEM_DEFAULT_CFG SX_PIN_INPUT_PULLDOWN
264 #define SX_SENSE_LED_R 13
265 #define IOEXT_PIN13_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
267 #define SX_SENSE_LED_G 14
268 #define IOEXT_PIN14_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
270 #define SX_SENSE_LED_B 15
271 #define IOEXT_PIN15_SYSTEM_DEFAULT_CFG SX_PIN_OUTPUT_SET
273 #define IOEXT_SYSTEM_DEFAULT_PIN_CFG \
275 IOEXT_PIN00_SYSTEM_DEFAULT_CFG, \
276 IOEXT_PIN01_SYSTEM_DEFAULT_CFG, \
277 IOEXT_PIN02_SYSTEM_DEFAULT_CFG, \
278 IOEXT_PIN03_SYSTEM_DEFAULT_CFG, \
279 IOEXT_PIN04_SYSTEM_DEFAULT_CFG, \
280 IOEXT_PIN05_SYSTEM_DEFAULT_CFG, \
281 IOEXT_PIN06_SYSTEM_DEFAULT_CFG, \
282 IOEXT_PIN07_SYSTEM_DEFAULT_CFG, \
283 IOEXT_PIN08_SYSTEM_DEFAULT_CFG, \
284 IOEXT_PIN09_SYSTEM_DEFAULT_CFG, \
285 IOEXT_PIN10_SYSTEM_DEFAULT_CFG, \
286 IOEXT_PIN11_SYSTEM_DEFAULT_CFG, \
287 IOEXT_PIN12_SYSTEM_DEFAULT_CFG, \
288 IOEXT_PIN13_SYSTEM_DEFAULT_CFG, \
289 IOEXT_PIN14_SYSTEM_DEFAULT_CFG, \
290 IOEXT_PIN15_SYSTEM_DEFAULT_CFG \
294 #define NRF_NUM_GPIO_PINS 32
297 #define PIN00_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
300 #define PIN01_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
303 #define PIN02_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
306 #define PIN03_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
309 #define PIN04_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
311 #if defined(THINGY_HW_v0_7_0)
313 #define PIN05_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
314 #elif defined(THINGY_HW_v0_8_0)
316 #define PIN05_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
317 #elif defined(THINGY_HW_v0_9_0)
319 #define PIN05_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
321 #define IOEXT_OSCIO 5
322 #define PIN05_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
326 #define PIN06_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
329 #define PIN07_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
332 #define PIN08_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
335 #define PIN09_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
338 #define PIN10_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
341 #define PIN11_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLUP
344 #define PIN12_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
346 #define USB_DETECT 13
347 #define PIN13_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
349 #define TWI_SDA_EXT 14
350 #define PIN14_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
352 #define TWI_SCL_EXT 15
353 #define PIN15_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
356 #define PIN16_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
358 #define BAT_CHG_STAT 17
359 #define PIN17_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
362 #define PIN18_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
365 #define PIN19_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
368 #define PIN20_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
371 #define PIN21_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
374 #define PIN22_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
377 #if defined(THINGY_HW_v0_7_0)
378 #define PIN23_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
379 #elif defined(THINGY_HW_v0_8_0)
380 #define PIN23_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
381 #elif defined(THINGY_HW_v0_9_0)
382 #define PIN23_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
384 #define PIN23_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
388 #if defined(THINGY_HW_v0_7_0)
389 #define PIN24_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
390 #elif defined(THINGY_HW_v0_8_0)
391 #define PIN24_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
392 #elif defined(THINGY_HW_v0_9_0)
393 #define PIN24_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
395 #define PIN24_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
399 #define PIN25_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
402 #define PIN26_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
405 #define PIN27_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
408 #define BATTERY_AIN NRF_SAADC_INPUT_AIN4
409 #define PIN28_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
411 #if defined(THINGY_HW_v0_7_0)
413 #define PIN29_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
414 #elif defined(THINGY_HW_v0_8_0)
416 #define PIN29_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
417 #elif defined(THINGY_HW_v0_9_0)
418 #define SPK_PWR_CTRL 29
419 #define PIN29_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
421 #define SPK_PWR_CTRL 29
422 #define PIN29_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
428 #define VDD_PWR_CTRL 30
429 #if defined(THINGY_HW_v0_7_0)
430 #define PIN30_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_SET
431 #elif defined(THINGY_HW_v0_8_0)
432 #define PIN30_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_SET
433 #elif defined(THINGY_HW_v0_9_0)
434 #define PIN30_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_SET
436 #define PIN30_SYSTEM_DEFAULT_CFG NRF_PIN_OUTPUT_CLEAR
440 #if defined(THINGY_HW_v0_7_0)
441 #define PIN31_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
442 #elif defined(THINGY_HW_v0_8_0)
443 #define PIN31_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
444 #elif defined(THINGY_HW_v0_9_0)
445 #define PIN31_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_NOPULL
447 #define PIN31_SYSTEM_DEFAULT_CFG NRF_PIN_DISCON_PULLDOWN
450 #define NRF_SYSTEM_DEFAULT_PIN_CFG \
452 PIN00_SYSTEM_DEFAULT_CFG, \
453 PIN01_SYSTEM_DEFAULT_CFG, \
454 PIN02_SYSTEM_DEFAULT_CFG, \
455 PIN03_SYSTEM_DEFAULT_CFG, \
456 PIN04_SYSTEM_DEFAULT_CFG, \
457 PIN05_SYSTEM_DEFAULT_CFG, \
458 PIN06_SYSTEM_DEFAULT_CFG, \
459 PIN07_SYSTEM_DEFAULT_CFG, \
460 PIN08_SYSTEM_DEFAULT_CFG, \
461 PIN09_SYSTEM_DEFAULT_CFG, \
462 PIN10_SYSTEM_DEFAULT_CFG, \
463 PIN11_SYSTEM_DEFAULT_CFG, \
464 PIN12_SYSTEM_DEFAULT_CFG, \
465 PIN13_SYSTEM_DEFAULT_CFG, \
466 PIN14_SYSTEM_DEFAULT_CFG, \
467 PIN15_SYSTEM_DEFAULT_CFG, \
468 PIN16_SYSTEM_DEFAULT_CFG, \
469 PIN17_SYSTEM_DEFAULT_CFG, \
470 PIN18_SYSTEM_DEFAULT_CFG, \
471 PIN19_SYSTEM_DEFAULT_CFG, \
472 PIN20_SYSTEM_DEFAULT_CFG, \
473 PIN21_SYSTEM_DEFAULT_CFG, \
474 PIN22_SYSTEM_DEFAULT_CFG, \
475 PIN23_SYSTEM_DEFAULT_CFG, \
476 PIN24_SYSTEM_DEFAULT_CFG, \
477 PIN25_SYSTEM_DEFAULT_CFG, \
478 PIN26_SYSTEM_DEFAULT_CFG, \
479 PIN27_SYSTEM_DEFAULT_CFG, \
480 PIN28_SYSTEM_DEFAULT_CFG, \
481 PIN29_SYSTEM_DEFAULT_CFG, \
482 PIN30_SYSTEM_DEFAULT_CFG, \
483 PIN31_SYSTEM_DEFAULT_CFG \
486 #define DRV_EXT_RGB_LED_SENSE 0
487 #define DRV_EXT_RGB_LED_LIGHTWELL 1
488 #define DRV_EXT_LIGHT_NUM 2
490 #define BATT_VOLTAGE_DIVIDER_R1 1500000
491 #define BATT_VOLTAGE_DIVIDER_R2 180000
494 #pragma GCC diagnostic push
495 #pragma GCC diagnostic ignored "-Wunused-variable"
501 #define DRV_EXT_LIGHT_CFG \
504 .type = DRV_EXT_LIGHT_TYPE_RGB, \
506 .r = SX_SENSE_LED_R, \
507 .g = SX_SENSE_LED_G, \
508 .b = SX_SENSE_LED_B }, \
509 .p_data = &my_led_0 \
512 .type = DRV_EXT_LIGHT_TYPE_RGB, \
514 .r = SX_LIGHTWELL_R, \
515 .g = SX_LIGHTWELL_G, \
516 .b = SX_LIGHTWELL_B }, \
517 .p_data = &my_led_1 \
521 #define BATT_MEAS_INTERVAL_MS 5000 // Measurement interval [ms].
522 #define BATT_MEAS_LOW_BATT_LIMIT_MV 3100 // Cutoff voltage [mV].
523 #define BATT_MEAS_FULL_BATT_LIMIT_MV 4190 // Full charge definition [mV].
524 #define BATT_MEAS_INVALID_PIN 255 // Invalid pin definition.
525 #define BATT_MEAS_VOLTAGE_TO_SOC_ELEMENTS 111 // Number of elements in the state of charge vector.
526 #define BATT_MEAS_VOLTAGE_TO_SOC_DELTA_MV 10 // mV between each element in the SoC vector.
531 static const uint8_t BATT_MEAS_VOLTAGE_TO_SOC[] = {
532 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
533 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4,
534 4, 5, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 12, 13, 13, 14, 15, 16,
535 18, 19, 22, 25, 28, 32, 36, 40, 44, 47, 51, 53, 56, 58, 60, 62, 64, 66, 67, 69,
536 71, 72, 74, 76, 77, 79, 81, 82, 84, 85, 85, 86, 86, 86, 87, 88, 88, 89, 90, 91,
537 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 100};
539 #if defined(THINGY_HW_v0_8_0)
540 #define BAT_MON_EN_PIN_USED false
541 #define BAT_MON_EN_PIN_NO BATT_MEAS_INVALID_PIN
543 #define BAT_MON_EN_PIN_USED true
544 #define BAT_MON_EN_PIN_NO SX_BAT_MON_EN
548 #define BATT_MEAS_PARAM_CFG \
550 .batt_meas_param = { \
551 .app_timer_prescaler = APP_TIMER_PRESCALER, \
552 .adc_pin_no = BATTERY, \
553 .adc_pin_no_ain = BATTERY_AIN, \
554 .usb_detect_pin_no = USB_DETECT, \
555 .batt_chg_stat_pin_no = BAT_CHG_STAT, \
556 .batt_mon_en_pin_used = BAT_MON_EN_PIN_USED, \
557 .batt_mon_en_pin_no = BAT_MON_EN_PIN_NO, \
558 .batt_voltage_limit_low = BATT_MEAS_LOW_BATT_LIMIT_MV, \
559 .batt_voltage_limit_full = BATT_MEAS_FULL_BATT_LIMIT_MV, \
562 .num_elements = BATT_MEAS_VOLTAGE_TO_SOC_ELEMENTS,\
563 .first_element_mv = BATT_MEAS_LOW_BATT_LIMIT_MV, \
564 .delta_mv = BATT_MEAS_VOLTAGE_TO_SOC_DELTA_MV,\
565 .voltage_to_soc = BATT_MEAS_VOLTAGE_TO_SOC, \
569 .r_1_ohm = BATT_VOLTAGE_DIVIDER_R1, \
570 .r_2_ohm = BATT_VOLTAGE_DIVIDER_R2, \
576 #define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_XTAL, \
579 .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM}