diff options
| author | Imre Deak <imre.deak@nokia.com> | 2006-04-11 23:41:32 -0400 |
|---|---|---|
| committer | Dmitry Torokhov <dtor_core@ameritech.net> | 2006-04-11 23:41:32 -0400 |
| commit | 438f2a7401ec5d8f85923a7c3e6da444f097a3a1 (patch) | |
| tree | 831ee631c1fa3809ece325d8ec6892ef94babd84 /drivers/input/touchscreen | |
| parent | e2aa507a837cbaa376faa3d9f8448ff569d34ccf (diff) | |
Input: ads7846 - add pen_down sysfs attribute
It's handy for userspace diagnostics to see the pen down status, to
see whether the touchscreen is "stuck" (shortcircuited).
Signed-off-by: Imre Deak <imre.deak@nokia.com>
Signed-off-by: Juha Yrjola <juha.yrjola@nokia.com>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/touchscreen')
| -rw-r--r-- | drivers/input/touchscreen/ads7846.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index 46d1fec2cfd8..7f384a694d80 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c | |||
| @@ -233,6 +233,21 @@ SHOW(temp1) | |||
| 233 | SHOW(vaux) | 233 | SHOW(vaux) |
| 234 | SHOW(vbatt) | 234 | SHOW(vbatt) |
| 235 | 235 | ||
| 236 | static int is_pen_down(struct device *dev) | ||
| 237 | { | ||
| 238 | struct ads7846 *ts = dev_get_drvdata(dev); | ||
| 239 | |||
| 240 | return ts->pendown; | ||
| 241 | } | ||
| 242 | |||
| 243 | static ssize_t ads7846_pen_down_show(struct device *dev, | ||
| 244 | struct device_attribute *attr, char *buf) | ||
| 245 | { | ||
| 246 | return sprintf(buf, "%u\n", is_pen_down(dev)); | ||
| 247 | } | ||
| 248 | |||
| 249 | static DEVICE_ATTR(pen_down, S_IRUGO, ads7846_pen_down_show, NULL); | ||
| 250 | |||
| 236 | /*--------------------------------------------------------------------------*/ | 251 | /*--------------------------------------------------------------------------*/ |
| 237 | 252 | ||
| 238 | /* | 253 | /* |
| @@ -559,6 +574,8 @@ static int __devinit ads7846_probe(struct spi_device *spi) | |||
| 559 | device_create_file(&spi->dev, &dev_attr_vbatt); | 574 | device_create_file(&spi->dev, &dev_attr_vbatt); |
| 560 | device_create_file(&spi->dev, &dev_attr_vaux); | 575 | device_create_file(&spi->dev, &dev_attr_vaux); |
| 561 | 576 | ||
| 577 | device_create_file(&spi->dev, &dev_attr_pen_down); | ||
| 578 | |||
| 562 | err = input_register_device(input_dev); | 579 | err = input_register_device(input_dev); |
| 563 | if (err) | 580 | if (err) |
| 564 | goto err_free_irq; | 581 | goto err_free_irq; |
| @@ -582,6 +599,8 @@ static int __devexit ads7846_remove(struct spi_device *spi) | |||
| 582 | if (ts->irq_disabled) | 599 | if (ts->irq_disabled) |
| 583 | enable_irq(ts->spi->irq); | 600 | enable_irq(ts->spi->irq); |
| 584 | 601 | ||
| 602 | device_remove_file(&spi->dev, &dev_attr_pen_down); | ||
| 603 | |||
| 585 | if (ts->model == 7846) { | 604 | if (ts->model == 7846) { |
| 586 | device_remove_file(&spi->dev, &dev_attr_temp0); | 605 | device_remove_file(&spi->dev, &dev_attr_temp0); |
| 587 | device_remove_file(&spi->dev, &dev_attr_temp1); | 606 | device_remove_file(&spi->dev, &dev_attr_temp1); |
