public inbox for linux-omap@vger.kernel.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@nokia.com>
To: omap-linux <linux-omap-open-source@linux.omap.com>
Cc: Paul.Mundt@nokia.com, Dmitry Torokhov <dtor_core@ameritech.net>,
	"Yrjola Juha (Nokia-M/Helsinki)" <Juha.Yrjola@nokia.com>
Subject: [PATCH] ads7846: pressure value limitation
Date: Tue, 21 Mar 2006 20:56:12 +0200	[thread overview]
Message-ID: <1142967372.8050.45.camel@mammoth.research.nokia.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 252 bytes --]

Limit the pressure value to the maximum specified in the board-*
specific file. Samples with pressure values beyond the maximum are
considered non-reliable. For these report the x,y values measured last.

Signed-off-by: Imre Deak <imre.deak@nokia.com>

[-- Attachment #2: ads7846-pressure_max-patch.diff --]
[-- Type: text/x-patch, Size: 1392 bytes --]

diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index 2b9a521..02f4cdc 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -81,10 +83,14 @@ struct ads7846 {
 	u16			model;
 	u16			vref_delay_usecs;
 	u16			x_plate_ohms;
+	u16			pressure_max;
 
 	u8			read_x, read_y, read_z1, read_z2, pwrdown;
 	u16			dummy;		/* for the pwrdown read */
 	struct ts_event		tc;
+	u16			last_x;
+	u16			last_y;
+	u16			last_pressure;
 
 	struct spi_transfer	xfer[10];
 	struct spi_message	msg[5];
@@ -345,6 +351,18 @@ static void ads7846_rx(void *ads)
 	} else
 		Rt = 0;
 
+	if (Rt > ts->pressure_max) {
+		if (ts->last_pressure) {
+			x = ts->last_x;
+			y = ts->last_y;
+		}
+		Rt = ts->pressure_max;
+	}
+
+	ts->last_x = x;
+	ts->last_y = y;
+	ts->last_pressure = Rt;
+
 	/* NOTE:  "pendown" is inferred from pressure; we don't rely on
 	 * being able to check nPENIRQ status, or "friendly" trigger modes
 	 * (both-edges is much better than just-falling or low-level).
@@ -596,6 +615,7 @@ static int __devinit ads7846_probe(struc
 	ts->model = pdata->model ? : 7846;
 	ts->vref_delay_usecs = pdata->vref_delay_usecs ? : 100;
 	ts->x_plate_ohms = pdata->x_plate_ohms ? : 400;
+	ts->pressure_max = pdata->pressure_max ? : 255;
 	ts->debounce_max = pdata->debounce_max ? : 1;
 	ts->debounce_tol = pdata->debounce_tol ? : 10;
 


[-- Attachment #3: Type: text/plain, Size: 0 bytes --]



             reply	other threads:[~2006-03-21 18:56 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-03-21 18:56 Imre Deak [this message]
2006-03-21 19:23 ` [PATCH] ads7846: pressure value limitationads Imre Deak
2006-03-23 10:49   ` andrzej zaborowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1142967372.8050.45.camel@mammoth.research.nokia.com \
    --to=imre.deak@nokia.com \
    --cc=Juha.Yrjola@nokia.com \
    --cc=Paul.Mundt@nokia.com \
    --cc=dtor_core@ameritech.net \
    --cc=linux-omap-open-source@linux.omap.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox