Input: edt-ft5x06 - add support for FT5506

FT5506 is essentially the same as other FT5x06 devices other than
supporting 10 support points.

Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
Franklin S Cooper Jr 2015-10-16 15:34:26 -07:00 committed by Dmitry Torokhov
parent b1d2a3ecb9
commit af33e0ad1b
2 changed files with 9 additions and 1 deletions

View File

@ -5,6 +5,7 @@ There are 3 variants of the chip for various touch panel sizes
FT5206GE1 2.8" .. 3.8" FT5206GE1 2.8" .. 3.8"
FT5306DE4 4.3" .. 7" FT5306DE4 4.3" .. 7"
FT5406EE8 7" .. 8.9" FT5406EE8 7" .. 8.9"
FT5506EEG 7" .. 8.9"
The software interface is identical for all those chips, so that The software interface is identical for all those chips, so that
currently there is no need for the driver to distinguish between the currently there is no need for the driver to distinguish between the
@ -17,6 +18,7 @@ Required properties:
- compatible: "edt,edt-ft5206" - compatible: "edt,edt-ft5206"
or: "edt,edt-ft5306" or: "edt,edt-ft5306"
or: "edt,edt-ft5406" or: "edt,edt-ft5406"
or: "edt,edt-ft5506"
- reg: I2C slave address of the chip (0x38) - reg: I2C slave address of the chip (0x38)
- interrupt-parent: a phandle pointing to the interrupt controller - interrupt-parent: a phandle pointing to the interrupt controller

View File

@ -172,7 +172,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
struct edt_ft5x06_ts_data *tsdata = dev_id; struct edt_ft5x06_ts_data *tsdata = dev_id;
struct device *dev = &tsdata->client->dev; struct device *dev = &tsdata->client->dev;
u8 cmd; u8 cmd;
u8 rdbuf[31]; u8 rdbuf[61];
int i, type, x, y, id; int i, type, x, y, id;
int offset, tplen, datalen, crclen; int offset, tplen, datalen, crclen;
int error; int error;
@ -1052,8 +1052,13 @@ static const struct edt_i2c_chip_data edt_ft5x06_data = {
.max_support_points = 5, .max_support_points = 5,
}; };
static const struct edt_i2c_chip_data edt_ft5506_data = {
.max_support_points = 10,
};
static const struct i2c_device_id edt_ft5x06_ts_id[] = { static const struct i2c_device_id edt_ft5x06_ts_id[] = {
{ .name = "edt-ft5x06", .driver_data = (long)&edt_ft5x06_data }, { .name = "edt-ft5x06", .driver_data = (long)&edt_ft5x06_data },
{ .name = "edt-ft5506", .driver_data = (long)&edt_ft5506_data },
{ /* sentinel */ } { /* sentinel */ }
}; };
MODULE_DEVICE_TABLE(i2c, edt_ft5x06_ts_id); MODULE_DEVICE_TABLE(i2c, edt_ft5x06_ts_id);
@ -1063,6 +1068,7 @@ static const struct of_device_id edt_ft5x06_of_match[] = {
{ .compatible = "edt,edt-ft5206", .data = &edt_ft5x06_data }, { .compatible = "edt,edt-ft5206", .data = &edt_ft5x06_data },
{ .compatible = "edt,edt-ft5306", .data = &edt_ft5x06_data }, { .compatible = "edt,edt-ft5306", .data = &edt_ft5x06_data },
{ .compatible = "edt,edt-ft5406", .data = &edt_ft5x06_data }, { .compatible = "edt,edt-ft5406", .data = &edt_ft5x06_data },
{ .compatible = "edt,edt-ft5506", .data = &edt_ft5506_data },
{ /* sentinel */ } { /* sentinel */ }
}; };
MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match); MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match);