Input: edt-ft5x06 - add support for FT5506
authorFranklin S Cooper Jr <fcooper@ti.com>
Fri, 16 Oct 2015 22:34:26 +0000 (15:34 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 16 Oct 2015 23:58:45 +0000 (16:58 -0700)
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>
Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
drivers/input/touchscreen/edt-ft5x06.c

index bedd7ddc56aabee435bcaebb3bb67d72289d14fc..f99528da1b1d4d7f354441d7c11e7dc2abe3c9ad 100644 (file)
@@ -5,6 +5,7 @@ There are 3 variants of the chip for various touch panel sizes
 FT5206GE1  2.8" .. 3.8"
 FT5306DE4  4.3" .. 7"
 FT5406EE8  7"   .. 8.9"
+FT5506EEG  7"   .. 8.9"
 
 The software interface is identical for all those chips, so that
 currently there is no need for the driver to distinguish between the
@@ -17,6 +18,7 @@ Required properties:
  - compatible:  "edt,edt-ft5206"
            or:  "edt,edt-ft5306"
            or:  "edt,edt-ft5406"
+           or:  "edt,edt-ft5506"
 
  - reg:         I2C slave address of the chip (0x38)
  - interrupt-parent: a phandle pointing to the interrupt controller
index 98766f2a8c4f93965bf2be8883f25f2409d23ca5..214d8a08a469e97e54d2f7ae68e4c948bccc460d 100644 (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 device *dev = &tsdata->client->dev;
        u8 cmd;
-       u8 rdbuf[31];
+       u8 rdbuf[61];
        int i, type, x, y, id;
        int offset, tplen, datalen, crclen;
        int error;
@@ -1052,8 +1052,13 @@ static const struct edt_i2c_chip_data edt_ft5x06_data = {
        .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[] = {
        { .name = "edt-ft5x06", .driver_data = (long)&edt_ft5x06_data },
+       { .name = "edt-ft5506", .driver_data = (long)&edt_ft5506_data },
        { /* sentinel */ }
 };
 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-ft5306", .data = &edt_ft5x06_data },
        { .compatible = "edt,edt-ft5406", .data = &edt_ft5x06_data },
+       { .compatible = "edt,edt-ft5506", .data = &edt_ft5506_data },
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, edt_ft5x06_of_match);