diff options
author | Sudhakar Manapati <smanap@codeaurora.org> | 2015-09-12 20:05:50 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-08-30 22:16:55 -0700 |
commit | d0d1f78347ce9755da60335549e5ced1a5775ca3 (patch) | |
tree | 6959feea482a976b271875118f4eff91ca4757e6 | |
parent | 11489ea70f0a56e799a0364bea230ee7a548b5a9 (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.c | 244 | ||||
-rw-r--r-- | include/linux/input/ft5x06_ts.h | 9 |
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); |