From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934636AbcAKUCw (ORCPT ); Mon, 11 Jan 2016 15:02:52 -0500 Received: from mail-pa0-f65.google.com ([209.85.220.65]:33927 "EHLO mail-pa0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750981AbcAKUCu (ORCPT ); Mon, 11 Jan 2016 15:02:50 -0500 Date: Mon, 11 Jan 2016 12:02:47 -0800 From: Dmitry Torokhov To: Oreste Salerno Cc: linux-kernel@vger.kernel.org, linux-input@vger.kernel.org, fery@cypress.com, robh+dt@kernel.org, pawel.moll@arm.com, mark.rutland@arm.com, ijc+devicetree@hellion.org.uk, galak@codeaurora.org, devicetree@vger.kernel.org Subject: Re: [PATCH v3 3/3] Input: cyttsp - add default init function Message-ID: <20160111200247.GC22646@dtor-ws> References: <01aa2661875444ecc771dfce1f466b6846ac5eea.1452447124.git.oreste.salerno@tomtom.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <01aa2661875444ecc771dfce1f466b6846ac5eea.1452447124.git.oreste.salerno@tomtom.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 > --- > 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