c5c18a06af
Use managed resource functions devm_request_threaded_irq, devm_inpute_allocate_device and devm_kzalloc to simplify error handling. Also, remove use of input_unregister_device as input_register_device itself handles it and works as resource managed function. To be compatible with the change, various gotos are replaced with direct returns, and unneeded labels are dropped. With these changes remove ad714x_remove and corresponding calls of it as they are now redundant. Signed-off-by: Vaishali Thakkar <vthakkar1994@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
55 lines
1.2 KiB
C
55 lines
1.2 KiB
C
/*
|
|
* 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
|