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