| /* |
| * AD714X CapTouch Programmable Controller driver (bus interfaces) |
| * |
| * Copyright 2009-2011 Analog Devices Inc. |
| * |
| * Licensed under the GPL-2 or later. |
| */ |
| |
| #ifndef _AD714X_H_ |
| #define _AD714X_H_ |
| |
| #include <linux/types.h> |
| |
| #define STAGE_NUM 12 |
| |
| struct device; |
| struct ad714x_platform_data; |
| struct ad714x_driver_data; |
| struct ad714x_chip; |
| |
| typedef int (*ad714x_read_t)(struct ad714x_chip *, unsigned short, unsigned short *, size_t); |
| typedef int (*ad714x_write_t)(struct ad714x_chip *, unsigned short, unsigned short); |
| |
| struct ad714x_chip { |
| unsigned short l_state; |
| unsigned short h_state; |
| unsigned short c_state; |
| unsigned short adc_reg[STAGE_NUM]; |
| unsigned short amb_reg[STAGE_NUM]; |
| unsigned short sensor_val[STAGE_NUM]; |
| |
| struct ad714x_platform_data *hw; |
| struct ad714x_driver_data *sw; |
| |
| int irq; |
| struct device *dev; |
| ad714x_read_t read; |
| ad714x_write_t write; |
| |
| struct mutex mutex; |
| |
| unsigned product; |
| unsigned version; |
| |
| __be16 xfer_buf[16] ____cacheline_aligned; |
| |
| }; |
| |
| int ad714x_disable(struct ad714x_chip *ad714x); |
| int ad714x_enable(struct ad714x_chip *ad714x); |
| struct ad714x_chip *ad714x_probe(struct device *dev, u16 bus_type, int irq, |
| ad714x_read_t read, ad714x_write_t write); |
| |
| #endif |