From: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
To: Devicetree Discuss
<devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org>
Cc: Mark Brown
<broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
Subject: Configurable interrupt sources, and DT bindings
Date: Mon, 28 Nov 2011 15:29:51 -0700 [thread overview]
Message-ID: <4ED40B5F.6030603@nvidia.com> (raw)
Many interrupt sinks support various of active high/low, rising/falling
edge. This can already be configured by setting #interrupt-cells
appropriately, and defining an interrupt-controller-specific binding for
the additional cells.
At least some interrupt sources have similar configurability in HW. An
example is the WM8903 audio codec, which can generate both active high
and active low interrupt signals.
One possibility is to describe this directly in the binding for each
interrupt source. I originally proposed the following for the WM8903:
* Interrupt output is active high by default.
* Presence of an "irq-active-low" property selects an active low output
instead.
Mark Brown pointed out that we probably want to standardize the binding,
so that every interrupt source doesn't do something different.
Perhaps one of:
irq-active-low;
irq-active-high;
irq-edge-falling;
irq-edge-rising;
or:
interrupts-config = <"active-low"> // or "active-high", etc.
(perhaps with indices in that list matching the interrupts property)
... and a helper function in the kernel to parse those
However, given that interrupt sinks already know which signaling methods
they support, and may be configured to accept a specific method per
interrupt input using extra interrupt cells, perhaps the solution isn't
to create a binding that the interrupt sink parses in isolation, but
rather to create a new API within the kernel where the interrupt source
can query the interrupt sink for a list of supported signaling methods,
and pick one that it also supports, and use it. This list could be
restricted based on the interrupts property's extra cells.
What are people's thoughts here; should we go down this
auto-configuration route, or just explicitly configure interrupt sources
using a binding other than the interrupts property?
Related, having this negotiation followed by a request_irq() passing the
flags back to the sink seems a little redundant, but I suppose if the
sink is configurable and unconstrained, this is necessary.
--
nvpublic
next reply other threads:[~2011-11-28 22:29 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-28 22:29 Stephen Warren [this message]
[not found] ` <4ED40B5F.6030603-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2011-11-28 22:47 ` Configurable interrupt sources, and DT bindings Mark Brown
2011-11-28 23:23 ` Rob Herring
[not found] ` <4ED417F2.1030900-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-11-29 11:20 ` Mark Brown
2011-11-30 2:24 ` Stephen Warren
[not found] ` <74CDBE0F657A3D45AFBB94109FB122FF174FDAFD60-C7FfzLzN0UxDw2glCA4ptUEOCMrvLtNR@public.gmane.org>
2011-11-30 5:31 ` David Gibson
2011-11-30 13:41 ` Rob Herring
2011-11-29 1:30 ` David Gibson
[not found] ` <20111129013055.GH3508-MK4v0fQdeXQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-11-29 10:55 ` Mark Brown
[not found] ` <20111129105538.GC2851-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-11-30 5:13 ` David Gibson
[not found] ` <20111130051349.GG5435-MK4v0fQdeXQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-11-30 9:33 ` Mark Brown
[not found] ` <20111130093305.GB2791-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-11-30 13:31 ` David Gibson
[not found] ` <20111130133140.GL5435-MK4v0fQdeXQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-12-01 11:07 ` Mark Brown
[not found] ` <20111201110738.GA2915-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-12-02 5:38 ` David Gibson
[not found] ` <20111202053814.GH5427-MK4v0fQdeXQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-12-02 11:27 ` Mark Brown
[not found] ` <20111202112722.GG8245-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-12-02 12:24 ` David Gibson
[not found] ` <20111202122418.GI5427-MK4v0fQdeXQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-12-02 13:34 ` Mark Brown
[not found] ` <20111202133413.GR8245-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org>
2011-12-02 14:31 ` David Gibson
[not found] ` <20111202143107.GJ5427-MK4v0fQdeXQXU02nzanrWNbf9cGiqdzd@public.gmane.org>
2011-12-02 14:55 ` Mark Brown
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=4ED40B5F.6030603@nvidia.com \
--to=swarren-ddmlm1+adcrqt0dzr+alfa@public.gmane.org \
--cc=broonie-yzvPICuk2AATkU/dhu1WVueM+bqZidxxQQ4Iyu8u01E@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
/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).