Re: [PATCH v3 3/3] Input: cyttsp - add default init function
From: Dmitry Torokhov <hidden>
Date: 2016-01-11 20:02:52
Also in:
linux-devicetree, lkml
On Sun, Jan 10, 2016 at 06:36:09PM +0100, Oreste Salerno wrote:
When using device trees, it's not possible to assign an init() function in the platform data. In case the init function has not been assigned, attempt to perform a hard reset of the chip, using reset gpio defined in the platform data / device tree.
Hmm, I do not see any users of cyttsp platform data in mainline, so let's kill init/exit and just do GPIO toggle for everyone. We might need to add regulator support as well, but that's when someone will need it. Thanks.
quoted hunk ↗ jump to hunk
Signed-off-by: Oreste Salerno <redacted> --- drivers/input/touchscreen/cyttsp_core.c | 12 ++++++++++++ 1 file changed, 12 insertions(+)diff --git a/drivers/input/touchscreen/cyttsp_core.c b/drivers/input/touchscreen/cyttsp_core.c index 5dc6bf6..baf0fd5 100644 --- a/drivers/input/touchscreen/cyttsp_core.c +++ b/drivers/input/touchscreen/cyttsp_core.c@@ -239,6 +239,16 @@ static int cyttsp_set_sysinfo_regs(struct cyttsp *ts) return retval; } +static void cyttsp_hard_reset(struct cyttsp *ts) +{ + if (ts->pdata->reset_gpio) { + gpiod_set_value_cansleep(ts->pdata->reset_gpio, 1); + msleep(CY_DELAY_DFLT); + gpiod_set_value_cansleep(ts->pdata->reset_gpio, 0); + msleep(CY_DELAY_DFLT); + } +} + static int cyttsp_soft_reset(struct cyttsp *ts) { unsigned long timeout;@@ -685,6 +695,8 @@ struct cyttsp *cyttsp_probe(const struct cyttsp_bus_ops *bus_ops, error); goto err_free_mem; } + } else { + cyttsp_hard_reset(ts); } input_dev->name = pdata->name;-- 1.9.1
-- Dmitry -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html