1 /*
2  * Copyright (c) 2024 Linumiz
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_DRIVERS_ADC_ADS131M02_H_
8 #define ZEPHYR_INCLUDE_DRIVERS_ADC_ADS131M02_H_
9 
10 #include <zephyr/device.h>
11 
12 enum ads131m02_adc_mode {
13 	ADS131M02_CONTINUOUS_MODE,	/* Continuous conversion mode */
14 	ADS131M02_GLOBAL_CHOP_MODE	/* Global chop mode */
15 };
16 
17 enum ads131m02_adc_power_mode {
18 	ADS131M02_VLP,	/* Very Low Power */
19 	ADS131M02_LP,	/* Low Power */
20 	ADS131M02_HR	/* High Resolution */
21 };
22 
23 enum ads131m02_gc_delay {
24 	ADS131M02_GC_DELAY_2,
25 	ADS131M02_GC_DELAY_4,
26 	ADS131M02_GC_DELAY_8,
27 	ADS131M02_GC_DELAY_16,
28 	ADS131M02_GC_DELAY_32,
29 	ADS131M02_GC_DELAY_64,
30 	ADS131M02_GC_DELAY_128,
31 	ADS131M02_GC_DELAY_256,
32 	ADS131M02_GC_DELAY_512,
33 	ADS131M02_GC_DELAY_1024,
34 	ADS131M02_GC_DELAY_2048,
35 	ADS131M02_GC_DELAY_4096,
36 	ADS131M02_GC_DELAY_8192,
37 	ADS131M02_GC_DELAY_16384,
38 	ADS131M02_GC_DELAY_32768,
39 	ADS131M02_GC_DELAY_65536
40 };
41 
42 int ads131m02_set_adc_mode(const struct device *dev, enum ads131m02_adc_mode mode,
43 			   enum ads131m02_gc_delay gc_delay);
44 
45 int ads131m02_set_power_mode(const struct device *dev,
46 			     enum ads131m02_adc_power_mode mode);
47 
48 #endif
49