summaryrefslogtreecommitdiff
path: root/drivers/input/touchscreen/atmel_mxt_ts.c
AgeCommit message (Collapse)Author
2013-09-14input: touch: atmel: Update Ftrace logging.Vikas Jain
Renamed touchscreen ftrace event to reflect hardware module it is tracing. With this change, each touchscreen hardware will have seperate ftrace events. Bug 1170830. Change-Id: I45ffb3a264d958c9732d89bd2b5d4d62a9640267 Signed-off-by: Vikas Jain <vjain@nvidia.com> Reviewed-on: http://git-master/r/192314 (cherry picked from commit 1293fbcebba2a07f378f6747678864a5ffba017f) Reviewed-on: http://git-master/r/193664 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Robert Collins <rcollins@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2013-09-14input: touch: atmel: Update Ftrace logging.Vikas Jain
With recent changes in driver, tracing was bypassed. Update tracing point to reflect correct data. Bug 1170830 Change-Id: I6b9dd5cf87a3a259f037287f0676211b80d8fa33 Signed-off-by: Vikas Jain <vjain@nvidia.com> Reviewed-on: http://git-master/r/171387 (cherry picked from commit 1a1fdf7d605249299692ba1802b47873450e3009) Reviewed-on: http://git-master/r/172806 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2013-09-14input:atmel_mxt - add regulator supportXiaohui Tao
Bug 1063749 Change-Id: I47f9f312fbbda99e0746f5017d30d91a38037e35 Signed-off-by: Xiaohui Tao <xtao@nvidia.com> Reviewed-on: http://git-master/r/147118 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com> Reviewed-by: Robert Collins <rcollins@nvidia.com> Rebase-Id: R928aeb27087120eeefa1b34356125ffbc92ec207
2013-09-14touch: atmel_mxt_ts: Remove EARLY_SUSPENDRobert Collins
BUG 959487 Change-Id: I9cc0151b5b7c7d2965d46005bedeca5407144178 Signed-off-by: Robert Collins <rcollins@nvidia.com> Reviewed-on: http://git-master/r/131498 Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Xiaohui Tao <xtao@nvidia.com> Tested-by: Xiaohui Tao <xtao@nvidia.com> Rebase-Id: Rcf016a7a293c34753d02f8e81017a41ab9174b2d
2013-09-14input: touch: atmel_mxt_ts: Add Ftrace logging.Vikas Jain
This change assists automating system wide touch driver performance. Bug 928954 Change-Id: I9a781a97d39f10e4ce5a42d7e4cf372907a26f40 Reviewed-on: http://git-master/r/118984 Signed-off-by: Vikas Jain <vjain@nvidia.com> Signed-off-by: Robert Collins <rcollins@nvidia.com> Reviewed-on: http://git-master/r/131496 Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Xiaohui Tao <xtao@nvidia.com> Tested-by: Xiaohui Tao <xtao@nvidia.com> Rebase-Id: Red7c6ac51909bb481adc5f10249b02700a826454
2013-09-14input: touch: atmel_mxt_ts: Reduce power during LP0.Robert Collins
Maximum power saving is observed by disabling multiple touchscreen objects. Objects must be saved going into LP0, and restored in reverse order upon resuming from LP0. Bug 919435 Change-Id: I660c019a22e08a8e813cc7ceaa7018e6ffc4d966 Reviewed-on: http://git-master/r/88458 Signed-off-by: Robert Collins <rcollins@nvidia.com> Reviewed-on: http://git-master/r/131495 Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Xiaohui Tao <xtao@nvidia.com> Tested-by: Xiaohui Tao <xtao@nvidia.com> Rebase-Id: Rc8690710bc6ab80c95525468541b6b8c1052f384
2013-09-14input: touch: atmel_mxt_ts: Add SysFS interface to slow down scanning.Robert Collins
Video playback would like to save power by slowing touchscreen scanning. This change adds a SysFS interface to allow the scan rate to be programmed by the video display interface. SysFS location: /sys/devices/platform/tegra-i2c.1/i2c-1/1-005a/slowscan_enable Read functions: cat slowscan_enable (returns current register status) Write functions: 0 - Disable slowscan 1 - Enable slowscan 2 N - Program actv_cycle_time with value of N 3 N - Program idle_cycle_time with value of N 4 N - Program actv2idle timeout with value of N (seconds * 10) Bug 891993 Change-Id: I35f3b83797e3216545d164f6096aeac4d06302b5 Rebase-Id: Re4398871d4964d366f0dbdd856a7953600577dea Reviewed-on: http://git-master/r/65006 Signed-off-by: Robert Collins <rcollins@nvidia.com> Reviewed-on: http://git-master/r/131493 Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com> Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Xiaohui Tao <xtao@nvidia.com> Tested-by: Xiaohui Tao <xtao@nvidia.com>
2013-09-14touch: atmel_mxt_ts: Add dynamic config file nameRobert Collins
Change-Id: Iaaf2352159418c25b4377eb1bf164cbc79e03b32 Signed-off-by: Robert Collins <rcollins@nvidia.com> Reviewed-on: http://git-master/r/131490 Reviewed-by: Automatic_Commit_Validation_User Reviewed-by: Xiaohui Tao <xtao@nvidia.com> Tested-by: Xiaohui Tao <xtao@nvidia.com> Reviewed-by: Dan Willemsen <dwillemsen@nvidia.com> GVS: Gerrit_Virtual_Submit Rebase-Id: Rf2e4fcb399966d18c5a86a66dae5419b90981e6a
2013-09-14Merge commit 'maxtouch-v3.0-16-Oct-2012' into ToT_2012-10-16_10-30-AMRobert Collins
Change-Id: I48c5c208c43129a7301848d434744878623c3012 Signed-off-by: Robert Collins <rcollins@nvidia.com> Rebase-Id: R8e1b0542691ff2cf1d59bc77f714792073ca8a58
2013-09-14Partial Revert "Input: convert I2C drivers to use module_i2c_driver()"Dan Willemsen
This reverts commit 1b92c1cf6b638e7cbe9fdaac3f6efb8874f5cc02. Rebase-Id: Re4f43a07bbab0a4e38a18a1388512defc07ad878
2013-09-14Input: atmel_mxt_ts - Handle different T5 DMA read behaviour on mXT224Nick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rd6658f2e7f6f08614cd6c7529dc797042b9735a5
2013-09-14Input: atmel_mxt_ts - Bootloader addresses for mXT1664/mXT1188SNick Dyer
The mXT1664S family chips use different mappings for bootloader addresses. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rfda1caffd03ef66e537cd8585dcf63063211074e
2013-09-14Input: atmel_mxt_ts - recover from bootloader on probeNick Dyer
The MXT device may be in bootloader mode on probe, for two reasons 1) APP CRC failure, which is either due to a) flash corruption b) bad power or other intermittent problem in checking CRC 2) If the power has been cycled 10 or more times without accessing comms 3) Warm probe, device was in bootloader mode already This code attempts to recover from 1(b) and 3. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R2c0a6fd26a6de00bc235d39d667907a739ab3281
2013-09-14Input: atmel_mxt_ts - Add CHG line handling in bootloader codeNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Reca056196bf43ad6a9ed834e3e5fc1cca5e6d275
2013-09-14Input: atmel_mxt_ts - Add check for incorrect firmware file formatNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R0a182d230101afe027a768cf95a8815d59eb508b
2013-09-14Input: atmel_mxt_ts - Implement T15 Key Array supportNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R4cdcdad84084c23e9baab8c3f6f688ca6dbd07ee
2013-09-14Input: atmel_mxt_ts - Implement T63 Active Stylus supportNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R0c213dfd9d726b99023035333a34c42f7c940595
2013-09-14Input: atmel_mxt_ts - add i2c retriesNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rc110f36fff658105933da7da41f75fae221f677a
2013-09-14Input: atmel_mxt_ts - Implement vector/orientation supportNick Dyer
The atmel touch messages contain orientation information as a byte in a packed format which can be passed straight on to Android if the input device configuration is correct, see http://source.android.com/tech/input/touch-devices.html#touchorientationcalibration This requires vector reports to be enabled in maXTouch config (zero DISVECT bit in T9 CTRL field) Android converts the format in frameworks/base/services/input/Input.cpp, search for ORIENTATION_CALIBRATION_VECTOR. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rfe3baba34d896f6af27a4201fe7be9a1b172570d
2013-09-14Input: atmel_mxt_ts - Calculate and check CRC in config fileNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R62bf0ee35310af63b48764ab05f8c234d1327f3d
2013-09-14Input: atmel_mxt_ts - Read info block CRCNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rec5a99be5607d5296a38df162f52c3a2bc9716a6
2013-09-14Input: atmel_mxt_ts - Output status from T42 Touch SuppressionNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rf4e8d4082bf2516a8596246256c8b8f420439571
2013-09-14Input: atmel_mxt_ts - Output status from T48 Noise SupressionNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R6cf8960a67e6550368bcb1304f46a9e95822d12c
2013-09-14Input: atmel_mxt_ts - Rework interrupt handling and input reportingNick Dyer
Move input device configuration into separate function Allow configuration of input device name from platform data Rework interrupt handler and add T44 support Improve touch reporting for ICS Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R80ca73b04458bcaf5fd443cda4ad4f92657a2679
2013-09-14Input: atmel_mxt_ts - Print error code from mxt_read_regNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rcbf9cbec95816675435378a42a5ef4accd527d24
2013-09-14Input: atmel_mxt_ts - Cache object addresses for use in interrupt handlerNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R04ee264c8840c8683069a91c93fbbeb91355d393
2013-09-14Input: atmel_mxt_ts - Optimise read of object table and information blockNick Dyer
The object table and information block are contiguous in i2c address space, so it is possible to read them in a single i2c transaction. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rfc7ee5a811ca472ba743819fb51d0d03c43cd889
2013-09-14Input: atmel_mxt_ts - add shutdown functionNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R5e47cdfd3e49109c9468e7dec3dd703ba9edd0ca
2013-09-14Input: atmel_mxt_ts - add version/build sysfs entriesNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rf87b34724e3fe1de3b6685f962e9364368d2076f
2013-09-14Input: atmel_mxt_ts - attempt to downgrade configuration gracefullyNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R48d5d95ab7cb9e7b4977b5794041cf14badf0c40
2013-09-14Input: atmel_mxt_ts - Add early suspend supportNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Re4e790d2029278f3e1cb1f0d92dd5c957ddf5ddb
2013-09-14Input: atmel_mxt_ts - add safety check for MXT_MAX_FINGERNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R312cd6b8f4d8a5e060e2de980bf9256e0645e855
2013-09-14Input: atmel_mxt_ts - Improve device configurationNick Dyer
Implement new raw configuration format using firmware loader Remove unnecessary platform data configuration Rework power init behaviour Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rb06ccaf1e894a23edfc0f9dffcf7e629df34c7e1
2013-09-14Input: atmel_mxt_ts - move reset code into separate functionNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R4c884b0413495fc6a9b86d1f53be7cb2894ca0ac
2013-09-14Input: atmel_mxt_ts - read screen config from chipNick Dyer
Rather than having a separate configuration in platform data for screen size and orientation, read it from the settings that the touchscreen controller is using. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rf1204601c45f6f2d6e6edb1c95f1d025448f1bfe
2013-09-14Input: atmel-mxt-ts - Improve bootloader supportNick Dyer
Add additional bootloader addresses Read and report bootloader version Increase fw reset time for greater reliability Further bootloader improvements Handle APP_CRC_FAIL on startup Handle bootloader frame CRC failure Recover gracefully from flash aborted halfway through Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R35ad9aa057af76183190b2851fed20c21ea6ef0c
2013-09-14Input: atmel_mxt_ts - Add check for writing outside object boundsNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rb6197052559e7285c09c02389803066688ae9c90
2013-09-14Input: atmel_mxt_ts - replace soft reset on resume with calibrateNick Dyer
It is counterproductive to reset the chip on resume, since it will result in a long delay. The power consumption in deep sleep mode is minimal. However it is necessary to issue a calibrate after the chip has spent any time in deep sleep. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Rbef6c3449fbe8bf0e48f7d6f4ec22dcb8a1ad4b1
2013-09-14Input: atmel_mxt_ts - Use deep sleep mode when stoppedNick Dyer
By writing zero to both the active and idle cycle times the maXTouch device is put into a deep sleep mode when it consumes no power. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R6618130f3b4d5fd7a0dd6b7246b9d51b440b885f
2013-09-14Input: atmel_mxt_ts - Implement CRC check for configuration data.Nick Dyer
The configuration is stored in NVRAM on the maXTouch chip. When the device is reset it reports a CRC of the stored configuration values. Therefore it isn't necessary to send the configuration on each probe - we can check the CRC matches and avoid a timeconsuming backup/reset cycle. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R01e1f28b5a48dd8ff6055faa51914d3605e55234
2013-09-14Input: atmel_mxt_ts - Store min_reportid rather than calculating it every ↵Nick Dyer
interrupt Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R3dc785f6115b5ad8fc9ac71eaebf8132630042f0
2013-09-14Input: atmel_mxt_ts - Improve error reporting and debugNick Dyer
Add object table output Add error messages for probe errors Report type in invalid object type Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Refb67d909d4308ec8029ab1eda261d7ff9735d9b
2013-09-14Input: atmel_mxt_ts - Remove problematic mxt_object_show interfaceNick Dyer
This file breaks the sysfs rules about one-value-per file. We now have better user space tools for examining configuration. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R3cc3e886e190a60473a907b80dce88c65ae861cb
2013-09-14Input: atmel_mxt_ts - Add facility via sysfs for pausing and resuming driverNick Dyer
There are user-space diagnostic utilities which can connect to the maxtouch chip via this driver. It is sometimes (but not always) useful to disable creation of input events, since it allows arbitrary touch inputs to be tested. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R19e8a93d145b6c94dd0ae2c6b4d00b5a0622aa06
2013-09-14Input: atmel_mxt_ts - Implement debug output for messagesNick Dyer
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R8df9407cd37e5a4a10694b626a6ec50cb469f452
2013-09-14Input: atmel_mxt_ts - Add memory access interface via sysfsNick Dyer
Atmel maXTouch chips can be addressed via an "Object Based Protocol" which defines how i2c registers are mapped to different functions within the chips. This interface exposes the register map and allows user-space utilities to inspect and alter object configuration, and to view diagnostic data, while the device is running. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R698db0873559c267f46a0feb92cd9747b5fad9ef
2013-09-14Input: atmel_mxt_ts - Improve handling of multiple instancesNick Dyer
Report touch messages for all instances of the TOUCH_MULTITOUCHSCREEN_T9 object Store object size and instances rather than raw values in object table Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Ra6b8ce17cc908c8c7e94658ae2c4c5ca13c70d6b
2013-09-14Input: atmel_mxt_ts - Make wait-after-reset period compatible with all chipsIiro Valkonen
The delay before the chip can be accessed after reset varies between different chips in maXTouch family. Waiting for 200ms and then monitoring the CHG (chip is ready when the line is low) is guaranteed to work with all chips. v5: Fix error in timeout_counter handling Increase sleep time for backup check. msleep for small values is unreliable Increase firmware reset timeout v4: Add a readback of command register after backup is issued, to make sure we are not proceeding too fast there. v3: Add a check for NULL read_chg() function, and add the read_chg() to platform files using this driver (currently only mach-goni.c) v2: At Dmitry's suggestion, add a timeout so we are not stuck looping endlessly in case the CHG is not going low. Signed-off-by: Iiro Valkonen <iiro.valkonen@atmel.com> Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: Re37122e88ad1afc9a937368629246690c27225b2
2013-09-14Input: atmel_mxt_ts - dump each message on just 1 lineDaniel Kurtz
Helps ensure all bytes for a single message together in the system log. Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com> Acked-by: Nick Dyer <nick.dyer@itdev.co.uk> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> (cherry picked from commit 6ee3dbf93a895fce7c11d4d79e12beab1beb7860) Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R1c03236e1d4fd4410fff10f366a599d354aedaae
2013-09-14Input: atmel_mxt_ts - do not read extra (checksum) byteDaniel Kurtz
atmel_mxt devices will send a checksum byte at the end of a message if the MSB of the object address is set. However, since this driver does not set this bit, the checksum byte isn't actually sent, so don't even try to read it. Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Dmitry Torokhov <dtor@mail.ru> (cherry picked from commit 822115ff4bd7141a6069dcc17b35dfd823a44dff) Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> Rebase-Id: R5543d7afa68d37b0ec6545541b9ff7238bda0102