• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/input/touchscreen/

Lines Matching refs:wm

156 static void wm9713_phy_init(struct wm97xx *wm)
168 dev_info(wm->dev, "setting pen detect pull-up to %d Ohms\n",
175 dev_info(wm->dev, "setting 5-wire touchscreen mode.");
178 dev_warn(wm->dev,
188 dev_info(wm->dev,
191 dev_info(wm->dev,
198 dev_info(wm->dev, "supplied delay out of range.");
200 dev_info(wm->dev, "setting adc sample delay to %d u Secs.",
211 wm->misc = wm97xx_reg_read(wm, 0x5a);
213 wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1);
214 wm97xx_reg_write(wm, AC97_WM9713_DIG2, dig2);
215 wm97xx_reg_write(wm, AC97_WM9713_DIG3, dig3);
216 wm97xx_reg_write(wm, AC97_GPIO_STICKY, 0x0);
219 static void wm9713_dig_enable(struct wm97xx *wm, int enable)
224 val = wm97xx_reg_read(wm, AC97_EXTENDED_MID);
225 wm97xx_reg_write(wm, AC97_EXTENDED_MID, val & 0x7fff);
226 wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig[2] |
228 wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); /* dummy read */
230 wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig[2] &
232 val = wm97xx_reg_read(wm, AC97_EXTENDED_MID);
233 wm97xx_reg_write(wm, AC97_EXTENDED_MID, val | 0x8000);
237 static void wm9713_dig_restore(struct wm97xx *wm)
239 wm97xx_reg_write(wm, AC97_WM9713_DIG1, wm->dig_save[0]);
240 wm97xx_reg_write(wm, AC97_WM9713_DIG2, wm->dig_save[1]);
241 wm97xx_reg_write(wm, AC97_WM9713_DIG3, wm->dig_save[2]);
244 static void wm9713_aux_prepare(struct wm97xx *wm)
246 memcpy(wm->dig_save, wm->dig, sizeof(wm->dig));
247 wm97xx_reg_write(wm, AC97_WM9713_DIG1, 0);
248 wm97xx_reg_write(wm, AC97_WM9713_DIG2, 0);
249 wm97xx_reg_write(wm, AC97_WM9713_DIG3, WM97XX_PRP_DET_DIG);
252 static inline int is_pden(struct wm97xx *wm)
254 return wm->dig[2] & WM9713_PDEN;
260 static int wm9713_poll_sample(struct wm97xx *wm, int adcsel, int *sample)
265 if (!wm->pen_probably_down) {
266 u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
269 wm->pen_probably_down = 1;
276 dig1 = wm97xx_reg_read(wm, AC97_WM9713_DIG1);
279 if (wm->mach_ops && wm->mach_ops->pre_sample)
280 wm->mach_ops->pre_sample(adcsel);
281 wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1 | adcsel | WM9713_POLL);
287 while ((wm97xx_reg_read(wm, AC97_WM9713_DIG1) & WM9713_POLL) &&
295 if (is_pden(wm))
296 wm->pen_probably_down = 0;
298 dev_dbg(wm->dev, "adc sample timeout");
302 *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
303 if (wm->mach_ops && wm->mach_ops->post_sample)
304 wm->mach_ops->post_sample(adcsel);
308 dev_dbg(wm->dev, "adc wrong sample, read %x got %x", adcsel,
314 wm->pen_probably_down = 0;
324 static int wm9713_poll_coord(struct wm97xx *wm, struct wm97xx_data *data)
329 if (!wm->pen_probably_down) {
330 u16 val = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
333 wm->pen_probably_down = 1;
337 dig1 = wm97xx_reg_read(wm, AC97_WM9713_DIG1);
342 if (wm->mach_ops && wm->mach_ops->pre_sample)
343 wm->mach_ops->pre_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y);
344 wm97xx_reg_write(wm, AC97_WM9713_DIG1,
349 data->x = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
351 while ((wm97xx_reg_read(wm, AC97_WM9713_DIG1) & WM9713_POLL)
359 if (is_pden(wm))
360 wm->pen_probably_down = 0;
362 dev_dbg(wm->dev, "adc sample timeout");
367 data->y = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
369 data->p = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
373 if (wm->mach_ops && wm->mach_ops->post_sample)
374 wm->mach_ops->post_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y);
383 wm->pen_probably_down = 0;
394 static int wm9713_poll_touch(struct wm97xx *wm, struct wm97xx_data *data)
399 rc = wm9713_poll_coord(wm, data);
403 rc = wm9713_poll_sample(wm, WM9713_ADCSEL_X, &data->x);
406 rc = wm9713_poll_sample(wm, WM9713_ADCSEL_Y, &data->y);
410 rc = wm9713_poll_sample(wm, WM9713_ADCSEL_PRES,
424 static int wm9713_acc_enable(struct wm97xx *wm, int enable)
429 dig1 = wm->dig[0];
430 dig2 = wm->dig[1];
431 dig3 = wm->dig[2];
435 if (wm->mach_ops->acc_startup &&
436 (ret = wm->mach_ops->acc_startup(wm)) < 0)
447 WM97XX_SLT(wm->acc_slot) | WM97XX_RATE(wm->acc_rate);
453 if (wm->mach_ops->acc_shutdown)
454 wm->mach_ops->acc_shutdown(wm);
457 wm97xx_reg_write(wm, AC97_WM9713_DIG1, dig1);
458 wm97xx_reg_write(wm, AC97_WM9713_DIG2, dig2);
459 wm97xx_reg_write(wm, AC97_WM9713_DIG3, dig3);