Merge tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / drivers / input / touchscreen / edt-ft5x06.c
index 98766f2a8c4f93965bf2be8883f25f2409d23ca5..0b0f8c17f3f7e0f4df1e69144d693b46741f4025 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[63];
        int i, type, x, y, id;
        int offset, tplen, datalen, crclen;
        int error;
@@ -186,8 +186,8 @@ static irqreturn_t edt_ft5x06_ts_isr(int irq, void *dev_id)
                break;
 
        case M09:
-               cmd = 0x02;
-               offset = 1;
+               cmd = 0x0;
+               offset = 3;
                tplen = 6;
                crclen = 0;
                break;
@@ -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);