summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSudhakar Manapati <smanap@codeaurora.org>2015-09-12 20:05:50 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2016-08-30 22:16:55 -0700
commitd0d1f78347ce9755da60335549e5ced1a5775ca3 (patch)
tree6959feea482a976b271875118f4eff91ca4757e6
parent11489ea70f0a56e799a0364bea230ee7a548b5a9 (diff)
input: ft5x06_ts: remove proximity sensor support
remove psensor support as the linux/sensors.h file is not yet merged in msm-3.18 kernel. Change-Id: I6d46b35938b7420072f9245ffa27bb59f28d5e03 Signed-off-by: Sudhakar Manapati <smanap@codeaurora.org>
-rw-r--r--drivers/input/touchscreen/ft5x06_ts.c244
-rw-r--r--include/linux/input/ft5x06_ts.h9
2 files changed, 1 insertions, 252 deletions
diff --git a/drivers/input/touchscreen/ft5x06_ts.c b/drivers/input/touchscreen/ft5x06_ts.c
index de1d2aacb60c..8335479f266e 100644
--- a/drivers/input/touchscreen/ft5x06_ts.c
+++ b/drivers/input/touchscreen/ft5x06_ts.c
@@ -29,7 +29,6 @@
#include <linux/regulator/consumer.h>
#include <linux/firmware.h>
#include <linux/debugfs.h>
-#include <linux/sensors.h>
#include <linux/input/ft5x06_ts.h>
#if defined(CONFIG_FB)
@@ -74,19 +73,6 @@
#define FT_REG_FW_MIN_VER 0xB2
#define FT_REG_FW_SUB_MIN_VER 0xB3
-/* psensor register address*/
-#define FT_REG_PSENSOR_ENABLE 0xB0
-#define FT_REG_PSENSOR_STATUS 0x01
-
-/* psensor register bits*/
-#define FT_PSENSOR_ENABLE_MASK 0x01
-#define FT_PSENSOR_STATUS_NEAR 0xC0
-#define FT_PSENSOR_STATUS_FAR 0xE0
-#define FT_PSENSOR_FAR_TO_NEAR 0
-#define FT_PSENSOR_NEAR_TO_FAR 1
-#define FT_PSENSOR_ORIGINAL_STATE_FAR 1
-#define FT_PSENSOR_WAKEUP_TIMEOUT 500
-
/* gesture register address*/
#define FT_REG_GESTURE_ENABLE 0xD0
#define FT_REG_GESTURE_OUTPUT 0xD3
@@ -242,7 +228,6 @@ struct ft5x06_ts_data {
struct i2c_client *client;
struct input_dev *input_dev;
const struct ft5x06_ts_platform_data *pdata;
- struct ft5x06_psensor_platform_data *psensor_pdata;
struct ft5x06_gesture_platform_data *gesture_pdata;
struct regulator *vdd;
struct regulator *vcc_i2c;
@@ -271,29 +256,6 @@ struct ft5x06_ts_data {
static int ft5x06_ts_start(struct device *dev);
static int ft5x06_ts_stop(struct device *dev);
-static struct sensors_classdev __maybe_unused sensors_proximity_cdev = {
- .name = "ft5x06-proximity",
- .vendor = "FocalTech",
- .version = 1,
- .handle = SENSORS_PROXIMITY_HANDLE,
- .type = SENSOR_TYPE_PROXIMITY,
- .max_range = "5.0",
- .resolution = "5.0",
- .sensor_power = "0.1",
- .min_delay = 0,
- .fifo_reserved_event_count = 0,
- .fifo_max_event_count = 0,
- .enabled = 0,
- .delay_msec = 200,
- .sensors_enable = NULL,
- .sensors_poll_delay = NULL,
-};
-
-static inline bool ft5x06_psensor_support_enabled(void)
-{
- return config_enabled(CONFIG_TOUCHSCREEN_FT5X06_PSENSOR);
-}
-
static inline bool ft5x06_gesture_support_enabled(void)
{
return config_enabled(CONFIG_TOUCHSCREEN_FT5X06_GESTURE);
@@ -374,84 +336,6 @@ static int ft5x0x_read_reg(struct i2c_client *client, u8 addr, u8 *val)
return ft5x06_i2c_read(client, &addr, 1, val, 1);
}
-#ifdef CONFIG_TOUCHSCREEN_FT5X06_PSENSOR
-static void ft5x06_psensor_enable(struct ft5x06_ts_data *data, int enable)
-{
- u8 state;
- int ret = -1;
-
- if (data->client == NULL)
- return;
-
- ft5x0x_read_reg(data->client, FT_REG_PSENSOR_ENABLE, &state);
- if (enable)
- state |= FT_PSENSOR_ENABLE_MASK;
- else
- state &= ~FT_PSENSOR_ENABLE_MASK;
-
- ret = ft5x0x_write_reg(data->client, FT_REG_PSENSOR_ENABLE, state);
- if (ret < 0)
- dev_err(&data->client->dev,
- "write psensor switch command failed\n");
-}
-
-static int ft5x06_psensor_enable_set(struct sensors_classdev *sensors_cdev,
- unsigned int enable)
-{
- struct ft5x06_psensor_platform_data *psensor_pdata =
- container_of(sensors_cdev,
- struct ft5x06_psensor_platform_data, ps_cdev);
- struct ft5x06_ts_data *data = psensor_pdata->data;
- struct input_dev *input_dev = data->psensor_pdata->input_psensor_dev;
-
- mutex_lock(&input_dev->mutex);
- ft5x06_psensor_enable(data, enable);
- psensor_pdata->tp_psensor_data = FT_PSENSOR_ORIGINAL_STATE_FAR;
- if (enable)
- psensor_pdata->tp_psensor_opened = 1;
- else
- psensor_pdata->tp_psensor_opened = 0;
- mutex_unlock(&input_dev->mutex);
- return enable;
-}
-
-static int ft5x06_read_tp_psensor_data(struct ft5x06_ts_data *data)
-{
- u8 psensor_status;
- char tmp;
- int ret = 1;
-
- ft5x0x_read_reg(data->client,
- FT_REG_PSENSOR_STATUS, &psensor_status);
-
- tmp = data->psensor_pdata->tp_psensor_data;
- if (psensor_status == FT_PSENSOR_STATUS_NEAR)
- data->psensor_pdata->tp_psensor_data =
- FT_PSENSOR_FAR_TO_NEAR;
- else if (psensor_status == FT_PSENSOR_STATUS_FAR)
- data->psensor_pdata->tp_psensor_data =
- FT_PSENSOR_NEAR_TO_FAR;
-
- if (tmp != data->psensor_pdata->tp_psensor_data) {
- dev_dbg(&data->client->dev,
- "%s sensor data changed\n", __func__);
- ret = 0;
- }
- return ret;
-}
-#else
-static int ft5x06_psensor_enable_set(struct sensors_classdev *sensors_cdev,
- unsigned int enable)
-{
- return enable;
-}
-
-static int ft5x06_read_tp_psensor_data(struct ft5x06_ts_data *data)
-{
- return 0;
-}
-#endif
-
#ifdef CONFIG_TOUCHSCREEN_FT5X06_GESTURE
static ssize_t ft5x06_gesture_enable_to_set_show(struct device *dev,
struct device_attribute *attr, char *buf)
@@ -701,24 +585,6 @@ static irqreturn_t ft5x06_ts_interrupt(int irq, void *dev_id)
ip_dev = data->input_dev;
buf = data->tch_data;
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support &&
- data->psensor_pdata->tp_psensor_opened) {
- rc = ft5x06_read_tp_psensor_data(data);
- if (!rc) {
- if (data->suspended)
- pm_wakeup_event(&data->client->dev,
- FT_PSENSOR_WAKEUP_TIMEOUT);
- input_report_abs(data->psensor_pdata->input_psensor_dev,
- ABS_DISTANCE,
- data->psensor_pdata->tp_psensor_data);
- input_sync(data->psensor_pdata->input_psensor_dev);
- if (data->suspended)
- return IRQ_HANDLED;
- }
- if (data->suspended)
- return IRQ_HANDLED;
- }
-
if (ft5x06_gesture_support_enabled() && data->pdata->gesture_support) {
ft5x0x_read_reg(data->client, FT_REG_GESTURE_ENABLE,
&gesture_is_active);
@@ -1180,18 +1046,6 @@ static int ft5x06_ts_suspend(struct device *dev)
return 0;
}
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support &&
- device_may_wakeup(dev) &&
- data->psensor_pdata->tp_psensor_opened) {
-
- err = enable_irq_wake(data->client->irq);
- if (err)
- dev_err(&data->client->dev,
- "%s: set_irq_wake failed\n", __func__);
- data->suspended = true;
- return err;
- }
-
if (ft5x06_gesture_support_enabled() && data->pdata->gesture_support &&
device_may_wakeup(dev) &&
data->gesture_pdata->gesture_enable_to_set) {
@@ -1218,18 +1072,6 @@ static int ft5x06_ts_resume(struct device *dev)
return 0;
}
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support &&
- device_may_wakeup(dev) &&
- data->psensor_pdata->tp_psensor_opened) {
- err = disable_irq_wake(data->client->irq);
- if (err)
- dev_err(&data->client->dev,
- "%s: disable_irq_wake failed\n",
- __func__);
- data->suspended = false;
- return err;
- }
-
if (ft5x06_gesture_support_enabled() && data->pdata->gesture_support &&
device_may_wakeup(dev) &&
!(data->gesture_pdata->in_pocket) &&
@@ -2046,9 +1888,6 @@ static int ft5x06_parse_dt(struct device *dev,
pdata->ignore_id_check = of_property_read_bool(np,
"focaltech,ignore-id-check");
- pdata->psensor_support = of_property_read_bool(np,
- "focaltech,psensor-support");
-
pdata->gesture_support = of_property_read_bool(np,
"focaltech,gesture-support");
@@ -2087,11 +1926,9 @@ static int ft5x06_ts_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{
struct ft5x06_ts_platform_data *pdata;
- struct ft5x06_psensor_platform_data *psensor_pdata;
struct ft5x06_gesture_platform_data *gesture_pdata;
struct ft5x06_ts_data *data;
struct input_dev *input_dev;
- struct input_dev *psensor_input_dev;
struct dentry *temp;
u8 reg_value;
u8 reg_addr;
@@ -2260,55 +2097,6 @@ static int ft5x06_ts_probe(struct i2c_client *client,
goto free_gpio;
}
- if (data->pdata->psensor_support && data->pdata->gesture_support) {
- dev_err(&client->dev,
- "Unsupport psensor & gesture at the same time\n");
- goto irq_free;
- }
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support) {
- device_init_wakeup(&client->dev, 1);
- psensor_pdata = devm_kzalloc(&client->dev,
- sizeof(struct ft5x06_psensor_platform_data),
- GFP_KERNEL);
- if (!psensor_pdata) {
- dev_err(&client->dev, "Failed to allocate memory\n");
- goto irq_free;
- }
- data->psensor_pdata = psensor_pdata;
-
- psensor_input_dev = input_allocate_device();
- if (!psensor_input_dev) {
- dev_err(&data->client->dev,
- "Failed to allocate device\n");
- goto free_psensor_pdata;
- }
-
- __set_bit(EV_ABS, psensor_input_dev->evbit);
- input_set_abs_params(psensor_input_dev,
- ABS_DISTANCE, 0, 1, 0, 0);
- psensor_input_dev->name = "proximity";
- psensor_input_dev->id.bustype = BUS_I2C;
- psensor_input_dev->dev.parent = &data->client->dev;
- data->psensor_pdata->input_psensor_dev = psensor_input_dev;
-
- err = input_register_device(psensor_input_dev);
- if (err) {
- dev_err(&data->client->dev,
- "Unable to register device, err=%d\n", err);
- goto free_psensor_input_dev;
- }
-
- psensor_pdata->ps_cdev = sensors_proximity_cdev;
- psensor_pdata->ps_cdev.sensors_enable =
- ft5x06_psensor_enable_set;
- psensor_pdata->data = data;
-
- err = sensors_classdev_register(&psensor_input_dev->dev,
- &psensor_pdata->ps_cdev);
- if (err)
- goto unregister_psensor_input_device;
- }
-
if (ft5x06_gesture_support_enabled() && data->pdata->gesture_support) {
device_init_wakeup(&client->dev, 1);
gesture_pdata = devm_kzalloc(&client->dev,
@@ -2316,7 +2104,7 @@ static int ft5x06_ts_probe(struct i2c_client *client,
GFP_KERNEL);
if (!gesture_pdata) {
dev_err(&client->dev, "Failed to allocate memory\n");
- goto free_psensor_class_sysfs;
+ goto free_gesture_dev;
}
data->gesture_pdata = gesture_pdata;
gesture_pdata->data = data;
@@ -2483,28 +2271,7 @@ free_gesture_pdata:
devm_kfree(&client->dev, gesture_pdata);
data->gesture_pdata = NULL;
}
-free_psensor_class_sysfs:
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support)
- sensors_classdev_unregister(&psensor_pdata->ps_cdev);
-unregister_psensor_input_device:
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support)
- input_unregister_device(data->psensor_pdata->input_psensor_dev);
-free_psensor_input_dev:
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support)
- input_free_device(data->psensor_pdata->input_psensor_dev);
-free_psensor_pdata:
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support) {
- devm_kfree(&client->dev, psensor_pdata);
- data->psensor_pdata = NULL;
- }
-irq_free:
- if ((ft5x06_psensor_support_enabled() &&
- data->pdata->psensor_support) ||
- (ft5x06_gesture_support_enabled() &&
- data->pdata->gesture_support))
- device_init_wakeup(&client->dev, 0);
- free_irq(client->irq, data);
free_gpio:
if (gpio_is_valid(pdata->reset_gpio))
gpio_free(pdata->reset_gpio);
@@ -2551,15 +2318,6 @@ static int ft5x06_ts_remove(struct i2c_client *client)
data->gesture_pdata = NULL;
}
- if (ft5x06_psensor_support_enabled() && data->pdata->psensor_support) {
-
- device_init_wakeup(&client->dev, 0);
- sensors_classdev_unregister(&data->psensor_pdata->ps_cdev);
- input_unregister_device(data->psensor_pdata->input_psensor_dev);
- devm_kfree(&client->dev, data->psensor_pdata);
- data->psensor_pdata = NULL;
- }
-
debugfs_remove_recursive(data->dir);
device_remove_file(&client->dev, &dev_attr_force_update_fw);
device_remove_file(&client->dev, &dev_attr_update_fw);
diff --git a/include/linux/input/ft5x06_ts.h b/include/linux/input/ft5x06_ts.h
index 0b216da7d507..3825f9d1e68c 100644
--- a/include/linux/input/ft5x06_ts.h
+++ b/include/linux/input/ft5x06_ts.h
@@ -34,14 +34,6 @@ struct fw_upgrade_info {
u16 delay_erase_flash;
};
-struct ft5x06_psensor_platform_data {
- struct input_dev *input_psensor_dev;
- struct sensors_classdev ps_cdev;
- int tp_psensor_opened;
- char tp_psensor_data; /* 0 near, 1 far */
- struct ft5x06_ts_data *data;
-};
-
struct ft5x06_gesture_platform_data {
int gesture_enable_to_set; /* enable/disable gesture */
int in_pocket; /* whether in pocket mode or not */
@@ -76,7 +68,6 @@ struct ft5x06_ts_platform_data {
bool no_force_update;
bool i2c_pull_up;
bool ignore_id_check;
- bool psensor_support;
bool gesture_support;
int (*power_init)(bool);
int (*power_on)(bool);