xref: /openbmc/linux/drivers/iio/adc/ad7091r-base.h (revision e4e845c8)
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*e4e845c8SMarcelo Schmitt #define AD7091R_REG_CONF_INT_VREF	BIT(0)
12*e4e845c8SMarcelo Schmitt 
1389c4e633SMarcelo Schmitt /* AD7091R_REG_CH_LIMIT */
1489c4e633SMarcelo Schmitt #define AD7091R_HIGH_LIMIT		0xFFF
1589c4e633SMarcelo Schmitt #define AD7091R_LOW_LIMIT		0x0
1689c4e633SMarcelo Schmitt 
17ca693001SPaul Cercueil struct device;
18ca693001SPaul Cercueil struct ad7091r_state;
19ca693001SPaul Cercueil 
20ca693001SPaul Cercueil struct ad7091r_chip_info {
21ca693001SPaul Cercueil 	unsigned int num_channels;
22ca693001SPaul Cercueil 	const struct iio_chan_spec *channels;
23260442ccSPaul Cercueil 	unsigned int vref_mV;
24ca693001SPaul Cercueil };
25ca693001SPaul Cercueil 
2689c4e633SMarcelo Schmitt extern const struct iio_event_spec ad7091r_events[3];
2789c4e633SMarcelo Schmitt 
28ca693001SPaul Cercueil extern const struct regmap_config ad7091r_regmap_config;
29ca693001SPaul Cercueil 
30ca693001SPaul Cercueil int ad7091r_probe(struct device *dev, const char *name,
31ca693001SPaul Cercueil 		const struct ad7091r_chip_info *chip_info,
32ca693001SPaul Cercueil 		struct regmap *map, int irq);
33ca693001SPaul Cercueil 
34ca693001SPaul Cercueil #endif /* __DRIVERS_IIO_ADC_AD7091R_BASE_H__ */
35