| /* | 
 |  * 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 |