Commit | Line | Data |
---|---|---|
31a62963 BW |
1 | /* |
2 | * AD714X CapTouch Programmable Controller driver (bus interfaces) | |
3 | * | |
9eff794b | 4 | * Copyright 2009-2011 Analog Devices Inc. |
31a62963 BW |
5 | * |
6 | * Licensed under the GPL-2 or later. | |
7 | */ | |
8 | ||
9 | #ifndef _AD714X_H_ | |
10 | #define _AD714X_H_ | |
11 | ||
12 | #include <linux/types.h> | |
13 | ||
c0409feb DT |
14 | #define STAGE_NUM 12 |
15 | ||
31a62963 | 16 | struct device; |
c0409feb DT |
17 | struct ad714x_platform_data; |
18 | struct ad714x_driver_data; | |
31a62963 BW |
19 | struct ad714x_chip; |
20 | ||
9eff794b | 21 | typedef int (*ad714x_read_t)(struct ad714x_chip *, unsigned short, unsigned short *, size_t); |
c0409feb DT |
22 | typedef int (*ad714x_write_t)(struct ad714x_chip *, unsigned short, unsigned short); |
23 | ||
24 | struct ad714x_chip { | |
c0409feb | 25 | unsigned short l_state; |
9eff794b | 26 | unsigned short h_state; |
c0409feb DT |
27 | unsigned short c_state; |
28 | unsigned short adc_reg[STAGE_NUM]; | |
29 | unsigned short amb_reg[STAGE_NUM]; | |
30 | unsigned short sensor_val[STAGE_NUM]; | |
31 | ||
32 | struct ad714x_platform_data *hw; | |
33 | struct ad714x_driver_data *sw; | |
34 | ||
35 | int irq; | |
36 | struct device *dev; | |
37 | ad714x_read_t read; | |
38 | ad714x_write_t write; | |
39 | ||
40 | struct mutex mutex; | |
41 | ||
42 | unsigned product; | |
43 | unsigned version; | |
44 | ||
45 | __be16 xfer_buf[16] ____cacheline_aligned; | |
46 | ||
47 | }; | |
31a62963 BW |
48 | |
49 | int ad714x_disable(struct ad714x_chip *ad714x); | |
50 | int ad714x_enable(struct ad714x_chip *ad714x); | |
51 | struct ad714x_chip *ad714x_probe(struct device *dev, u16 bus_type, int irq, | |
52 | ad714x_read_t read, ad714x_write_t write); | |
31a62963 BW |
53 | |
54 | #endif |