Linux 6.7-rc7
[linux-modified.git] / drivers / iio / adc / ltc2497.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2
3 #define LTC2497_ENABLE                  0xA0
4 #define LTC2497_CONFIG_DEFAULT          LTC2497_ENABLE
5 #define LTC2497_CONVERSION_TIME_MS      150ULL
6
7 struct ltc2497_chip_info {
8         u32 resolution;
9         const char *name;
10 };
11
12 struct ltc2497core_driverdata {
13         struct regulator *ref;
14         ktime_t time_prev;
15         /* lock to protect against multiple access to the device */
16         struct mutex lock;
17         const struct ltc2497_chip_info  *chip_info;
18         u8 addr_prev;
19         int (*result_and_measure)(struct ltc2497core_driverdata *ddata,
20                                   u8 address, int *val);
21 };
22
23 int ltc2497core_probe(struct device *dev, struct iio_dev *indio_dev);
24 void ltc2497core_remove(struct iio_dev *indio_dev);
25
26 MODULE_IMPORT_NS(LTC2497);