1/*
2 * AD7266/65 SPI ADC driver
3 *
4 * Copyright 2012 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2.
7 */
8
9#ifndef __IIO_ADC_AD7266_H__
10#define __IIO_ADC_AD7266_H__
11
12/**
13 * enum ad7266_range - AD7266 reference voltage range
14 * @AD7266_RANGE_VREF: Device is configured for input range 0V - VREF
15 *			(RANGE pin set to low)
16 * @AD7266_RANGE_2VREF: Device is configured for input range 0V - 2VREF
17 *			(RANGE pin set to high)
18 */
19enum ad7266_range {
20	AD7266_RANGE_VREF,
21	AD7266_RANGE_2VREF,
22};
23
24/**
25 * enum ad7266_mode - AD7266 sample mode
26 * @AD7266_MODE_DIFF: Device is configured for full differential mode
27 *				(SGL/DIFF pin set to low, AD0 pin set to low)
28 * @AD7266_MODE_PSEUDO_DIFF: Device is configured for pseudo differential mode
29 *				(SGL/DIFF pin set to low, AD0 pin set to high)
30 * @AD7266_MODE_SINGLE_ENDED: Device is configured for single-ended mode
31 *				(SGL/DIFF pin set to high)
32 */
33enum ad7266_mode {
34	AD7266_MODE_DIFF,
35	AD7266_MODE_PSEUDO_DIFF,
36	AD7266_MODE_SINGLE_ENDED,
37};
38
39/**
40 * struct ad7266_platform_data - Platform data for the AD7266 driver
41 * @range: Reference voltage range the device is configured for
42 * @mode: Sample mode the device is configured for
43 * @fixed_addr: Whether the address pins are hard-wired
44 * @addr_gpios: GPIOs used for controlling the address pins, only used if
45 *		fixed_addr is set to false.
46 */
47struct ad7266_platform_data {
48	enum ad7266_range range;
49	enum ad7266_mode mode;
50	bool fixed_addr;
51	unsigned int addr_gpios[3];
52};
53
54#endif
55