Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1305644 > unrolled thread
| Started by | Oreste Salerno <oreste.salerno@tomtom.com> |
|---|---|
| First post | 2016-01-10 18:40 +0100 |
| Last post | 2016-01-11 21:10 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH v3 3/3] Input: cyttsp - add default init function Oreste Salerno <oreste.salerno@tomtom.com> - 2016-01-10 18:40 +0100
Re: [PATCH v3 3/3] Input: cyttsp - add default init function Dmitry Torokhov <dmitry.torokhov@gmail.com> - 2016-01-11 21:10 +0100
| From | Oreste Salerno <oreste.salerno@tomtom.com> |
|---|---|
| Date | 2016-01-10 18:40 +0100 |
| Subject | [PATCH v3 3/3] Input: cyttsp - add default init function |
| Message-ID | <qPs8b-7fC-35@gated-at.bofh.it> |
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.
Signed-off-by: Oreste Salerno <oreste.salerno@tomtom.com>
---
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
[toc] | [next] | [standalone]
| From | Dmitry Torokhov <dmitry.torokhov@gmail.com> |
|---|---|
| Date | 2016-01-11 21:10 +0100 |
| Message-ID | <qPQWS-7fk-7@gated-at.bofh.it> |
| In reply to | #1305644 |
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.
>
> Signed-off-by: Oreste Salerno <oreste.salerno@tomtom.com>
> ---
> 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
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web