diff options
Diffstat (limited to 'drivers/hwmon/lis3lv02d.h')
-rw-r--r-- | drivers/hwmon/lis3lv02d.h | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/drivers/hwmon/lis3lv02d.h b/drivers/hwmon/lis3lv02d.h index 745ec96806d4..e320e2f511f1 100644 --- a/drivers/hwmon/lis3lv02d.h +++ b/drivers/hwmon/lis3lv02d.h | |||
@@ -18,6 +18,8 @@ | |||
18 | * along with this program; if not, write to the Free Software | 18 | * along with this program; if not, write to the Free Software |
19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | 19 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
20 | */ | 20 | */ |
21 | #include <linux/platform_device.h> | ||
22 | #include <linux/input-polldev.h> | ||
21 | 23 | ||
22 | /* | 24 | /* |
23 | * The actual chip is STMicroelectronics LIS3LV02DL or LIS3LV02DQ that seems to | 25 | * The actual chip is STMicroelectronics LIS3LV02DL or LIS3LV02DQ that seems to |
@@ -27,12 +29,14 @@ | |||
27 | * They can also be connected via I²C. | 29 | * They can also be connected via I²C. |
28 | */ | 30 | */ |
29 | 31 | ||
32 | #include <linux/lis3lv02d.h> | ||
33 | |||
30 | /* 2-byte registers */ | 34 | /* 2-byte registers */ |
31 | #define LIS_DOUBLE_ID 0x3A /* LIS3LV02D[LQ] */ | 35 | #define LIS_DOUBLE_ID 0x3A /* LIS3LV02D[LQ] */ |
32 | /* 1-byte registers */ | 36 | /* 1-byte registers */ |
33 | #define LIS_SINGLE_ID 0x3B /* LIS[32]02DL and others */ | 37 | #define LIS_SINGLE_ID 0x3B /* LIS[32]02DL and others */ |
34 | 38 | ||
35 | enum lis3lv02d_reg { | 39 | enum lis3_reg { |
36 | WHO_AM_I = 0x0F, | 40 | WHO_AM_I = 0x0F, |
37 | OFFSET_X = 0x16, | 41 | OFFSET_X = 0x16, |
38 | OFFSET_Y = 0x17, | 42 | OFFSET_Y = 0x17, |
@@ -60,6 +64,19 @@ enum lis3lv02d_reg { | |||
60 | FF_WU_THS_L = 0x34, | 64 | FF_WU_THS_L = 0x34, |
61 | FF_WU_THS_H = 0x35, | 65 | FF_WU_THS_H = 0x35, |
62 | FF_WU_DURATION = 0x36, | 66 | FF_WU_DURATION = 0x36, |
67 | }; | ||
68 | |||
69 | enum lis302d_reg { | ||
70 | CLICK_CFG = 0x38, | ||
71 | CLICK_SRC = 0x39, | ||
72 | CLICK_THSY_X = 0x3B, | ||
73 | CLICK_THSZ = 0x3C, | ||
74 | CLICK_TIMELIMIT = 0x3D, | ||
75 | CLICK_LATENCY = 0x3E, | ||
76 | CLICK_WINDOW = 0x3F, | ||
77 | }; | ||
78 | |||
79 | enum lis3lv02d_reg { | ||
63 | DD_CFG = 0x38, | 80 | DD_CFG = 0x38, |
64 | DD_SRC = 0x39, | 81 | DD_SRC = 0x39, |
65 | DD_ACK = 0x3A, | 82 | DD_ACK = 0x3A, |
@@ -169,22 +186,20 @@ struct lis3lv02d { | |||
169 | s16 (*read_data) (struct lis3lv02d *lis3, int reg); | 186 | s16 (*read_data) (struct lis3lv02d *lis3, int reg); |
170 | int mdps_max_val; | 187 | int mdps_max_val; |
171 | 188 | ||
172 | struct input_dev *idev; /* input device */ | 189 | struct input_polled_dev *idev; /* input device */ |
173 | struct task_struct *kthread; /* kthread for input */ | ||
174 | struct mutex lock; | ||
175 | struct platform_device *pdev; /* platform device */ | 190 | struct platform_device *pdev; /* platform device */ |
176 | atomic_t count; /* interrupt count after last read */ | 191 | atomic_t count; /* interrupt count after last read */ |
177 | int xcalib; /* calibrated null value for x */ | 192 | int xcalib; /* calibrated null value for x */ |
178 | int ycalib; /* calibrated null value for y */ | 193 | int ycalib; /* calibrated null value for y */ |
179 | int zcalib; /* calibrated null value for z */ | 194 | int zcalib; /* calibrated null value for z */ |
180 | unsigned char is_on; /* whether the device is on or off */ | ||
181 | unsigned char usage; /* usage counter */ | ||
182 | struct axis_conversion ac; /* hw -> logical axis */ | 195 | struct axis_conversion ac; /* hw -> logical axis */ |
183 | 196 | ||
184 | u32 irq; /* IRQ number */ | 197 | u32 irq; /* IRQ number */ |
185 | struct fasync_struct *async_queue; /* queue for the misc device */ | 198 | struct fasync_struct *async_queue; /* queue for the misc device */ |
186 | wait_queue_head_t misc_wait; /* Wait queue for the misc device */ | 199 | wait_queue_head_t misc_wait; /* Wait queue for the misc device */ |
187 | unsigned long misc_opened; /* bit0: whether the device is open */ | 200 | unsigned long misc_opened; /* bit0: whether the device is open */ |
201 | |||
202 | struct lis3lv02d_platform_data *pdata; /* for passing board config */ | ||
188 | }; | 203 | }; |
189 | 204 | ||
190 | int lis3lv02d_init_device(struct lis3lv02d *lis3); | 205 | int lis3lv02d_init_device(struct lis3lv02d *lis3); |
@@ -192,6 +207,6 @@ int lis3lv02d_joystick_enable(void); | |||
192 | void lis3lv02d_joystick_disable(void); | 207 | void lis3lv02d_joystick_disable(void); |
193 | void lis3lv02d_poweroff(struct lis3lv02d *lis3); | 208 | void lis3lv02d_poweroff(struct lis3lv02d *lis3); |
194 | void lis3lv02d_poweron(struct lis3lv02d *lis3); | 209 | void lis3lv02d_poweron(struct lis3lv02d *lis3); |
195 | int lis3lv02d_remove_fs(void); | 210 | int lis3lv02d_remove_fs(struct lis3lv02d *lis3); |
196 | 211 | ||
197 | extern struct lis3lv02d lis3_dev; | 212 | extern struct lis3lv02d lis3_dev; |