From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
To: Baolin Wang <baolin.wang@linaro.org>
Cc: Arnd Bergmann <arnd@arndb.de>, Rob Herring <robh+dt@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
gregkh <gregkh@linuxfoundation.org>,
stephen lu <lumotuwe@gmail.com>,
Arvind Yadav <arvind.yadav.cs@gmail.com>,
Joseph Lo <josephl@nvidia.com>,
Kate Stewart <kstewart@linuxfoundation.org>,
Philippe Ombredanne <pombredanne@nexb.com>,
Thomas Gleixner <tglx@linutronix.de>,
"open list:HID CORE LAYER" <linux-input@vger.kernel.org>,
DTML <devicetree@vger.kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Mark Brown <broonie@kernel.org>,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: [PATCH v3] Input: gpio_keys: Add level trigger support for GPIO keys
Date: Thu, 1 Mar 2018 16:44:04 -0800 [thread overview]
Message-ID: <20180302004404.GA242226@dtor-ws> (raw)
In-Reply-To: <CAMz4kuLNbsZjDPW19V96yL3DzY-bJsjRR=o+w0x4PGyxZFZ0dg@mail.gmail.com>
On Thu, Mar 01, 2018 at 03:35:23PM +0800, Baolin Wang wrote:
> On 28 February 2018 at 22:44, Arnd Bergmann <arnd@arndb.de> wrote:
> > On Wed, Feb 28, 2018 at 1:44 PM, Baolin Wang <baolin.wang@linaro.org> wrote:
> >> On some platforms (such as Spreadtrum platform), the GPIO keys can only
> >> be triggered by level type. So this patch introduces one property to
> >> indicate if the GPIO trigger type is level trigger or edge trigger.
> >>
> >> Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
> >> ---
> >> Changes since v2:
> >> - Use 'interrupt' property to indicate the irq type.
> >>
> >> Changes since v1:
> >> - Diable the GPIO irq until reversing the GPIO level type.
> >
> > I've looked at your patch in more detail now, and given it a bit more thought.
> >
> > I wonder if you could move that logic into your gpiochip/irqchip driver instead.
> > It seems that what you do in the gpio-keys driver is to emulate edge triggered
> > behavior on a level triggered irqchip.
> >
> > If you put the same logic into the gpio driver, you could simply make it
> > pretend to support an edge trigger on both edges and call into the interrupt
> > handler whenever the state changes.
> >
>
> That is really a good suggestion, which can avoid duplicate level
> reverse logic in different drivers. So this patch can be simplified
> just adding one trigger_type to indicate the interrupt type (not
> always edge trigger). Thanks for your suggestion.
No, there is no need to add trigger type. The gpio-keys driver expects
trigger with both edges, falling and rising. If your GPIO chip does not
support it natively, you need to emulate edge trigger via level
interrupts by reprogramming trigger from active low to active high and
back on the fly. This should be done in the gpiochip/irqchip driver.
There is no need to change gpio-keys driver.
Thanks.
--
Dmitry
next prev parent reply other threads:[~2018-03-02 0:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-28 12:44 [PATCH v3] Input: gpio_keys: Add level trigger support for GPIO keys Baolin Wang
2018-02-28 14:44 ` Arnd Bergmann
2018-03-01 7:35 ` Baolin Wang
2018-03-02 0:44 ` Dmitry Torokhov [this message]
2018-03-02 3:10 ` Baolin Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180302004404.GA242226@dtor-ws \
--to=dmitry.torokhov@gmail.com \
--cc=arnd@arndb.de \
--cc=arvind.yadav.cs@gmail.com \
--cc=baolin.wang@linaro.org \
--cc=broonie@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=josephl@nvidia.com \
--cc=kstewart@linuxfoundation.org \
--cc=linus.walleij@linaro.org \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lumotuwe@gmail.com \
--cc=mark.rutland@arm.com \
--cc=pombredanne@nexb.com \
--cc=robh+dt@kernel.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).