linux/drivers/input/misc/ad714x.h
<<
>>
Prefs
   1/*
   2 * AD714X CapTouch Programmable Controller driver (bus interfaces)
   3 *
   4 * Copyright 2009-2011 Analog Devices Inc.
   5 *
   6 * Licensed under the GPL-2 or later.
   7 */
   8
   9#ifndef _AD714X_H_
  10#define _AD714X_H_
  11
  12#include <linux/types.h>
  13
  14#define STAGE_NUM              12
  15
  16struct device;
  17struct ad714x_platform_data;
  18struct ad714x_driver_data;
  19struct ad714x_chip;
  20
  21typedef int (*ad714x_read_t)(struct ad714x_chip *, unsigned short, unsigned short *, size_t);
  22typedef int (*ad714x_write_t)(struct ad714x_chip *, unsigned short, unsigned short);
  23
  24struct 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
  49int ad714x_disable(struct ad714x_chip *ad714x);
  50int ad714x_enable(struct ad714x_chip *ad714x);
  51struct ad714x_chip *ad714x_probe(struct device *dev, u16 bus_type, int irq,
  52                                 ad714x_read_t read, ad714x_write_t write);
  53
  54#endif
  55