TP ct36x: reduce init time
authorzyk <“zyk@rock-chips.com”>
Thu, 20 Mar 2014 08:33:57 +0000 (16:33 +0800)
committerzyk <“zyk@rock-chips.com”>
Thu, 20 Mar 2014 08:33:57 +0000 (16:33 +0800)
drivers/input/touchscreen/ct36x/core.c
drivers/input/touchscreen/ct36x/ct363.c
drivers/input/touchscreen/ct36x/ct36x_ts.c

index c6c03cc1c77f4be27501caac9e5c635e599dac5c..33ee074cd69ce5270367e96b2d313706544a7ab4 100755 (executable)
@@ -22,7 +22,7 @@ int ct36x_chip_set_idle(struct ct36x_data *ts)
        char buf[2] = {0x00, 0xA5};
 
        ret = ct36x_update_write(ts, 0x7F, buf, 2);
-       mdelay(10);
+       mdelay(5);
 
        return ret;
 }
@@ -33,7 +33,7 @@ static int ct36x_chip_rst_offset(struct ct36x_data *ts)
        char buf = 0x00;
 
        ret =ct36x_update_write(ts, 0x7F, &buf, 1);
-       mdelay(10);
+       mdelay(5);
 
        return ret;
 }
@@ -201,14 +201,14 @@ int ct36x_chip_get_fwchksum(struct ct36x_data *ts)
        ret = ct36x_write(ts, buf, 3);
        if(ret < 0)
                return ret;
-       mdelay(20);
+       mdelay(5);
 
        buf[0] = 0x00;
        buf[1] = 0xE1;
        ret = ct36x_write(ts, buf, 2);
        if(ret < 0)
                return ret;
-       mdelay(500);
+       mdelay(330);
 
        buf[0] = 0xFF;
        buf[1] = 0x8E;
@@ -216,7 +216,7 @@ int ct36x_chip_get_fwchksum(struct ct36x_data *ts)
        ret = ct36x_write(ts, buf, 3);
        if(ret < 0)
                return ret;
-       mdelay(20);
+       mdelay(5);
 
        ret = ct36x_chip_rst_offset(ts);
        if(ret < 0){
@@ -228,7 +228,7 @@ int ct36x_chip_get_fwchksum(struct ct36x_data *ts)
        if(ret < 0)
                return ret;
 
-       mdelay(20);
+       mdelay(5);
        fwchksum = ((buf[0]<<8) | buf[1]);
 
        return fwchksum;
@@ -246,19 +246,19 @@ int ct36x_chip_get_ver(struct ct36x_data *ts)
        ret = ct36x_write(ts, buf, 3);
        if(ret < 0)
                return ret;
-       mdelay(10);
+       mdelay(5);
 
        buf[0] = 0x00;
        ret = ct36x_write(ts, buf, 1);
        if(ret < 0)
                return ret;
-       mdelay(10);
+       mdelay(5);
 
        // do read version
        ret = ct36x_read(ts, &ver, 1);
        if(ret < 0)
                return ret;
-       mdelay(10);
+       mdelay(5);
 
        return ver;
 }
index f5e295126bc120632ed98055e1ff92c7255d8aab..c386f94894d321c4b79905dfe7b4811e069c696f 100755 (executable)
@@ -53,12 +53,12 @@ static void ct363_deinit_hw(struct ct36x_data *ts)
 
 static void ct363_reset_hw(struct ct36x_data *ts)
 {
-       gpio_direction_output(ts->rst_io.gpio, ts->rst_io.active_low);
-       msleep(50);
+       //gpio_direction_output(ts->rst_io.gpio, ts->rst_io.active_low);
+       //msleep(50);
        gpio_set_value(ts->rst_io.gpio, !ts->rst_io.active_low);
-       msleep(50);
+       msleep(10);
        gpio_set_value(ts->rst_io.gpio, ts->rst_io.active_low);
-       msleep(500);
+       msleep(230);
 }
 
 static int ct363_init(struct ct36x_data *ts)
@@ -73,6 +73,8 @@ static int ct363_init(struct ct36x_data *ts)
         /* Hardware reset */
        ct363_reset_hw(ts);
        // Get binary Checksum
+
+       #if 1
        binchksum = ct36x_chip_get_binchksum();
        ct36x_dbg(ts, "CT363 init: binchksum = %d\n", binchksum);
 
@@ -107,9 +109,12 @@ static int ct363_init(struct ct36x_data *ts)
        }
 
        /* Hardware reset */
-       ct363_reset_hw(ts);
+       //ct363_reset_hw(ts);
+       gpio_set_value(ts->rst_io.gpio, !ts->rst_io.active_low);
+       msleep(10);
+       gpio_set_value(ts->rst_io.gpio, ts->rst_io.active_low);
        msleep(5);
-
+       #endif
        ts->point_num = CT363_POINT_NUM;
        
        ct363 = kzalloc(sizeof(struct ct363_priv), GFP_KERNEL);
index 67d0f7f7244454776e0d3122935314fdc3b3551d..05061ea369319435c981ed5aece8c5bf0ad613c5 100755 (executable)
@@ -196,7 +196,7 @@ static int ct36x_ts_probe(struct i2c_client *client, const struct i2c_device_id
        ts->irq_io.gpio = of_get_named_gpio_flags(np, "touch-gpio", 0, (enum of_gpio_flags *)&irq_flags);
        ts->rst_io.gpio = of_get_named_gpio_flags(np, "reset-gpio", 0, &rst_flags);
 
-       printk("the irq_flags is %ld,rst_flags is %d\n",irq_flags,rst_flags);
+       //printk("the irq_flags is %ld,rst_flags is %d\n",irq_flags,rst_flags);
        
        ret = of_property_read_u32_array(np, "orientation",orientation,4);
        if (ret < 0)
@@ -217,13 +217,13 @@ static int ct36x_ts_probe(struct i2c_client *client, const struct i2c_device_id
 
        if (gpio_is_valid(ts->rst_io.gpio)) {
                                        ts->rst_io.active_low = (rst_flags & OF_GPIO_ACTIVE_LOW) ? 0 : 1;
-                                       printk("the ts->rst_io.active_low is %d ========\n",ts->rst_io.active_low);
+                                       //printk("the ts->rst_io.active_low is %d ========\n",ts->rst_io.active_low);
                                        ret = devm_gpio_request_one(&client->dev, ts->rst_io.gpio, (rst_flags & OF_GPIO_ACTIVE_LOW) ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW, "ct363 reset pin");
                                        if (ret != 0) {
                                                dev_err(&client->dev, "ct363 gpio_request error\n");
                                                return -EIO;
                                        }
-                               msleep(100);
+                               //msleep(100);
                                } else {
                                        dev_info(&client->dev, "reset pin invalid\n");
                                }