aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/keyboard/cypress/cypress-touchkey.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/input/keyboard/cypress/cypress-touchkey.c')
-rw-r--r--drivers/input/keyboard/cypress/cypress-touchkey.c296
1 files changed, 0 insertions, 296 deletions
diff --git a/drivers/input/keyboard/cypress/cypress-touchkey.c b/drivers/input/keyboard/cypress/cypress-touchkey.c
index 8aafaad73fa..bec49e8bab5 100644
--- a/drivers/input/keyboard/cypress/cypress-touchkey.c
+++ b/drivers/input/keyboard/cypress/cypress-touchkey.c
@@ -36,7 +36,6 @@
#include <linux/regulator/driver.h>
#include <linux/regulator/machine.h>
-#include "issp_extern.h"
#ifdef CONFIG_TOUCHSCREEN_ATMEL_MXT540E
#include <linux/i2c/mxt540e.h>
#else
@@ -125,7 +124,6 @@ static const struct i2c_device_id sec_touchkey_id[] = {
MODULE_DEVICE_TABLE(i2c, sec_touchkey_id);
-extern int get_touchkey_firmware(char *version);
static int touchkey_led_status;
static int touchled_cmd_reversed;
@@ -527,140 +525,6 @@ static ssize_t touchkey_threshold_show(struct device *dev,
}
#endif
-#if defined(TK_HAS_FIRMWARE_UPDATE)
-static int touchkey_firmware_update(struct touchkey_i2c *tkey_i2c)
-{
- int retry = 3;
- int ret = 0;
- char data[3];
-
- disable_irq(tkey_i2c->irq);
-
-
- ret = i2c_touchkey_read(tkey_i2c->client, KEYCODE_REG, data, 3);
- if (ret < 0) {
- printk(KERN_DEBUG
- "[TouchKey] i2c read fail. do not excute firm update.\n");
- data[1] = 0;
- data[2] = 0;
- }
-
- printk(KERN_ERR "%s F/W version: 0x%x, Module version:0x%x\n", __func__,
- data[1], data[2]);
-
- tkey_i2c->firmware_ver = data[1];
- tkey_i2c->module_ver = data[2];
-
-#if defined(CONFIG_MACH_M0) || defined(CONFIG_MACH_C1) \
-|| defined(CONFIG_MACH_M3) || defined(CONFIG_MACH_T0)
- if ((tkey_i2c->firmware_ver < TK_FIRMWARE_VER) &&
- (tkey_i2c->module_ver <= TK_MODULE_VER)) {
-#else
- if ((tkey_i2c->firmware_ver < TK_FIRMWARE_VER) &&
- (tkey_i2c->module_ver == TK_MODULE_VER)) {
-#endif
- printk(KERN_DEBUG "[TouchKey] firmware auto update excute\n");
-
- tkey_i2c->update_status = TK_UPDATE_DOWN;
-
- while (retry--) {
- if (ISSP_main(tkey_i2c) == 0) {
- printk(KERN_DEBUG
- "[TouchKey]firmware update succeeded\n");
- tkey_i2c->update_status = TK_UPDATE_PASS;
- msleep(50);
- break;
- }
- msleep(50);
- printk(KERN_DEBUG
- "[TouchKey] firmware update failed. retry\n");
- }
- if (retry <= 0) {
- tkey_i2c->pdata->power_on(0);
- tkey_i2c->update_status = TK_UPDATE_FAIL;
- printk(KERN_DEBUG
- "[TouchKey] firmware update failed.\n");
- }
- ret = touchkey_i2c_check(tkey_i2c);
- if (ret < 0) {
- printk(KERN_DEBUG
- "[TouchKey] i2c read fail.\n");
- return TK_UPDATE_FAIL;
- }
-#if defined(CONFIG_TARGET_LOCALE_KOR)
- ret = i2c_touchkey_read(tkey_i2c->client, KEYCODE_REG, data, 3);
- if (ret < 0) {
- printk(KERN_DEBUG
- "[TouchKey] i2c read fail. do not excute firm update.\n");
- }
- tkey_i2c->firmware_ver = data[1];
- tkey_i2c->module_ver = data[2];
-#endif
- printk(KERN_DEBUG "[TouchKey] firm ver = %d, module ver = %d\n",
- tkey_i2c->firmware_ver, tkey_i2c->module_ver);
- } else {
- printk(KERN_DEBUG
- "[TouchKey] firmware auto update do not excute\n");
- printk(KERN_DEBUG
- "[TouchKey] firmware_ver(banary=%d, current=%d)\n",
- TK_FIRMWARE_VER, tkey_i2c->firmware_ver);
- printk(KERN_DEBUG
- "[TouchKey] module_ver(banary=%d, current=%d)\n",
- TK_MODULE_VER, tkey_i2c->module_ver);
- }
- enable_irq(tkey_i2c->irq);
- return TK_UPDATE_PASS;
-}
-#else
-static int touchkey_firmware_update(struct touchkey_i2c *tkey_i2c)
-{
- char data[3];
- int retry;
- int ret = 0;
-
- ret = i2c_touchkey_read(tkey_i2c->client, KEYCODE_REG, data, 3);
- if (ret < 0) {
- printk(KERN_DEBUG
- "[TouchKey] i2c read fail. do not excute firm update.\n");
- return ret;
- }
-
- printk(KERN_ERR "%s F/W version: 0x%x, Module version:0x%x\n", __func__,
- data[1], data[2]);
- retry = 3;
-
- tkey_i2c->firmware_ver = data[1];
- tkey_i2c->module_ver = data[2];
-
- if (tkey_i2c->firmware_ver < 0x0A) {
- tkey_i2c->update_status = TK_UPDATE_DOWN;
- while (retry--) {
- if (ISSP_main(tkey_i2c) == 0) {
- printk(KERN_ERR
- "[TOUCHKEY]Touchkey_update succeeded\n");
- tkey_i2c->update_status = TK_UPDATE_PASS;
- break;
- }
- printk(KERN_ERR "touchkey_update failed...retry...\n");
- }
- if (retry <= 0) {
- tkey_i2c->pdata->power_on(0);
- tkey_i2c->update_status = TK_UPDATE_FAIL;
- ret = TK_UPDATE_FAIL;
- }
- } else {
- if (tkey_i2c->firmware_ver >= 0x0A) {
- printk(KERN_ERR
- "[TouchKey] Not F/W update. Cypess touch-key F/W version is latest\n");
- } else {
- printk(KERN_ERR
- "[TouchKey] Not F/W update. Cypess touch-key version(module or F/W) is not valid\n");
- }
- }
- return ret;
-}
-#endif
-
#ifndef TEST_JIG_MODE
static irqreturn_t touchkey_interrupt(int irq, void *dev_id)
{
@@ -856,11 +720,6 @@ static int sec_touchkey_early_suspend(struct early_suspend *h)
int i;
disable_irq(tkey_i2c->irq);
- ret = cancel_work_sync(&tkey_i2c->update_work);
- if (ret) {
- printk(KERN_DEBUG "[Touchkey] enable_irq ret=%d\n", ret);
- enable_irq(tkey_i2c->irq);
- }
/* release keys */
for (i = 1; i < touchkey_count; ++i) {
@@ -948,17 +807,6 @@ static int touchkey_i2c_check(struct touchkey_i2c *tkey_i2c)
return ret;
}
-ssize_t touchkey_update_read(struct file *filp, char *buf, size_t count,
- loff_t *f_pos)
-{
- char data[3] = { 0, };
-
- get_touchkey_firmware(data);
- put_user(data[1], buf);
-
- return 1;
-}
-
static ssize_t touch_version_read(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -985,67 +833,6 @@ static ssize_t touch_version_write(struct device *dev,
return size;
}
-void touchkey_update_func(struct work_struct *work)
-{
- struct touchkey_i2c *tkey_i2c =
- container_of(work, struct touchkey_i2c, update_work);
- int retry = 3;
-#if defined(CONFIG_TARGET_LOCALE_NAATT)
- char data[3];
- i2c_touchkey_read(tkey_i2c->client, KEYCODE_REG, data, 3);
- printk(KERN_DEBUG "[%s] F/W version: 0x%x, Module version:0x%x\n",
- __func__, data[1], data[2]);
-#endif
- tkey_i2c->update_status = TK_UPDATE_DOWN;
- printk(KERN_DEBUG "[TouchKey] %s start\n", __func__);
- touchkey_enable = 0;
- while (retry--) {
- if (ISSP_main(tkey_i2c) == 0) {
- printk(KERN_DEBUG
- "[TouchKey] touchkey_update succeeded\n");
- msleep(50);
- touchkey_enable = 1;
-#if defined(TK_HAS_AUTOCAL)
- touchkey_autocalibration(tkey_i2c);
-#endif
- tkey_i2c->update_status = TK_UPDATE_PASS;
- enable_irq(tkey_i2c->irq);
- return;
- }
- tkey_i2c->pdata->power_on(0);
- }
- enable_irq(tkey_i2c->irq);
- tkey_i2c->update_status = TK_UPDATE_FAIL;
- printk(KERN_DEBUG "[TouchKey] touchkey_update failed\n");
- return;
-}
-
-static ssize_t touch_update_write(struct device *dev,
- struct device_attribute *attr,
- const char *buf, size_t size)
-{
- struct touchkey_i2c *tkey_i2c = dev_get_drvdata(dev);
-#ifdef CONFIG_TARGET_LOCALE_NA
- if (tkey_i2c->module_ver < 8) {
- printk(KERN_DEBUG
- "[TouchKey] Skipping f/w update : module_version =%d\n",
- tkey_i2c->module_ver);
- tkey_i2c->update_status = TK_UPDATE_PASS;
- return 1;
- } else {
-#endif /* CONFIG_TARGET_LOCALE_NA */
- printk(KERN_DEBUG "[TouchKey] touchkey firmware update\n");
-
- if (*buf == 'S') {
- disable_irq(tkey_i2c->irq);
- schedule_work(&tkey_i2c->update_work);
- }
- return size;
-#ifdef CONFIG_TARGET_LOCALE_NA
- }
-#endif /* CONFIG_TARGET_LOCALE_NA */
-}
-
static ssize_t touch_update_read(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -1320,64 +1107,6 @@ static ssize_t touch_sensitivity_control(struct device *dev,
return size;
}
-static ssize_t set_touchkey_firm_version_show(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- return sprintf(buf, "0x%x\n", TK_FIRMWARE_VER);
-}
-
-static ssize_t set_touchkey_update_show(struct device *dev,
- struct device_attribute *attr,
- char *buf)
-{
- struct touchkey_i2c *tkey_i2c = dev_get_drvdata(dev);
- int count = 0;
- int retry = 3;
-
- tkey_i2c->update_status = TK_UPDATE_DOWN;
-
- disable_irq(tkey_i2c->irq);
-
-#ifdef TEST_JIG_MODE
- unsigned char get_touch = 0x40;
-#endif
-
- while (retry--) {
- if (ISSP_main(tkey_i2c) == 0) {
- printk(KERN_ERR
- "[TouchKey]Touchkey_update succeeded\n");
- tkey_i2c->update_status = TK_UPDATE_PASS;
- count = 1;
- msleep(50);
- break;
- }
- printk(KERN_ERR "touchkey_update failed... retry...\n");
- }
- if (retry <= 0) {
- /* disable ldo11 */
- tkey_i2c->pdata->power_on(0);
- count = 0;
- printk(KERN_ERR "[TouchKey]Touchkey_update fail\n");
- tkey_i2c->update_status = TK_UPDATE_FAIL;
- enable_irq(tkey_i2c->irq);
- return count;
- }
-
-#ifdef TEST_JIG_MODE
- i2c_touchkey_write(tkey_i2c->client, &get_touch, 1);
-#endif
-
-#if defined(TK_HAS_AUTOCAL)
- touchkey_autocalibration(tkey_i2c);
-#endif
-
- enable_irq(tkey_i2c->irq);
-
- return count;
-
-}
-
static ssize_t set_touchkey_firm_version_read_show(struct device *dev,
struct device_attribute
*attr, char *buf)
@@ -1451,8 +1180,6 @@ static DEVICE_ATTR(keypad_enable, S_IRUGO|S_IWUSR, sec_keypad_enable_show,
static DEVICE_ATTR(recommended_version, S_IRUGO | S_IWUSR | S_IWGRP,
touch_version_read, touch_version_write);
-static DEVICE_ATTR(updated_version, S_IRUGO | S_IWUSR | S_IWGRP,
- touch_update_read, touch_update_write);
static DEVICE_ATTR(brightness, S_IRUGO | S_IWUSR | S_IWGRP, NULL,
touchkey_led_control);
static DEVICE_ATTR(touchkey_menu, S_IRUGO | S_IWUSR | S_IWGRP,
@@ -1467,12 +1194,8 @@ static DEVICE_ATTR(touchkey_search, S_IRUGO, touchkey_search_show, NULL);
static DEVICE_ATTR(touch_sensitivity, S_IRUGO | S_IWUSR | S_IWGRP, NULL,
touch_sensitivity_control);
-static DEVICE_ATTR(touchkey_firm_update, S_IRUGO | S_IWUSR | S_IWGRP,
- set_touchkey_update_show, NULL);
static DEVICE_ATTR(touchkey_firm_update_status, S_IRUGO | S_IWUSR | S_IWGRP,
set_touchkey_firm_status_show, NULL);
-static DEVICE_ATTR(touchkey_firm_version_phone, S_IRUGO | S_IWUSR | S_IWGRP,
- set_touchkey_firm_version_show, NULL);
static DEVICE_ATTR(touchkey_firm_version_panel, S_IRUGO | S_IWUSR | S_IWGRP,
set_touchkey_firm_version_read_show, NULL);
#ifdef LED_LDO_WITH_REGULATOR
@@ -1503,7 +1226,6 @@ static DEVICE_ATTR(autocal_stat, S_IRUGO | S_IWUSR | S_IWGRP,
static struct attribute *touchkey_attributes[] = {
&dev_attr_recommended_version.attr,
- &dev_attr_updated_version.attr,
&dev_attr_brightness.attr,
&dev_attr_touchkey_menu.attr,
&dev_attr_touchkey_back.attr,
@@ -1512,10 +1234,6 @@ static struct attribute *touchkey_attributes[] = {
&dev_attr_touchkey_search.attr,
#endif
&dev_attr_touch_sensitivity.attr,
- &dev_attr_touchkey_firm_update.attr,
- &dev_attr_touchkey_firm_update_status.attr,
- &dev_attr_touchkey_firm_version_phone.attr,
- &dev_attr_touchkey_firm_version_panel.attr,
#ifdef LED_LDO_WITH_REGULATOR
&dev_attr_touchkey_brightness.attr,
#endif
@@ -1617,8 +1335,6 @@ static int i2c_touchkey_probe(struct i2c_client *client,
return err;
}
- INIT_WORK(&tkey_i2c->update_work, touchkey_update_func);
-
tkey_i2c->pdata->power_on(1);
msleep(50);
@@ -1680,18 +1396,6 @@ static int i2c_touchkey_probe(struct i2c_client *client,
tkey_i2c->pdata->led_power_on(1);
-#if defined(TK_HAS_FIRMWARE_UPDATE)
- ret = touchkey_firmware_update(tkey_i2c);
- if (ret < 0) {
- printk(KERN_ERR
- "[Touchkey]: failed firmware updating process (%d)\n",
- ret);
- input_unregister_device(input_dev);
- touchkey_probe = false;
- return -EBUSY;
- }
-#endif
-
#ifdef CONFIG_HAS_EARLYSUSPEND
tkey_i2c->early_suspend.suspend =
(void *)sec_touchkey_early_suspend;