xref: /openbmc/linux/drivers/iio/adc/ad7091r-base.h (revision 89c4e633)
1ca693001SPaul Cercueil /* SPDX-License-Identifier: GPL-2.0 */
2ca693001SPaul Cercueil /*
3ca693001SPaul Cercueil  * AD7091RX Analog to Digital converter driver
4ca693001SPaul Cercueil  *
5ca693001SPaul Cercueil  * Copyright 2014-2019 Analog Devices Inc.
6ca693001SPaul Cercueil  */
7ca693001SPaul Cercueil 
8ca693001SPaul Cercueil #ifndef __DRIVERS_IIO_ADC_AD7091R_BASE_H__
9ca693001SPaul Cercueil #define __DRIVERS_IIO_ADC_AD7091R_BASE_H__
10ca693001SPaul Cercueil 
11*89c4e633SMarcelo Schmitt /* AD7091R_REG_CH_LIMIT */
12*89c4e633SMarcelo Schmitt #define AD7091R_HIGH_LIMIT		0xFFF
13*89c4e633SMarcelo Schmitt #define AD7091R_LOW_LIMIT		0x0
14*89c4e633SMarcelo Schmitt 
15ca693001SPaul Cercueil struct device;
16ca693001SPaul Cercueil struct ad7091r_state;
17ca693001SPaul Cercueil 
18ca693001SPaul Cercueil struct ad7091r_chip_info {
19ca693001SPaul Cercueil 	unsigned int num_channels;
20ca693001SPaul Cercueil 	const struct iio_chan_spec *channels;
21260442ccSPaul Cercueil 	unsigned int vref_mV;
22ca693001SPaul Cercueil };
23ca693001SPaul Cercueil 
24*89c4e633SMarcelo Schmitt extern const struct iio_event_spec ad7091r_events[3];
25*89c4e633SMarcelo Schmitt 
26ca693001SPaul Cercueil extern const struct regmap_config ad7091r_regmap_config;
27ca693001SPaul Cercueil 
28ca693001SPaul Cercueil int ad7091r_probe(struct device *dev, const char *name,
29ca693001SPaul Cercueil 		const struct ad7091r_chip_info *chip_info,
30ca693001SPaul Cercueil 		struct regmap *map, int irq);
31ca693001SPaul Cercueil 
32ca693001SPaul Cercueil #endif /* __DRIVERS_IIO_ADC_AD7091R_BASE_H__ */
33