Commit af33e0ad authored by Franklin S Cooper Jr's avatar Franklin S Cooper Jr Committed by Dmitry Torokhov

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: default avatarFranklin S Cooper Jr <fcooper@ti.com>
Signed-off-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent b1d2a3ec
...@@ -5,6 +5,7 @@ There are 3 variants of the chip for various touch panel sizes ...@@ -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: ...@@ -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
......
...@@ -172,7 +172,7 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id) ...@@ -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 = { ...@@ -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[] = { ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment