• 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 wm9712_phy_init(struct wm97xx *wm)
165 dev_dbg(wm->dev, "setting pen detect pull-up to %d Ohms",
172 dev_dbg(wm->dev, "setting 5-wire touchscreen mode.");
175 dev_warn(wm->dev, "pressure measurement is not "
184 dev_dbg(wm->dev,
187 dev_dbg(wm->dev,
194 dev_dbg(wm->dev, "supplied delay out of range.");
199 dev_dbg(wm->dev, "setting adc sample delay to %d u Secs.",
207 reg = wm97xx_reg_read(wm, AC97_MISC_AFE);
208 wm97xx_reg_write(wm, AC97_MISC_AFE, reg | WM97XX_GPIO_4);
209 reg = wm97xx_reg_read(wm, AC97_GPIO_CFG);
210 wm97xx_reg_write(wm, AC97_GPIO_CFG, reg | WM97XX_GPIO_4);
217 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1);
218 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2);
221 static void wm9712_dig_enable(struct wm97xx *wm, int enable)
223 u16 dig2 = wm->dig[2];
226 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2,
228 wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD); /* dummy read */
230 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2,
234 static void wm9712_aux_prepare(struct wm97xx *wm)
236 memcpy(wm->dig_save, wm->dig, sizeof(wm->dig));
237 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, 0);
238 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, WM97XX_PRP_DET_DIG);
241 static void wm9712_dig_restore(struct wm97xx *wm)
243 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, wm->dig_save[1]);
244 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, wm->dig_save[2]);
247 static inline int is_pden(struct wm97xx *wm)
249 return wm->dig[2] & WM9712_PDEN;
255 static int wm9712_poll_sample(struct wm97xx *wm, int adcsel, int *sample)
259 if (!wm->pen_probably_down) {
260 u16 data = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
263 wm->pen_probably_down = 1;
270 if (wm->mach_ops && wm->mach_ops->pre_sample)
271 wm->mach_ops->pre_sample(adcsel);
272 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1,
279 while ((wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER1) & WM97XX_POLL)
287 if (is_pden(wm))
288 wm->pen_probably_down = 0;
290 dev_dbg(wm->dev, "adc sample timeout");
294 *sample = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
295 if (wm->mach_ops && wm->mach_ops->post_sample)
296 wm->mach_ops->post_sample(adcsel);
300 dev_dbg(wm->dev, "adc wrong sample, read %x got %x", adcsel,
306 wm->pen_probably_down = 0;
316 static int wm9712_poll_coord(struct wm97xx *wm, struct wm97xx_data *data)
320 if (!wm->pen_probably_down) {
321 u16 data_rd = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
324 wm->pen_probably_down = 1;
328 if (wm->mach_ops && wm->mach_ops->pre_sample)
329 wm->mach_ops->pre_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y);
331 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1,
336 data->x = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
338 while ((wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER1) & WM97XX_POLL)
346 if (is_pden(wm))
347 wm->pen_probably_down = 0;
349 dev_dbg(wm->dev, "adc sample timeout");
354 data->y = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
356 data->p = wm97xx_reg_read(wm, AC97_WM97XX_DIGITISER_RD);
360 if (wm->mach_ops && wm->mach_ops->post_sample)
361 wm->mach_ops->post_sample(WM97XX_ADCSEL_X | WM97XX_ADCSEL_Y);
370 wm->pen_probably_down = 0;
381 static int wm9712_poll_touch(struct wm97xx *wm, struct wm97xx_data *data)
386 rc = wm9712_poll_coord(wm, data);
390 rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_X, &data->x);
394 rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_Y, &data->y);
399 rc = wm9712_poll_sample(wm, WM97XX_ADCSEL_PRES,
413 static int wm9712_acc_enable(struct wm97xx *wm, int enable)
418 dig1 = wm->dig[1];
419 dig2 = wm->dig[2];
423 if (wm->mach_ops->acc_startup) {
424 ret = wm->mach_ops->acc_startup(wm);
432 WM97XX_SLT(wm->acc_slot) |
433 WM97XX_RATE(wm->acc_rate);
440 if (wm->mach_ops->acc_shutdown)
441 wm->mach_ops->acc_shutdown(wm);
444 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER1, dig1);
445 wm97xx_reg_write(wm, AC97_WM97XX_DIGITISER2, dig2);