summaryrefslogtreecommitdiffstats
path: root/drivers/input/touchscreen/tsc2007.c
Commit message (Collapse)AuthorAgeFilesLines
* Input: drop owner assignment from i2c_driverKrzysztof Kozlowski2015-07-171-1/+0
| | | | | | | i2c_driver does not need to set an owner because i2c_register_driver() will set it. Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
* Input: tsc2007 - Convert msecs to jiffies only onceAaron Sierra2015-03-311-6/+5
| | | | | | | | Eliminate redundant calculations by performing millisecond to jiffy calculations once during driver initialization. Signed-off-by: Aaron Sierra <asierra@xes-inc.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
* Input: tsc2007 - convert to use devres-managed resourcesDmitry Torokhov2013-11-251-39/+40
| | | | | | | | This simplifies error handling path and allows us get rid of tsc2007_remove(). Tested-by: Denis Carikli <denis@eukrea.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
* Input: tsc2007 - remove unused poll_delay from platform dataDmitry Torokhov2013-11-251-2/+0
| | | | | | | The driver does not use poll_delay parameter, so let's remove it. Tested-by: Denis Carikli <denis@eukrea.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
* Input: tsc2007 - add device tree support.Denis Carikli2013-11-251-40/+133
| | | | | Signed-off-by: Denis Carikli <denis@eukrea.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
* Input: remove use of __devexitBill Pemberton2012-11-241-1/+1
| | | | | | | | | CONFIG_HOTPLUG is going away as an option so __devexit is no longer needed. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
* Input: remove use of __devinitBill Pemberton2012-11-241-1/+1
| | | | | | | | | | CONFIG_HOTPLUG is going away as an option so __devinit is no longer needed. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Javier Martinez Canillas <javier@dowhile0.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
* Input: remove use of __devexit_pBill Pemberton2012-11-241-1/+1
| | | | | | | | | CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer needed. Signed-off-by: Bill Pemberton <wfp5p@virginia.edu> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
* Input: convert I2C drivers to use module_i2c_driver()Axel Lin2012-03-161-12/+1
| | | | | | | | | This patch converts the drivers in drivers/input/* to use the module_i2c_driver() macro which makes the code smaller and a bit simpler. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - make sure that X plate resistance is specifiedPhilip Rakity2011-10-111-0/+6
| | | | | | | | | Abort driver initialization if X plate resistance was not specified in platform data as it will cause pressure to be always calculated as 0, and making userspace ignore touch coordinates. Signed-off-by: Philip Rakity <prakity@marvell.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - add open and close methodsDmitry Torokhov2011-08-261-8/+38
| | | | | | | | This will ensure that the device delivers input events only when there are users. Tested-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - convert to threaded IRQDmitry Torokhov2011-08-261-84/+66
| | | | | | | | Instead of using hard IRQ and workqueue solution switch to using threaded interrupt handler to simplify the code and locking rules. Tested-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - add X, Y and Z fuzz factors to platform dataThierry Reding2011-05-171-3/+4
| | | | | | | | | These new platform-specific values can be used to set the fuzz parameter passed to the input_set_abs_params() function for the ABS_X, ABS_Y and ABS_PRESSURE axes. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - add poll_period parameter to platform dataThierry Reding2011-05-171-3/+3
| | | | | | | | This new parameter allows the polling frequency to be configured while keeping the default of once every millisecond. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - add poll_delay parameter to platform dataThierry Reding2011-05-171-2/+3
| | | | | | | | | | | Depending on the quality of the touch panel, the time for the X-, X+, Y- and Y+ inputs to settle may vary. The poll_delay parameter can be used to override the default of 1 millisecond. Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com> Cc: Kwangwoo Lee <kwangwoo.lee@gmail.com> Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - add max_rt parameter to platform dataThierry Reding2011-05-171-1/+3
| | | | | | | | | | | | | | | | | | Finger touch events or very quick stylus events on low-quality panels can cause the tsc2007 to read bogus values. Looking at oscilloscope snapshots, this seems to be caused by the touch event disappearing during the measurements. These bogus values result in misclicks, where the X and Y values deviate from the real position. Most of these misclicks can be filtered out by setting a low enough threshold for the maximum resistance (which is loosely the inverse of the pressure) allowed to consider a set of values valid. Since this behaviour is largely dependent on the type and quality of the panel, this commit introduces the max_rt parameter. The default value is kept at MAX_12BIT. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - debounce pressure measurementThierry Reding2011-05-171-1/+3
| | | | | | | | | When the controller signals a pen-down event via the platform-specific GPIO, while the sample values indicate an invalid measurement, the measurement needs to be repeated. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - fix a redundant assignment for pdataAxel Lin2010-09-021-1/+1
| | | | | Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* i2c: Remove all i2c_set_clientdata(client, NULL) in driversWolfram Sang2010-06-031-2/+0
| | | | | | | | | | | | | | | | | | | | | I2C drivers can use the clientdata-pointer to point to private data. As I2C devices are not really unregistered, but merely detached from their driver, it used to be the drivers obligation to clear this pointer during remove() or a failed probe(). As a couple of drivers forgot to do this, it was agreed that it was cleaner if the i2c-core does this clearance when appropriate, as there is no guarantee for the lifetime of the clientdata-pointer after remove() anyhow. This feature was added to the core with commit e4a7b9b04de15f6b63da5ccdd373ffa3057a3681 to fix the faulty drivers. As there is no need anymore to clear the clientdata-pointer, remove all current occurrences in the drivers to simplify the code and prevent confusion. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Acked-by: Richard Purdie <rpurdie@linux.intel.com> Acked-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* Input: tsc2007 - do not leave dangling clientdata pointerWolfram Sang2010-04-131-0/+2
| | | | | | | | Do not leave dangling client data pointers when unbinding device from the driver. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: make i2c device ids constantMárton Németh2010-01-091-1/+1
| | | | | | | | | The id_table field of the struct i2c_driver is defined as constant in <linux/i2c.h> so it makes sense to mark the initialization data also constant. Signed-off-by: Márton Németh <nm127@freemail.hu> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - check if I2C communication works during probeRichard Röjfors2009-08-041-3/+5
| | | | | | | Check the result when sending the power down command to the controller. Signed-off-by: Richard Röjfors <richard.rojfors.ext@mocean-labs.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - make get_pendown_state platform callback optionalDmitry Torokhov2009-08-041-79/+93
| | | | | | | | In cases when get_pendown_state callback is not available have the driver to fallback on pressure calculation to determine if the pen is up. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - do not read coordinates during probeRichard Röjfors2009-07-261-2/+3
| | | | | | | | Don't read coordinates during probe of the driver, just power down the controller and wait for interrupts. Signed-off-by: Richard Röjfors<richard.rojfors.ext@mocean-labs.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - make init/exit platform hw callbacks optionalRichard Röjfors2009-07-261-3/+6
| | | | | | | | Make init_platform_hw and exit_platform_hw callbacks optional since they are not needed on all platforms. Signed-off-by: Richard Röjfors <richard.rojfors.ext@mocean-labs.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - properly shut off interrupts/delayed workDmitry Torokhov2009-07-261-30/+42
| | | | | | | | | | | Properly shut off interrupts/delayed work by free-ing IRQ first and then ensuring that enable/disable is balanced. Also add __devinit/__devexit markings, restore poll delay/period scheduling logic, make sure we call exit_platform_hw() method when probe fails. Tested-by: Richard Röjfors <richard.rojfors.ext@mocean-labs.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - remove HR timerRichard Röjfors2009-07-261-35/+13
| | | | | | | | | Since it's not allowed to do synchronous I2C in the HR timer callback context we have to switch to using the global workqueue. The work is scheduled every 1ms when polling rather than 5 us. Signed-off-by: Richard Röjfors <richard.rojfors.ext@mocean-labs.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Merge commit 'v2.6.30' into nextDmitry Torokhov2009-06-111-2/+3
|\
| * Input: tsc2007 - fix locking in hrtimer handlerThierry Reding2009-05-111-2/+3
| | | | | | | | | | | | | | | | | | Now that hrtimers are always running in hard irq context we can't unconditionally enable interrupts at the end of the timer function. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Kwangwoo Lee <kwangwoo.lee@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* | Input: tsc2007 - make sure platform provides get_pendown_state()Kwangwoo Lee2009-05-151-1/+1
|/ | | | | | | | The platform codes must provide get_pendown_state() for the driver to work properly. Signed-off-by: Kwangwoo Lee <kwangwoo.lee@gmail.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: tsc2007 - use disable_irq_nosync() in irq handlerBen Nizette2009-04-171-1/+1
| | | | | | | | | | | disable_irq() waits for all running handlers to complete before returning. As such, if it's used to disable an interrupt from that interrupt's handler it will deadlock. This replaces the dangerous instances with the _nosync() variant which doesn't have this problem. Signed-off-by: Ben Nizette <bn@niasdigital.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: struct device - replace bus_id with dev_name(), dev_set_name()Kay Sievers2009-01-291-1/+2
| | | | | | Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
* Input: add tsc2007 based touchscreen driverKwangwoo Lee2008-12-201-0/+381
This drive has been tested on ARM9 based SoC - MV86XX. Signed-off-by: Kwangwoo Lee <kwangwoo.lee@gmail.com> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
OpenPOWER on IntegriCloud