Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Input: cyttsp4 - I2C driver for Cypress TMA4XX touchscreen devices

Cypress TrueTouch(tm) Standard Product controllers,
Generation4 devices, I2C adapter module.

This driver adds communication support with TTSP controller
using I2C bus.

Signed-off-by: Ferruh Yigit <fery@cypress.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Javier Martinez Canillas <javier@dowhile0.org>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

authored by

Ferruh Yigit and committed by
Dmitry Torokhov
4f9e8680 17fb1563

+100
+9
drivers/input/touchscreen/Kconfig
··· 179 179 180 180 To compile this driver as a module, choose M here. 181 181 182 + config TOUCHSCREEN_CYTTSP4_I2C 183 + tristate "support I2C bus connection" 184 + depends on TOUCHSCREEN_CYTTSP4_CORE && I2C 185 + help 186 + Say Y here if the touchscreen is connected via I2C bus. 187 + 188 + To compile this driver as a module, choose M here: the 189 + module will be called cyttsp4_i2c. 190 + 182 191 config TOUCHSCREEN_DA9034 183 192 tristate "Touchscreen support for Dialog Semiconductor DA9034" 184 193 depends on PMIC_DA903X
+1
drivers/input/touchscreen/Makefile
··· 21 21 obj-$(CONFIG_TOUCHSCREEN_CYTTSP_I2C) += cyttsp_i2c.o cyttsp_i2c_common.o 22 22 obj-$(CONFIG_TOUCHSCREEN_CYTTSP_SPI) += cyttsp_spi.o 23 23 obj-$(CONFIG_TOUCHSCREEN_CYTTSP4_CORE) += cyttsp4_core.o 24 + obj-$(CONFIG_TOUCHSCREEN_CYTTSP4_I2C) += cyttsp4_i2c.o cyttsp_i2c_common.o 24 25 obj-$(CONFIG_TOUCHSCREEN_DA9034) += da9034-ts.o 25 26 obj-$(CONFIG_TOUCHSCREEN_DA9052) += da9052_tsi.o 26 27 obj-$(CONFIG_TOUCHSCREEN_DYNAPRO) += dynapro.o
+90
drivers/input/touchscreen/cyttsp4_i2c.c
··· 1 + /* 2 + * cyttsp_i2c.c 3 + * Cypress TrueTouch(TM) Standard Product (TTSP) I2C touchscreen driver. 4 + * For use with Cypress Txx4xx parts. 5 + * Supported parts include: 6 + * TMA4XX 7 + * TMA1036 8 + * 9 + * Copyright (C) 2009, 2010, 2011 Cypress Semiconductor, Inc. 10 + * Copyright (C) 2012 Javier Martinez Canillas <javier@dowhile0.org> 11 + * Copyright (C) 2013 Cypress Semiconductor 12 + * 13 + * This program is free software; you can redistribute it and/or 14 + * modify it under the terms of the GNU General Public License 15 + * version 2, and only version 2, as published by the 16 + * Free Software Foundation. 17 + * 18 + * This program is distributed in the hope that it will be useful, 19 + * but WITHOUT ANY WARRANTY; without even the implied warranty of 20 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 + * GNU General Public License for more details. 22 + * 23 + * Contact Cypress Semiconductor at www.cypress.com <ttdrivers@cypress.com> 24 + * 25 + */ 26 + 27 + #include "cyttsp4_core.h" 28 + 29 + #include <linux/i2c.h> 30 + #include <linux/input.h> 31 + 32 + #define CYTTSP4_I2C_DATA_SIZE (3 * 256) 33 + 34 + static const struct cyttsp4_bus_ops cyttsp4_i2c_bus_ops = { 35 + .bustype = BUS_I2C, 36 + .write = cyttsp_i2c_write_block_data, 37 + .read = cyttsp_i2c_read_block_data, 38 + }; 39 + 40 + static int cyttsp4_i2c_probe(struct i2c_client *client, 41 + const struct i2c_device_id *id) 42 + { 43 + struct cyttsp4 *ts; 44 + 45 + if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { 46 + dev_err(&client->dev, "I2C functionality not Supported\n"); 47 + return -EIO; 48 + } 49 + 50 + ts = cyttsp4_probe(&cyttsp4_i2c_bus_ops, &client->dev, client->irq, 51 + CYTTSP4_I2C_DATA_SIZE); 52 + 53 + if (IS_ERR(ts)) 54 + return PTR_ERR(ts); 55 + 56 + return 0; 57 + } 58 + 59 + static int cyttsp4_i2c_remove(struct i2c_client *client) 60 + { 61 + struct cyttsp4 *ts = i2c_get_clientdata(client); 62 + 63 + cyttsp4_remove(ts); 64 + 65 + return 0; 66 + } 67 + 68 + static const struct i2c_device_id cyttsp4_i2c_id[] = { 69 + { CYTTSP4_I2C_NAME, 0 }, 70 + { } 71 + }; 72 + MODULE_DEVICE_TABLE(i2c, cyttsp4_i2c_id); 73 + 74 + static struct i2c_driver cyttsp4_i2c_driver = { 75 + .driver = { 76 + .name = CYTTSP4_I2C_NAME, 77 + .owner = THIS_MODULE, 78 + .pm = &cyttsp4_pm_ops, 79 + }, 80 + .probe = cyttsp4_i2c_probe, 81 + .remove = cyttsp4_i2c_remove, 82 + .id_table = cyttsp4_i2c_id, 83 + }; 84 + 85 + module_i2c_driver(cyttsp4_i2c_driver); 86 + 87 + MODULE_LICENSE("GPL"); 88 + MODULE_DESCRIPTION("Cypress TrueTouch(R) Standard Product (TTSP) I2C driver"); 89 + MODULE_AUTHOR("Cypress"); 90 + MODULE_ALIAS("i2c:cyttsp4");