| 1 |
|
| 2 | |
| 3 | * AD714X CapTouch Programmable Controller driver (bus interfaces)
|
| 4 | *
|
| 5 | * Copyright 2009-2011 Analog Devices Inc.
|
| 6 |
|
| 7 |
|
| 8 | #ifndef _AD714X_H_
|
| 9 | #define _AD714X_H_
|
| 10 |
|
| 11 | #include <linux/pm.h>
|
| 12 | #include <linux/types.h>
|
| 13 |
|
| 14 | #define STAGE_NUM 12
|
| 15 |
|
| 16 | struct device;
|
| 17 | struct ad714x_platform_data;
|
| 18 | struct ad714x_driver_data;
|
| 19 | struct ad714x_chip;
|
| 20 |
|
| 21 | typedef int (*ad714x_read_t)(struct ad714x_chip *, unsigned short, unsigned short *, size_t);
|
| 22 | typedef int (*ad714x_write_t)(struct ad714x_chip *, unsigned short, unsigned short);
|
| 23 |
|
| 24 | struct ad714x_chip {
|
| 25 | unsigned short l_state;
|
| 26 | unsigned short h_state;
|
| 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 | };
|
| 48 |
|
| 49 | extern const struct dev_pm_ops ad714x_pm;
|
| 50 | struct ad714x_chip *ad714x_probe(struct device *dev, u16 bus_type, int irq,
|
| 51 | ad714x_read_t read, ad714x_write_t write);
|
| 52 |
|
| 53 | #endif
|