From 92a038f91622b0a3585b67abce9d5c0c644115e9 Mon Sep 17 00:00:00 2001 From: Jin Fu Date: Mon, 5 Dec 2016 18:45:07 +0800 Subject: [PATCH] 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 --- drivers/input/misc/hbtp_input.c | 17 +++++++++++------ 1 file 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;