Lines Matching +full:has +full:- +full:touchscreen
2 * Samsung S3C24XX touchscreen driver
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 * Copyright 2004 Arnaud Patard <arnaud.patard@rtp-net.org>
19 * Copyright 2008 Ben Dooks <ben-linux@fluff.org>
38 #include <plat/regs-adc.h>
39 #include <linux/platform_data/touchscreen-s3c2410.h>
57 #define FEAT_PEN_IRQ (1 << 0) /* HAS ADCCLRINTPNDNUP */
59 /* Per-touchscreen data. */
62 * struct s3c2410ts - driver touchscreen state.
92 * get_down - return the down state of the pen
96 * Return non-zero if both readings show that the pen is down.
151 * stylus_irq - touchscreen stylus event interrupt
186 * s3c24xx_ts_conversion - ADC conversion callback
192 * Called when a conversion has finished.
205 /* From tests, it seems that it is unlikely to get a pen-up in s3c24xx_ts_conversion()
207 * ignore any pen-up events with less than the requisite in s3c24xx_ts_conversion()
210 * In several thousand conversions, no pen-ups where detected in s3c24xx_ts_conversion()
216 * s3c24xx_ts_select - ADC selection callback.
234 * s3c2410ts_probe - device core probe entry point
243 struct device *dev = &pdev->dev; in s3c2410ts_probe()
246 int ret = -EINVAL; in s3c2410ts_probe()
256 return -EINVAL; in s3c2410ts_probe()
259 dev_dbg(dev, "initialising touchscreen\n"); in s3c2410ts_probe()
264 return -ENOENT; in s3c2410ts_probe()
283 ret = -ENOENT; in s3c2410ts_probe()
287 ts.io = ioremap(res->start, resource_size(res)); in s3c2410ts_probe()
290 ret = -ENOMEM; in s3c2410ts_probe()
295 if (info->cfg_gpio) in s3c2410ts_probe()
296 info->cfg_gpio(to_platform_device(ts.dev)); in s3c2410ts_probe()
307 if ((info->delay & 0xffff) > 0) in s3c2410ts_probe()
308 writel(info->delay & 0xffff, ts.io + S3C2410_ADCDLY); in s3c2410ts_probe()
315 ret = -ENOMEM; in s3c2410ts_probe()
320 ts.input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS); in s3c2410ts_probe()
321 ts.input->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH); in s3c2410ts_probe()
325 ts.input->name = "S3C24XX TouchScreen"; in s3c2410ts_probe()
326 ts.input->id.bustype = BUS_HOST; in s3c2410ts_probe()
327 ts.input->id.vendor = 0xDEAD; in s3c2410ts_probe()
328 ts.input->id.product = 0xBEEF; in s3c2410ts_probe()
329 ts.input->id.version = 0x0102; in s3c2410ts_probe()
331 ts.shift = info->oversampling_shift; in s3c2410ts_probe()
332 ts.features = platform_get_device_id(pdev)->driver_data; in s3c2410ts_probe()
347 ret = -EIO; in s3c2410ts_probe()
368 * s3c2410ts_remove - device core removal entry point
400 struct s3c2410_ts_mach_info *info = dev_get_platdata(&pdev->dev); in s3c2410ts_resume()
406 if ((info->delay & 0xffff) > 0) in s3c2410ts_resume()
407 writel(info->delay & 0xffff, ts.io + S3C2410_ADCDLY); in s3c2410ts_resume()
421 { "s3c2410-ts", 0 },
422 { "s3c2440-ts", 0 },
423 { "s3c64xx-ts", FEAT_PEN_IRQ },
430 .name = "samsung-ts",
441 MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>, "
444 MODULE_DESCRIPTION("S3C24XX Touchscreen driver");