All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hector Palacios <hector.palacios@digi.com>
To: <linux-iio@vger.kernel.org>
Cc: <linux-kernel@vger.kernel.org>,
	<devicetree-discuss@lists.ozlabs.org>,
	<alexandre.belloni@free-electrons.com>, <jic23@kernel.org>,
	<lars@metafoo.de>, <fabio.estevam@freescale.com>, <marex@denx.de>,
	<hector.palacios@digi.com>
Subject: [PATCH v3 1/5] iio: mxs-lradc: change the realbits to 12
Date: Mon, 22 Jul 2013 16:03:59 +0200	[thread overview]
Message-ID: <1374501843-19651-2-git-send-email-hector.palacios@digi.com> (raw)
In-Reply-To: <1374501843-19651-1-git-send-email-hector.palacios@digi.com>

The LRADC virtual channels have an 18 bit field to store the sum of up
to 2^5 accumulated samples. The read_raw function however only operates
over a single sample (12 bit resolution).
In order to use this field for scaling operations, we need it to be the
exact resolution value of the LRADC.
Besides, the driver was using an 18 bit mask (LRADC_CH_VALUE_MASK) to
report touch coordinates to userland. A 12 bit mask should be used instead
or else the touch libraries will expect a coordinates range between 0
and 0x3ffff (18 bits), instead of between 0 and 0xfff (12 bits).

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
 drivers/staging/iio/adc/mxs-lradc.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c
