Touchscreen samples are taken in differential mode. Therefore an external reference is not needed. When working with internal vref disabling vref after every touchscreen sample leads to settling effects in sampling and errors in position data. This patch disables the internal vref only if keep_vref_on us is not set in platform_data. Tested on i.MX35 with costum board Signed-off-by: Markus Niebel <Markus.Niebel@xxxxxx> --- drivers/input/touchscreen/ads7846.c | 9 ++++----- 1 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index f02028e..b271633 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c @@ -1001,15 +1001,14 @@ static void __devinit ads7846_setup_spi_msg(struct ads7846 *ts, struct ads7846_packet *packet = ts->packet; int vref = pdata->keep_vref_on; - if (ts->model == 7873) { + if (ts->model == 7873) /* * The AD7873 is almost identical to the ADS7846 - * keep VREF off during differential/ratiometric - * conversion modes. + * set VREF off during differential/ratiometric + * conversion modes if keep_vref_on is not set. + * TODO: does keep_vref_on collide with usage of external vref? */ ts->model = 7846; - vref = 0; - } ts->msg_count = 1; spi_message_init(m); -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html