summaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen
AgeCommit message (Collapse)Author
2020-05-21Merge remote-tracking branch 'remotes/fslc/4.9-2.3.x-imx' into ↵Marcel Ziswiler
toradex_4.9-2.3.x-imx-next Conflicts: sound/soc/codecs/sgtl5000.c sound/soc/fsl/imx-sgtl5000.c
2020-05-19Merge tag 'v4.9.220' into 4.9-2.3.x-imxMarcel Ziswiler
This is the 4.9.220 stable release Conflicts: arch/arm/Kconfig.debug arch/arm/boot/dts/imx7s.dtsi arch/arm/mach-imx/common.h arch/arm/mach-imx/cpuidle-imx6q.c arch/arm/mach-imx/cpuidle-imx6sx.c arch/arm/mach-imx/suspend-imx6.S block/blk-core.c drivers/crypto/caam/caamalg.c drivers/crypto/mxs-dcp.c drivers/dma/imx-sdma.c drivers/gpu/drm/bridge/adv7511/adv7511_drv.c drivers/input/keyboard/imx_keypad.c drivers/input/keyboard/snvs_pwrkey.c drivers/mmc/host/sdhci.c drivers/net/can/flexcan.c drivers/net/ethernet/freescale/fec_main.c drivers/net/phy/phy_device.c drivers/net/wireless/ath/ath10k/pci.c drivers/tty/serial/imx.c drivers/usb/dwc3/gadget.c drivers/usb/host/xhci.c include/linux/blkdev.h include/linux/cpu.h include/linux/platform_data/dma-imx-sdma.h kernel/cpu.c net/wireless/util.c sound/soc/fsl/Kconfig sound/soc/fsl/fsl_esai.c sound/soc/fsl/fsl_sai.c sound/soc/fsl/imx-sgtl5000.c
2020-04-15Input: stmpe-ts: preparations for STMPE ADC driverPhilippe Schenker
This patch removes common ADC settings in favor to use stmpe811_adc_common_init that is present in MFD. This is necessary in preparation for the stmpe-adc driver, because those two drivers have common settings for the ADC. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry-picked from 88f29d0f2c8f0d8097dfca9fc3619dfe893e0b15)
2020-04-15mfd: stmpe: Move ADC related defines to MFD headerPhilippe Schenker
Move defines that are ADC related to the header of the overlying MFD, so they can be used from multiple sub-devices. Signed-off-by: Philippe Schenker <philippe.schenker@toradex.com> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> (cherry-picked from 063755ab1d1c1127adc09703185967862584935b)
2020-04-02Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger()Dan Carpenter
[ Upstream commit 32cf3a610c35cb21e3157f4bbf29d89960e30a36 ] These functions are supposed to return negative error codes but instead it returns true on failure and false on success. The error codes are eventually propagated back to user space. Fixes: 48a2b783483b ("Input: add Raydium I2C touchscreen driver") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Link: https://lore.kernel.org/r/20200303101306.4potflz7na2nn3od@kili.mountain Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-02Input: raydium_i2c_ts - use true and false for boolean valuesGustavo A. R. Silva
[ Upstream commit 6cad4e269e25dddd7260a53e9d9d90ba3a3cc35a ] Return statements in functions returning bool should use true or false instead of an integer value. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-02-28Input: edt-ft5x06 - work around first register access errorPhilipp Zabel
[ Upstream commit e112324cc0422c046f1cf54c56f333d34fa20885 ] The EP0700MLP1 returns bogus data on the first register read access (reading the threshold parameter from register 0x00): edt_ft5x06 2-0038: crc error: 0xfc expected, got 0x40 It ignores writes until then. This patch adds a dummy read after which the number of sensors and parameter read/writes work correctly. Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de> Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> Tested-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-01-29Input: sun4i-ts - add a check for devm_thermal_zone_of_sensor_registerChuhong Yuan
commit 97e24b095348a15ec08c476423c3b3b939186ad7 upstream. The driver misses a check for devm_thermal_zone_of_sensor_register(). Add a check to fix it. Fixes: e28d0c9cd381 ("input: convert sun4i-ts to use devm_thermal_zone_of_sensor_register") Signed-off-by: Chuhong Yuan <hslester96@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-01-29Input: sur40 - fix interface sanity checksJohan Hovold
commit 6b32391ed675827f8425a414abbc6fbd54ea54fe upstream. Make sure to use the current alternate setting when verifying the interface descriptors to avoid binding to an invalid interface. This in turn could cause the driver to misbehave or trigger a WARN() in usb_submit_urb() that kernels with panic_on_warn set would choke on. Fixes: bdb5c57f209c ("Input: add sur40 driver for Samsung SUR40 (aka MS Surface 2.0/Pixelsense)") Signed-off-by: Johan Hovold <johan@kernel.org> Acked-by: Vladis Dronov <vdronov@redhat.com> Link: https://lore.kernel.org/r/20191210113737.4016-8-johan@kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-01-04Input: atmel_mxt_ts - disable IRQ across suspendEvan Green
[ Upstream commit 463fa44eec2fef50d111ed0199cf593235065c04 ] Across suspend and resume, we are seeing error messages like the following: atmel_mxt_ts i2c-PRP0001:00: __mxt_read_reg: i2c transfer failed (-121) atmel_mxt_ts i2c-PRP0001:00: Failed to read T44 and T5 (-121) This occurs because the driver leaves its IRQ enabled. Upon resume, there is an IRQ pending, but the interrupt is serviced before both the driver and the underlying I2C bus have been resumed. This causes EREMOTEIO errors. Disable the IRQ in suspend, and re-enable it on resume. If there are cases where the driver enters suspend with interrupts disabled, that's a bug we should fix separately. Signed-off-by: Evan Green <evgreen@chromium.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-12-21Input: goodix - add upside-down quirk for Teclast X89 tabletHans de Goede
commit df5b5e555b356662a5e4a23c6774fdfce8547d54 upstream. The touchscreen on the Teclast X89 is mounted upside down in relation to the display orientation (the touchscreen itself is mounted upright, but the display is mounted upside-down). Add a quirk for this so that we send coordinates which match the display orientation. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Bastien Nocera <hadess@hadess.net> Link: https://lore.kernel.org/r/20191202085636.6650-1-hdegoede@redhat.com Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-12-21Input: cyttsp4_core - fix use after free bugPan Bian
[ Upstream commit 79aae6acbef16f720a7949f8fc6ac69816c79d62 ] The device md->input is used after it is released. Setting the device data to NULL is unnecessary as the device is never used again. Instead, md->input should be assigned NULL to avoid accessing the freed memory accidently. Besides, checking md->si against NULL is superfluous as it points to a variable address, which cannot be NULL. Signed-off-by: Pan Bian <bianpan2016@163.com> Link: https://lore.kernel.org/r/1572936379-6423-1-git-send-email-bianpan2016@163.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-11-25Input: silead - try firmware reload after unsuccessful resumeJulian Sax
[ Upstream commit dde27443211062e841806feaf690674b7c3a599f ] A certain silead controller (Chip ID: 0x56810000) loses its firmware after suspend, causing the resume to fail. This patch tries to load the firmware, should a resume error occur and retries the resuming. Signed-off-by: Julian Sax <jsbc@gmx.de> Acked-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-11-25Input: st1232 - set INPUT_PROP_DIRECT propertyMartin Kepplinger
[ Upstream commit 20bbb312079494a406c10c90932e3c80837c9d94 ] This is how userspace checks for touchscreen devices most reliably. Signed-off-by: Martin Kepplinger <martink@posteo.de> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
2018-12-27Input: atmel_mxt_ts - fix reset-gpio for level based irqsSebastian Reichel
The current reset-gpio support triggers an interrupt storm on platforms using the maxtouch with level based interrupt. The Motorola Droid 4, which I used for some of the tests is not affected, since it uses a edge based interrupt. This change avoids the interrupt storm by enabling the device while its interrupt is disabled. Afterwards we wait 100ms. This is important for two reasons: The device is unresponsive for some time (~22ms for mxt224E) and the CHG (interrupt) line is not working properly for 100ms. We don't need to wait for any following interrupts, since the following mxt_initialize() checks for bootloader mode anyways. This fixes a boot issue on GE PPD (watchdog kills device due to interrupt storm) and does not cause regression on Motorola Droid 4. Fixes: f657b00df22e ("Input: atmel_mxt_ts - add support for reset line") Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Reviewed-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit ca1cd36cef00260db6b35b32d863e0c580c0488d) (cherry picked from commit 6d7ffbea51c1f314a4435065147b36159169571f)
2018-12-24Input: atmel_mxt_ts - add support for reset lineSebastian Reichel
Provide support for controlling reset pin. If this is not driven correctly the device will be held in reset and will not respond. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit f657b00df22e231da217ca0162a75db452475e8f) Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
2018-12-24Input: atmel_mxt_ts - use more managed resourcesSebastian Reichel
Switch mxt_data and interrupt to resource managed allocation methods, which cleans up the driver slightly and prepares for adding reset GPIO support. Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> (cherry picked from commit 8cc8446b9b62ef954b630ed30e53bd1553e916a6) Signed-off-by: Gerard Salvatella <gerard.salvatella@toradex.com>
2018-12-24mfd: stmpe: add ADC block resourcesStefan Agner
In order to use the auxiliar ADC inputs of STMPE811 devices we need to add resources for the ADC block. Also move the ADC macros from the touchscreen driver to the general header file. We will need them for the ADC driver in future. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit 824e28985b9cccb8906500aa20b7c33a95e6608a)
2018-12-24add ar1021 touchscreenTroy Kisky
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit 90a9dfc61fcd7dd4ce4c1aa4cbcaf22addc7c0d5) (cherry picked from commit 6c4f140de0561be6aa0d611e309956d6ca0f0070)
2018-12-24touchscreen: fusion_F0710A: Reset controller if clear interrupt operation failsSanchayan Maity
Add support for resetting the controller using the gpio reset pin if interrupt could not be cleared. If clearing the interrupt fails, the interrupt line stays high and no further interrupts are generated resulting in a non functioning touchscreen until next reboot, when we reset the controller again in probe. Signed-off-by: Sanchayan Maity <maitysanchayan@gmail.com> Signed-off-by: Stefan Agner <stefan.agner@toradex.com> (cherry picked from commit 5b64e07bc32581ee7e8c12125a0d12209e42923c) (cherry picked from commit 967986fe0f8d685da5108868b60004e51eda89b2)
2018-12-24input: touchscreen: fusion: implement multitouch with slot handlingStefan Agner
According to multi-touch-protocol.txt the kernel knows two type of devices: - Type A: devices which provide anonymous contacts - Type B: devices which are capable of tracking individual contacts The Fusion touch screen is a Type B device: The Touch ID field allows to differentiate between 2 different fingers. This updates the driver to properly allocate a slot for each identified contact and use the helper functions available from the input core system. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit 2ff9e2473496f651f0a030568a889d27d1ba2bd5) (cherry picked from commit d4afe65cd34c0e97ed7514000d4d716c10d33aca)
2018-12-24input: touchscreen: fusion: use level triggered interruptStefan Agner
Use level triggered interrupt which makes sure that even we miss a rising edge (due to latencies in the kernel), the interrupt still will be handled later, and doesn't freeze the input device. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit bca32cdab5a08c359f64790d4f9be15d912b0842) (cherry picked from commit 5be4f48a1910f1593448719a52ce87a886af9a99)
2018-12-24input: touchscreen: fusion: add device tree integrationMax Krummenacher
Add device tree integration and add the device to the dtb. i2c device, interrupt and reset GPIO can be specified in the dts as follows: Note that additionally you may have to set the pinmuxing for the pins to be GPIO. &i2c1 { status = "okay"; pcap@10 { /* TouchRevolution Fusion 7 and 10 multi-touch controller */ compatible = "touchrevolution,fusion-f0710a"; reg = <0x10>; gpios = <&gpio6 10 0 /* MXM-11, Pen down interrupt */ &gpio6 9 0 /* MXM-13, Reset interrupt */ >; }; Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> (cherry picked from commit 577474209d954111002d360493ab418fde256668) (cherry picked from commit fbfa23b72ed4a72118c5a5c6c7759a4660e7fb87)
2018-12-24input: touchscreen: fusion: platform independent GPIO descriptionStefan Agner
Use platform independent description for requested GPIOs. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit c300f3a605f8984449c1a5324fd3edda6f2fd8ff) (cherry picked from commit 7b4ba14c321ed0522ce477030a9071b3962049d3) (cherry picked from commit 02411eed51279f2e1c0bd2f8676ada70aa51ac0a)
2018-12-24input: touchscreen: fusion: fix error handlingStefan Agner
Fix chip reset by sleeping long enought after reset. Do proper error handling (free GPIO on failure). Use dev_* for message logging to get similar messages for all fusion driver related errors and warnings. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit 63b293000723e61a880470f093fbe82e86ebd81b) (cherry picked from commit 834518da7d48d1c12b13d59959e95ff60d525326) (cherry picked from commit fd92393ee65dd9106c491bd7fbbbc2109e4ec2d1)
2018-12-24input: touchscreen: fusion: use new I2C PM functionsStefan Agner
To avoid warnings use the new I2C power management function for suspend and resume. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit 9d996316a470d37fb71c521f27106b014f3f0b23) (cherry picked from commit 537684b6ccb249ee9afa81a57b0e0d30348f7b13) (cherry picked from commit 808f8b9ef2aacc0818817d4032986b07a3342183)
2018-12-24input: touchscreen: added platform data for Fusion touchscreenStefan Agner
Added platform data struct to define interrupt and reset GPIO. This allows to initialize the touchscreen controller inside the driver rather then in each platform and use the driver as a module. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit cb82730b70f31af3b43041ac4e47de69c18016c9) (cherry picked from commit b0c045aef6b33205bffc1489a2887a88eae8809e) (cherry picked from commit ef325506b3e38edc8b780e5457f88008871fa4da)
2018-12-24input: touchscreen: fix race condition in Fusion driverStefan Agner
When the next interrupt request apeares between the confirmation of the previous (a write via I2C, fusion_F0710A_write_complete) and the reenable of the GPIO interrupt, the driver hangs and no more touch inputs are reported. This patch moves the confirmation after the reenabling of the GPIO interrupt. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit e95019a4f20b8cdfbe03658e4f73b69cdcf97540) (cherry picked from commit 8caf6069de4f9bf34a1a8e89ac242a9801261ae0) (cherry picked from commit 3e2c068a160275411cc6eea90befbb4aa4318b47)
2018-12-24input: touchscreen: add ABS_X/ABS_Y axis for Fusion touchscreenStefan Agner
Recent evdev X-Server input driver implementation complain when only multitouch axes have been reported ("found only multitouch-axes. That shouldn't happen."). Therefor also report the primary touch detection with default axis. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Max Krummenacher <max.krummenacher@toradex.com> (cherry picked from commit dda7a631ac901e4d140e8a6612c5c6b5506b6a91) (cherry picked from commit d2443260e836f5a0fd420173b263a0fbb845180c) (cherry picked from commit ac9343d2963faa395d1614bdbfc3c2cdcfc9c365)
2018-12-24input: touchscreen: add Fusion 7 and 10 multi-touch driverMax Krummenacher
This patch adds the multi-touch input driver for the TouchRevolution Fusion 7 and 10 panels (See Fusion 7 and 10 drivers for Linux.pdf and Linux Drivers Fusion 10.zip) as downloaded in 07.2014 Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> Acked-by: Marcel Ziswiler <marcel.ziswiler@toradex.com> (cherry picked from commit de4b3e00fc9d3c85cb64ff1898cab1cfa6cd5212) (cherry picked from commit a9fc7d57293ac3fe2b7d118c6716049d14a2fd38)
2018-10-02Merge tag 'v4.9.130' into 4.9-2.3.x-imxGary Bisson
This is the 4.9.130 stable release
2018-09-26input: rohm_bu21023: switch to i2c_lock_bus(..., I2C_LOCK_SEGMENT)Peter Rosin
[ Upstream commit 193c2a07cfaacb9249ab0e3d34bce32490879355 ] Locking the root adapter for __i2c_transfer will deadlock if the device sits behind a mux-locked I2C mux. Switch to the finer-grained i2c_lock_bus with the I2C_LOCK_SEGMENT flag. If the device does not sit behind a mux-locked mux, the two locking variants are equivalent. Signed-off-by: Peter Rosin <peda@axentia.se> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-09-24Merge tag 'v4.9.128' into 4.9-2.3.x-imxGary Bisson
This is the 4.9.128 stable release
2018-09-19Input: atmel_mxt_ts - only use first T9 instanceNick Dyer
[ Upstream commit 36f5d9ef26e52edff046b4b097855db89bf0cd4a ] The driver only registers one input device, which uses the screen parameters from the first T9 instance. The first T63 instance also uses those parameters. It is incorrect to send input reports from the second instances of these objects if they are enabled: the input scaling will be wrong and the positions will be mashed together. This also causes problems on Android if the number of slots exceeds 32. In the future, this could be handled by looking for enabled touch object instances and creating an input device for each one. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Acked-by: Benson Leung <bleung@chromium.org> Acked-by: Yufeng Shen <miletus@chromium.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-08-24MLK-18721-1: input: touch: Synaptics: add x/y diagonal rotation supportHaibo Chen
Add x/y coordinate diagonal rotation support, user can use this feature by add "synaptics,diagonal-rotation" in dts. Signed-off-by: Haibo Chen <haibo.chen@nxp.com> Reviewed-by: Fugang Duan <fugang.duan@nxp.com>
2018-08-24MLK-18816-2 input/touch: do not clear touch interrupt when enable irqHaibo Chen
On imx8mscale-evk baord, if I2C bus is configed pull-up, then once send the i2c command to clear touch interrupt during the touch initialization, touch will keep SDA line in low level, block the i2c bus. If config the I2C bus pull-down, then this issue gone. Due to it is not reasonable to set the I2c bus to pull-down for other i2c slave device, this patch work as a workaround, just remove this i2c command, do not clear the touch interrupt, test that touch can also work well after the initialization. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2018-08-24MLK-17779 input: egalax_ts: free irq resource before request the line as GPIOFugang Duan
If GPIO is connected to an IRQ then it should not request it as GPIO function only when free its IRQ resouce. Tested-by: Haibo Chen <haibo.chen@nxp.com> Signed-off-by: Fugang Duan <fugang.duan@nxp.com> Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Signed-off-by: Robin Gong <yibin.gong@nxp.com
2018-08-24MLK-17829 touchscreen: Add synaptics_dsx S3508 i2c touch driverHaibo Chen
Add S3508 touch driver support. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2018-08-24MLK-15348-01 input: touch: focaltech: add more property to support multiple ↵Fugang Duan
panel Add device node more property to support multiple panel. Signed-off-by: Fugang Duan <fugang.duan@nxp.com> (cherry picked from commit: 8e85cfa29fa33b9a6c1335e9f1355290d0f0fab7)
2018-08-24MLK-15950 input: egalax_ts: switch to i2c interface before wake upHaibo Chen
For HannStar (HSD100PXN1 Rev: 1-A00C11 F/W:0634) LVDS touch screen, it has a special request for the EETI touch controller. The host needs to trigger I2C event to device FW at booting first, and then the FW can switch to I2C interface. Otherwise, the FW can’t work with I2C interface, and can't generate any interrupt when touch the screen. This patch send an I2C command before the device wake up, make sure the device switch to I2C interface first. Signed-off-by: Haibo Chen <haibo.chen@nxp.com> Reviewed-by: Andy Duan <fugang.duan@nxp.com>
2018-08-24MLK-14671 input: touch: focaltech: disable debug informationGao Pan
disable debug information for focaltech touch. Signed-off-by: Gao Pan <pandy.gao@nxp.com> (cherry picked from commit b88a0ed7837ab964253f710da03fdab481592350)
2018-08-24MLK-14473: touchscreen: Fix return typeRobert Chiras
The touchscreen driver, max11801, which is on 12c2 bus, won't be probed when using the hdcp specific DTS (this is disabling 12c2, since it will acquire it for DDC communications). Since this driver won't be probed, it will spam the dmesg with the pr_err from max11801_read_adc() function. This function is periodically called by the battery driver. For this reason, I removed the pr_err() call. Also, to be noticed that the function signature is u32, but in case of an error it will return a negative integer. In order to correctly propagate errors, I changed the function signature to int. This is safe, since the read value from i2c is on 16 bits (MSB and LSB on 8 bits). Also, the function calibration_voltage is calling max11801_read_adc from touchscreen driverm which can return negative values in case of an error. I case of an error, just stop reading ADC data and return 0 as voltage_data. Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
2018-08-24MLK-14392-1 input: touch: add focaltech touch screen supportGao Pan
add focaltech touch screen support Signed-off-by: Gao Pan <pandy.gao@nxp.com> (cherry-pick from 595cefbee5586e77ceb9ad900c256177a98367c7)
2018-08-24MLK-13244 input: touchscreen: add support for vtl touchscreenAlejandro Lozano
Add the support for a CT36X based touchscreens using the CT36X controller and i2c touchscreen interface. Signed-off-by: Alejandro Lozano <alejandro.lozano@nxp.com> Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com> Signed-off-by: Alejandro Sierra <alejandro.sierra@nxp.com>
2018-08-24MLK-12176 Input: ads7846: add return value check after calling ↵Fugang Duan
.of_property_read_u32() Add return value check after calling .of_property_read_u32(). The issue was reported by coverity. Signed-off-by: Fugang Duan <B38611@freescale.com>
2018-08-24MLK-10142-1 touchscreen: elan: add elan touch screen driver supportHaibo Chen
Add elan touch screen driver in linux kernel. Signed-off-by: Haibo Chen <haibo.chen@freescale.com> (cherry picked from commit 20180719c54760359d78544d55e4ac1fabaf6e8b)
2018-08-24MLK-11703-1: input: touchscreen: max11801_ts: Add DCM mode for max11801 ADCRobin Gong
cherry-pick below patch: ENGR00275004-1 input: touchscreen: max11801_ts: Add DCM mode for max11801 ADC We need add DCM mode/AUX mode for ADC converter function of max11801, so that it can be used to read voltage of battery. Meanwhile, let the driver based on device tree. The patchset is based on below patch (V3.5.7): commit 4001774cf51f0140ae7e4e8e0ec1d86475790682 Author: Rong Dian <b38775@freescale.com> Date: Fri Jan 18 14:24:28 2013 +0800 Engr00240284-1 MAX11801: Add DCM aux adc sample function 1.Add direct conversion mode operations 2.Add aux adc sample function Signed-off-by: Robin Gong <b38343@freescale.com> (cherry picked from commit 57b11d40431336c28f15a8a67af41907948c42b6) (cherry picked from commit 0cf609eb332e206fa6dac3df25ae906c7ab8bd4c)
2018-06-16Input: goodix - add new ACPI id for GPD Win 2 touch screenEthan Lee
commit 5ca4d1ae9bad0f59bd6f851c39b19f5366953666 upstream. GPD Win 2 Website: http://www.gpd.hk/gpdwin2.asp Tested on a unit from the first production run sent to Indiegogo backers Signed-off-by: Ethan Lee <flibitijibibo@gmail.com> Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-05-09Input: atmel_mxt_ts - add touchpad button mapping for Samsung Chromebook ProVittorio Gambaletta (VittGam)
commit f372b81101e6895252298e563d634d5e44ae81e7 upstream. This patch adds the correct platform data information for the Caroline Chromebook, so that the mouse button does not get stuck in pressed state after the first click. The Samus button keymap and platform data definition are the correct ones for Caroline, so they have been reused here. Signed-off-by: Vittorio Gambaletta <linuxbugs@vittgam.net> Signed-off-by: Salvatore Bellizzi <lkml@seppia.net> Tested-by: Guenter Roeck <groeck@chromium.org> Cc: stable@vger.kernel.org [dtor: adjusted vendor spelling to match shipping firmware] Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-04-13Input: goodix - disable IRQs while suspendedHans de Goede
[ Upstream commit faec44b6838312484d63e82286087cf2d5ebb891 ] We should not try to do any i2c transfers before the controller is resumed (which happens before our resume method gets called). So we need to disable our IRQ while suspended to enforce this. The code paths for devices with GPIOs for the int and reset pins already disable the IRQ the through goodix_free_irq(). This commit also disables the IRQ while suspended for devices without GPIOs for the int and reset pins. This fixes the i2c bus sometimes getting stuck after a suspend/resume causing the touchscreen to sometimes not work after a suspend/resume. This has been tested on a GPD pocked device. BugLink: https://github.com/nexus511/gpd-ubuntu-packages/issues/10 BugLink: https://www.reddit.com/r/GPDPocket/comments/7niut2/fix_for_broken_touch_after_resume_all_linux/ Tested-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Bastien Nocera <hadess@hadess.net> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>