linux/drivers/input/touchscreen
Andrey Gelman 34fff37b64 Input: ads7846 - correct the value got from SPI
commit 879f2fea8a upstream.

According to the touch controller spec, SPI return a 16 bit value, only 12
bits are valid, they are bit[14-3].

The value of MISO and MOSI can be configured when SPI is in idle mode.
Currently this touch driver assumes the SPI bus sets the MOSI and MISO in
low level when SPI bus is in idle mode. So the bit[15] of the value got
from SPI bus is always 0. But when SPI bus congfigures the MOSI and MISO in
high level during the SPI idle mode, the bit[15] of the value get from SPI
is always 1. If bit[15] is not masked, we may get the wrong value.

Mask the invalid bit to make sure the correct value gets returned.
Regardless of the SPI bus idle configuration.

Signed-off-by: Andrey Gelman <andrey.gelman@compulab.co.il>
Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
Signed-off-by: Igor Grinberg <grinberg@compulab.co.il>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
History 2017-10-12 15:28:16 +01:00
..
88pm860x-ts.c Input: 88pm860x-ts - switch to using managed resources 2014-05-29 00:26:35 -07:00
ad7877.c Input: ads7877 - remove bitrotted comment 2014-05-14 16:39:47 -07:00
ad7879-i2c.c Input: remove use of __devexit 2012-11-24 00:05:38 -08:00
ad7879-spi.c Input: ad7879-spi - remove redundant spi_set_drvdata 2013-09-20 09:58:29 -07:00
ad7879.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
ad7879.h Input: ad7879 - consolidate PM methods 2011-11-15 22:24:22 -08:00
ads7846.c Input: ads7846 - correct the value got from SPI 2017-10-12 15:28:16 +01:00
atmel-wm97xx.c Input: atmel-wm97xx - fix compile error 2013-11-20 21:15:52 -08:00
atmel_mxt_ts.c Input: atmel_mxt_ts - fix invalid return from mxt_get_bootloader_version 2014-06-07 23:20:24 -07:00
auo-pixcir-ts.c Input: auo-pixcir-ts - make of_device_id array const 2014-05-14 16:39:58 -07:00
bu21013_ts.c Input: bu21013_ts - add support for Device Tree booting 2012-11-27 23:05:19 -08:00
cy8ctmg110_ts.c Input: use dev_get_platdata() 2013-12-06 02:06:29 -08:00
cyttsp4_core.c Input: cyttsp4 - remove unnecessary work pending test 2013-11-20 21:15:26 -08:00
cyttsp4_core.h Input: cyttsp4 - use 16bit address for I2C/SPI communication 2013-07-06 21:57:06 -07:00
cyttsp4_i2c.c Input: cyttsp4 - I2C driver for Cypress TMA4XX touchscreen devices 2013-06-30 21:24:24 -07:00
cyttsp4_spi.c Input: cyttsp4 - replace IS_ERR and PTR_ERR with PTR_ERR_OR_ZERO 2013-11-11 00:01:45 -08:00
cyttsp_core.c Linux 3.13-rc4 2013-12-16 02:04:49 -08:00
cyttsp_core.h Input: cyttsp4 - use 16bit address for I2C/SPI communication 2013-07-06 21:57:06 -07:00
cyttsp_i2c.c Input: cyttsp - I2C driver split into two modules 2013-06-30 21:24:16 -07:00
cyttsp_i2c_common.c Input: cyttsp - include appropriate header file in cyttsp_i2c_common.c 2013-12-15 02:54:04 -08:00
cyttsp_spi.c Input: cyttsp4 - use 16bit address for I2C/SPI communication 2013-07-06 21:57:06 -07:00
da9034-ts.c Input: da9034-ts - switch to using managed resources 2014-05-28 23:48:36 -07:00
da9052_tsi.c Input: da9052_tsi - remove redundant platform_set_drvdata() 2013-05-05 20:14:41 -07:00
dynapro.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
edt-ft5x06.c Input: edt-ft5x06 - fix an i2c write for M09 support 2014-06-07 23:20:22 -07:00
eeti_ts.c Input: use dev_get_platdata() 2013-12-06 02:06:29 -08:00
egalax_ts.c Input: egalax_ts - make of_device_id array const 2014-05-14 16:39:59 -07:00
elo.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
fujitsu_ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
gunze.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
hampshire.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
hp680_ts_input.c Input: hp680_ts_input - ensure arguments to request_irq and free_irq are compatible 2012-03-12 22:17:56 -07:00
htcpen.c Input: htcpen - remove redundant dev_set_drvdata 2013-09-18 07:53:30 -07:00
ili210x.c Input: use dev_get_platdata() 2013-12-06 02:06:29 -08:00
inexio.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
intel-mid-touch.c Input: intel-mid-touch - switch to using managed resources 2014-05-29 00:26:33 -07:00
jornada720_ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
Kconfig Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-06-09 18:46:02 -07:00
lpc32xx_ts.c Input: lpc32xx_ts - make of_device_id array const 2014-05-14 16:40:00 -07:00
mainstone-wm97xx.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
Makefile Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2014-06-09 18:46:02 -07:00
max11801_ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
mc13783_ts.c Input: mc13783_ts - remove redundant platform_set_drvdata() 2013-05-05 20:14:52 -07:00
mcs5000_ts.c Input: mcs5000_ts - switch to using managed resources 2014-05-28 23:48:17 -07:00
migor_ts.c Input: convert I2C drivers to use module_i2c_driver() 2012-03-16 23:06:19 -07:00
mk712.c Update broken web addresses in the kernel. 2010-10-18 11:03:14 +02:00
mms114.c Input: mms114 - fix incorrect input device name 2014-05-28 23:48:03 -07:00
mtouch.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
of_touchscreen.c Input: add common DT binding for touchscreens 2014-05-29 00:05:59 -07:00
pcap_ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
penmount.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
pixcir_i2c_ts.c Input: pixcir_i2c_ts - implement wakeup from suspend 2014-05-18 23:25:57 -07:00
s3c2410_ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
st1232.c PM / QoS: Add type to dev_pm_qos_add_ancestor_request() arguments 2014-02-11 00:36:00 +01:00
stmpe-ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
sun4i-ts.c Input: sun4i-ts - add support for temperature sensor 2014-05-14 16:40:06 -07:00
sur40.c Input: sur40 - validate number of endpoints before using them 2017-07-18 18:40:17 +01:00
ti_am335x_tsc.c Input: ti_am335x_tsc - warn about incorrect spelling 2014-06-15 00:28:44 -07:00
touchit213.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
touchright.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
touchwin.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
tps6507x-ts.c Input: tps6507x-ts - convert to polled input device infrastructure 2013-07-01 11:38:41 -07:00
tsc40.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
tsc2005.c Input: tsc2005 - add DT support 2014-05-29 00:06:00 -07:00
tsc2007.c Input: tsc2007 - convert to use devres-managed resources 2013-11-25 18:27:56 -08:00
ucb1400_ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
usbtouchscreen.c Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen 2015-08-11 09:57:44 +01:00
w90p910_ts.c Input: w90p910_ts - remove redundant platform_set_drvdata() 2013-05-08 09:04:16 -07:00
wacom_i2c.c Input: wacom_i2c - implement hovering capability 2013-06-18 23:19:00 -07:00
wacom_w8001.c Input: wacom_w8001 - w8001_MAX_LENGTH should be 13 2016-08-22 22:38:19 +01:00
wm97xx-core.c Input: use dev_get_platdata() 2013-12-06 02:06:29 -08:00
wm831x-ts.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00
wm9705.c Input: wm97xx - mark channels which need pen_down 2011-07-04 19:31:47 -07:00
wm9712.c Input: wm9712 - fix dev_dbg newlines 2013-03-12 08:50:20 -07:00
wm9713.c Input: wm97xx - mark channels which need pen_down 2011-07-04 19:31:47 -07:00
zforce_ts.c Input: zforce - make of_device_id array const 2014-05-14 16:40:01 -07:00
zylonite-wm97xx.c Input: delete non-required instances of include <linux/init.h> 2014-01-06 23:23:57 -08:00