summaryrefslogtreecommitdiff
path: root/drivers/input
diff options
context:
space:
mode:
authorJin Fu <jinf@codeaurora.org>2016-12-05 18:45:07 +0800
committerJin Fu <jinf@codeaurora.org>2016-12-06 17:40:40 +0800
commit92a038f91622b0a3585b67abce9d5c0c644115e9 (patch)
tree1492a8662a6a1db692b01b9877828381b1209259 /drivers/input
parent5142c18bae30439decd1c139999b54197e2aae91 (diff)
input: misc: add condition check for ddic reset
LCD can control DDIC reset by itself, so add condition check and allow not to define DDIC reset pin in device tree. CRs-Fixed: 1097675 Change-ID: I802bb0ecc86349c7e0380b54811bfae776a41f49 Signed-off-by: Jin Fu <jinf@codeaurora.org>
Diffstat (limited to 'drivers/input')
-rw-r--r--drivers/input/misc/hbtp_input.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/input/misc/hbtp_input.c b/drivers/input/misc/hbtp_input.c
index f94ecf02d9cb..05cd1edefb7f 100644
--- a/drivers/input/misc/hbtp_input.c
+++ b/drivers/input/misc/hbtp_input.c
@@ -54,6 +54,7 @@ struct hbtp_data {
struct pinctrl *ts_pinctrl;
struct pinctrl_state *gpio_state_active;
struct pinctrl_state *gpio_state_suspend;
+ bool ddic_rst_enabled;
struct pinctrl_state *ddic_rst_state_active;
struct pinctrl_state *ddic_rst_state_suspend;
u32 ts_pinctrl_seq_delay;
@@ -521,15 +522,17 @@ static int hbtp_pinctrl_enable(struct hbtp_data *ts, bool on)
if (rc < 0)
return -EINVAL;
- rc = hbtp_ddic_rst_select(ts, true);
- if (rc < 0)
- goto err_ddic_rst_pinctrl_enable;
+ if (ts->ddic_rst_enabled) {
+ rc = hbtp_ddic_rst_select(ts, true);
+ if (rc < 0)
+ goto err_ddic_rst_pinctrl_enable;
+ }
return rc;
pinctrl_suspend:
- if (ts->ddic_rst_state_suspend)
- hbtp_ddic_rst_select(ts, true);
+ if (ts->ddic_rst_enabled)
+ hbtp_ddic_rst_select(ts, false);
err_ddic_rst_pinctrl_enable:
hbtp_gpio_select(ts, false);
return rc;
@@ -1078,8 +1081,10 @@ static int hbtp_pinctrl_init(struct hbtp_data *data)
dev_err(&data->pdev->dev, "count(%u) is not same as %u\n",
(u32)count, HBTP_PINCTRL_DDIC_SEQ_NUM);
}
+
+ data->ddic_rst_enabled = true;
} else {
- dev_err(&data->pdev->dev, "ddic pinctrl act/sus not found\n");
+ dev_warn(&data->pdev->dev, "ddic pinctrl act/sus not found\n");
}
data->manage_pin_ctrl = true;