lis3: use input_polled_device
[sfrench/cifs-2.6.git] / drivers / hwmon / lis3lv02d.h
index 75972bf372ff474a2fd1a43cdaf85db9ddddebd4..5a5a196e6a66870eca4fbc6d06d95ae01f99a1d9 100644 (file)
@@ -18,6 +18,8 @@
  *  along with this program; if not, write to the Free Software
  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
+#include <linux/platform_device.h>
+#include <linux/input-polldev.h>
 
 /*
  * The actual chip is STMicroelectronics LIS3LV02DL or LIS3LV02DQ that seems to
@@ -159,26 +161,22 @@ struct axis_conversion {
        s8      z;
 };
 
-struct acpi_lis3lv02d {
-       struct acpi_device      *device;   /* The ACPI device */
-       acpi_status (*init) (acpi_handle handle);
-       acpi_status (*write) (acpi_handle handle, int reg, u8 val);
-       acpi_status (*read) (acpi_handle handle, int reg, u8 *ret);
+struct lis3lv02d {
+       void                    *bus_priv; /* used by the bus layer only */
+       int (*init) (struct lis3lv02d *lis3);
+       int (*write) (struct lis3lv02d *lis3, int reg, u8 val);
+       int (*read) (struct lis3lv02d *lis3, int reg, u8 *ret);
 
        u8                      whoami;    /* 3Ah: 2-byte registries, 3Bh: 1-byte registries */
-       s16 (*read_data) (acpi_handle handle, int reg);
+       s16 (*read_data) (struct lis3lv02d *lis3, int reg);
        int                     mdps_max_val;
 
-       struct input_dev        *idev;     /* input device */
-       struct task_struct      *kthread;  /* kthread for input */
-       struct mutex            lock;
+       struct input_polled_dev *idev;     /* input device */
        struct platform_device  *pdev;     /* platform device */
        atomic_t                count;     /* interrupt count after last read */
        int                     xcalib;    /* calibrated null value for x */
        int                     ycalib;    /* calibrated null value for y */
        int                     zcalib;    /* calibrated null value for z */
-       unsigned char           is_on;     /* whether the device is on or off */
-       unsigned char           usage;     /* usage counter */
        struct axis_conversion  ac;        /* hw -> logical axis */
 
        u32                     irq;       /* IRQ number */
@@ -187,11 +185,11 @@ struct acpi_lis3lv02d {
        unsigned long           misc_opened; /* bit0: whether the device is open */
 };
 
-int lis3lv02d_init_device(struct acpi_lis3lv02d *dev);
+int lis3lv02d_init_device(struct lis3lv02d *lis3);
 int lis3lv02d_joystick_enable(void);
 void lis3lv02d_joystick_disable(void);
-void lis3lv02d_poweroff(acpi_handle handle);
-void lis3lv02d_poweron(acpi_handle handle);
-int lis3lv02d_remove_fs(void);
+void lis3lv02d_poweroff(struct lis3lv02d *lis3);
+void lis3lv02d_poweron(struct lis3lv02d *lis3);
+int lis3lv02d_remove_fs(struct lis3lv02d *lis3);
 
-extern struct acpi_lis3lv02d adev;
+extern struct lis3lv02d lis3_dev;