index 9f52a28..56667da 100644
--- a/drivers/staging/iio/adc/mxs-lradc.c
+++ b/drivers/staging/iio/adc/mxs-lradc.c
@@ -225,6 +225,9 @@ struct mxs_lradc {
 #define	LRADC_CTRL4_LRADCSELECT_MASK(n)		(0xf << ((n) * 4))
 #define	LRADC_CTRL4_LRADCSELECT_OFFSET(n)	((n) * 4)
 
+#define LRADC_RESOLUTION			12
+#define LRADC_SINGLE_SAMPLE_MASK		((1 << LRADC_RESOLUTION) - 1)
+
 /*
  * Raw I/O operations
  */
@@ -540,9 +543,10 @@ static int mxs_lradc_ts_register(struct mxs_lradc *lradc)
 	__set_bit(EV_ABS, input->evbit);
 	__set_bit(EV_KEY, input->evbit);
 	__set_bit(BTN_TOUCH, input->keybit);
-	input_set_abs_params(input, ABS_X, 0, LRADC_CH_VALUE_MASK, 0, 0);
-	input_set_abs_params(input, ABS_Y, 0, LRADC_CH_VALUE_MASK, 0, 0);
-	input_set_abs_params(input, ABS_PRESSURE, 0, LRADC_CH_VALUE_MASK, 0, 0);
+	input_set_abs_params(input, ABS_X, 0, LRADC_SINGLE_SAMPLE_MASK, 0, 0);
+	input_set_abs_params(input, ABS_Y, 0, LRADC_SINGLE_SAMPLE_MASK, 0, 0);
+	input_set_abs_params(input, ABS_PRESSURE, 0, LRADC_SINGLE_SAMPLE_MASK,
+			     0, 0);
 
 	lradc->ts_input = input;
 	input_set_drvdata(input, lradc);
@@ -817,7 +821,7 @@ static const struct iio_buffer_setup_ops mxs_lradc_buffer_ops = {
 	.channel = (idx),					\
 	.scan_type = {						\
 		.sign = 'u',					\
-		.realbits = 18,					\
+		.realbits = LRADC_RESOLUTION,			\
 		.storagebits = 32,				\
 	},							\
 }

WARNING: multiple messages have this Message-ID (diff)
From: Hector Palacios <hector.palacios@digi.com>
To: linux-iio@vger.kernel.org
Cc: linux-kernel@vger.kernel.org,
	devicetree-discuss@lists.ozlabs.org,
	alexandre.belloni@free-electrons.com, jic23@kernel.org,
	lars@metafoo.de, fabio.estevam@freescale.com, marex@denx.de,
	hector.palacios@digi.com
Subject: [PATCH v3 1/5] iio: mxs-lradc: change the realbits to 12
Date: Mon, 22 Jul 2013 16:03:59 +0200	[thread overview]
Message-ID: <1374501843-19651-2-git-send-email-hector.palacios@digi.com> (raw)
In-Reply-To: <1374501843-19651-1-git-send-email-hector.palacios@digi.com>

The LRADC virtual channels have an 18 bit field to store the sum of up
to 2^5 accumulated samples. The read_raw function however only operates
over a single sample (12 bit resolution).
In order to use this field for scaling operations, we need it to be the
exact resolution value of the LRADC.
Besides, the driver was using an 18 bit mask (LRADC_CH_VALUE_MASK) to
report touch coordinates to userland. A 12 bit mask should be used instead
or else the touch libraries will expect a coordinates range between 0
and 0x3ffff (18 bits), instead of between 0 and 0xfff (12 bits).

Signed-off-by: Hector Palacios <hector.palacios@digi.com>
Acked-by: Marek Vasut <marex@denx.de>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
---
 drivers/staging/iio/adc/mxs-lradc.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/iio/adc/mxs-lradc.c b/drivers/staging/iio/adc/mxs-lradc.c
index 9f52a28..56667da 100644
--- a/drivers/staging/iio/adc/mxs-lradc.c
+++ b/drivers/staging/iio/adc/mxs-lradc.c
@@ -225,6 +225,9 @@ struct mxs_lradc {
 #define	LRADC_CTRL4_LRADCSELECT_MASK(n)		(0xf << ((n) * 4))
 #define	LRADC_CTRL4_LRADCSELECT_OFFSET(n)	((n) * 4)
 
+#define LRADC_RESOLUTION			12
+#define LRADC_SINGLE_SAMPLE_MASK		((1 << LRADC_RESOLUTION) - 1)
+
 /*
  * Raw I/O operations
  */
@@ -540,9 +543,10 @@ static int mxs_lradc_ts_register(struct mxs_lradc *lradc)
 	__set_bit(EV_ABS, input->evbit);
 	__set_bit(EV_KEY, input->evbit);
 	__set_bit(BTN_TOUCH, input->keybit);
-	input_set_abs_params(input, ABS_X, 0, LRADC_CH_VALUE_MASK, 0, 0);
-	input_set_abs_params(input, ABS_Y, 0, LRADC_CH_VALUE_MASK, 0, 0);
-	input_set_abs_params(input, ABS_PRESSURE, 0, LRADC_CH_VALUE_MASK, 0, 0);
+	input_set_abs_params(input, ABS_X, 0, LRADC_SINGLE_SAMPLE_MASK, 0, 0);
+	input_set_abs_params(input, ABS_Y, 0, LRADC_SINGLE_SAMPLE_MASK, 0, 0);
+	input_set_abs_params(input, ABS_PRESSURE, 0, LRADC_SINGLE_SAMPLE_MASK,
+			     0, 0);
 
 	lradc->ts_input = input;
 	input_set_drvdata(input, lradc);
@@ -817,7 +821,7 @@ static const struct iio_buffer_setup_ops mxs_lradc_buffer_ops = {
 	.channel = (idx),					\
 	.scan_type = {						\
 		.sign = 'u',					\
-		.realbits = 18,					\
+		.realbits = LRADC_RESOLUTION,			\
 		.storagebits = 32,				\
 	},							\
 }

  reply	other threads:[~2013-07-22 14:05 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-22 14:03 [PATCH v3 0/5] iio: mxs-lradc: add support to optional divider_by_two Hector Palacios
2013-07-22 14:03 ` Hector Palacios
2013-07-22 14:03 ` Hector Palacios [this message]
2013-07-22 14:03   ` [PATCH v3 1/5] iio: mxs-lradc: change the realbits to 12 Hector Palacios
2013-08-13 21:24   ` Jonathan Cameron
2013-08-13 21:24     ` Jonathan Cameron
2013-07-22 14:04 ` [PATCH v3 2/5] ARM: dts: add reference voltage property for MXS LRADC Hector Palacios
2013-07-22 14:04   ` Hector Palacios
2013-07-22 18:34   ` Lars-Peter Clausen
2013-07-22 18:34     ` Lars-Peter Clausen
2013-07-22 22:06     ` Marek Vasut
2013-07-22 22:06       ` Marek Vasut
2013-07-26  9:23       ` Alexandre Belloni
2013-07-26  9:23         ` Alexandre Belloni
2013-08-13 21:23   ` Jonathan Cameron
2013-08-13 21:23     ` Jonathan Cameron
2013-08-13 21:23     ` Jonathan Cameron
2013-08-14 14:44     ` Pawel Moll
2013-08-14 14:44       ` Pawel Moll
2013-08-14 14:44       ` Pawel Moll
2013-08-21 22:13       ` Alexandre Belloni
2013-08-21 22:13         ` Alexandre Belloni
2013-08-21 22:13         ` Alexandre Belloni
2013-08-22  6:17         ` Jonathan Cameron
2013-08-22  6:17           ` Jonathan Cameron
2013-08-22  6:17           ` Jonathan Cameron
2013-08-22 16:51           ` Pawel Moll
2013-08-22 16:51             ` Pawel Moll
2013-08-23 23:00             ` Jonathan Cameron
2013-09-23 12:47               ` Alexandre Belloni
2013-09-23 12:47                 ` Alexandre Belloni
2013-09-23 13:39                 ` Hector Palacios
2013-09-23 13:39                   ` Hector Palacios
2013-08-22  8:05         ` Hector Palacios
2013-08-22  8:05           ` Hector Palacios
2013-08-22  8:05           ` Hector Palacios
2013-08-22 16:50           ` Pawel Moll
2013-08-22 16:50             ` Pawel Moll
2013-08-22 16:50             ` Pawel Moll
2013-08-22 16:41         ` Pawel Moll
2013-08-22 16:41           ` Pawel Moll
2013-08-22 16:41           ` Pawel Moll
2013-08-22 17:00           ` Lars-Peter Clausen
2013-08-22 17:00             ` Lars-Peter Clausen
2013-08-22 17:00             ` Lars-Peter Clausen
2013-07-22 14:04 ` [PATCH v3 3/5] iio: mxs-lradc: add scale attribute to channels Hector Palacios
2013-07-22 14:04   ` Hector Palacios
2013-07-22 14:04 ` [PATCH v3 4/5] iio: mxs-lradc: add scale_available file " Hector Palacios
2013-07-22 14:04   ` Hector Palacios
2013-07-22 22:36   ` Marek Vasut
2013-07-23  7:00     ` Hector Palacios
2013-07-23  7:00       ` Hector Palacios
2013-07-23  7:00       ` Hector Palacios
2013-07-23  8:46   ` Lars-Peter Clausen
2013-07-23  8:46     ` Lars-Peter Clausen
2013-07-23 13:25     ` Hector Palacios
2013-07-23 13:25       ` Hector Palacios
2013-07-23 13:25       ` Hector Palacios
2013-07-26 13:17       ` Alexandre Belloni
2013-07-26 13:17         ` Alexandre Belloni
2013-07-26 13:17         ` Alexandre Belloni
2013-07-26 16:13         ` Jonathan Cameron
2013-07-26 16:13           ` Jonathan Cameron
2013-07-26 16:13           ` Jonathan Cameron
2013-08-07  7:50           ` Alexandre Belloni
2013-08-07  7:50             ` Alexandre Belloni
2013-08-07  7:50             ` Alexandre Belloni
2013-08-13 21:26             ` Jonathan Cameron
2013-08-13 21:26               ` Jonathan Cameron
2013-08-13 21:26               ` Jonathan Cameron
2013-07-22 14:04 ` [PATCH v3 5/5] iio: mxs-lradc: add write_raw function to modify scale Hector Palacios
2013-07-22 14:04   ` Hector Palacios
2013-07-22 22:37   ` Marek Vasut
2013-07-22 22:37     ` Marek Vasut
2013-12-06 16:28   ` Harald Geyer
2013-12-06 16:32     ` Alexandre Belloni

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=1374501843-19651-2-git-send-email-hector.palacios@digi.com \
    --to=hector.palacios@digi.com \
    --cc=alexandre.belloni@free-electrons.com \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=fabio.estevam@freescale.com \
    --cc=jic23@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marex@denx.de \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.