From: Sebastian Reichel <sre@kernel.org>
To: Alexander Stein <alexander.stein@systec-electronic.com>
Cc: Phil Reid <preid@electromag.com.au>,
robh+dt@kernel.org, linus.walleij@linaro.org,
mark.rutland@arm.com, linux-gpio@vger.kernel.org,
devicetree@vger.kernel.org
Subject: Re: [PATCH v3 4/5] pinctrl: mcp23s08: configure irq polarity using irq data
Date: Tue, 21 Nov 2017 17:30:04 +0100 [thread overview]
Message-ID: <20171121163004.luw5wol2gordgom2@earth> (raw)
In-Reply-To: <2197074.iKMxQHLgca@ws-stein>
[-- Attachment #1: Type: text/plain, Size: 3694 bytes --]
Hi,
On Tue, Nov 21, 2017 at 05:04:51PM +0100, Alexander Stein wrote:
> Hi,
>
> On Tuesday, November 21, 2017, 4:21:42 PM CET Sebastian Reichel wrote:
> >[...]
> > --------------------------------------------
> > gpio: host-gpio {
> > random-properties;
> > }
> >
> > inv: line-inverter {
> > /*
> > * configure the gpio controller input to be active low
> > * and the inverter interrupt output to be active low
> > */
> > interrupts = <&gpio ACTIVE_LOW>;
> > };
> >
> > mcp23xxx {
> > random-properties;
> >
> > /*
> > * configure the chip interrupt output to be active high
> > * and the inverter interrupt input to be active high
> > */
> > interrupts = <&inv ACTIVE_HIGH>;
> > }
> > --------------------------------------------
> >
> > versus
> >
> > --------------------------------------------
> > gpio: host-gpio {
> > random-properties;
> > }
> >
> > mcp23xxx {
> > random-properties;
> >
> > /* configure host interrupt input pin to be active low */
> > interrupts = <&gpio ACTIVE_LOW>;
> >
> > /* configure chip interrupt output pin to be active high */
> > microchip,irq-active-high;
> > }
> > --------------------------------------------
> >
> > I think this is something, that Rob should comment on. Obviously at
> > least in the mainline kernel nobody implemented the first solution
> > (since there is no fitting interrupt-invert driver), but there are
> > a few instances of the second variant. On the other hand the first
> > solution describes the hardware more detailed.
> >
> > > And if someone is relying on that implicit behaviour are we allowed
> > > to break things? Probably ok with this one as it's currently not possible
> > > due to code patch 1 removes.
> > >
> > > If we need to model the invert to get the patches accepted I look into that.
> > > I don't actually need it for my system as I can set open-drain with overrides
> > > the active-high control on this device, while have active high irq consumer.
> > > :)
> >
> > IMHO the explicit line-inverter is a bit over-engineered and
> > implicit line-inverter is enough, but I'm fine with both solutions.
> > I think the DT binding maintainers should comment on this though,
> > since it's pretty much a core decision about interrupt specifiers.
>
> Once you have a hardware, where one of several IRQ users is not attached to the
> inverter you need this inverter node anyway, caused by the mixed polarities.
> Also some IRQ controllers, like ARM GIC, only support rising edge interrupts
> (also level high).
>
> This might get important if there are dedicated IRQ pads connected to several
> users.
Both binding formats support this use-case as far as I can tell.
Since you seem to understand how it looks like with the inverter
node here is an example without it:
irqctrl: irq-controller {
random-properties;
}
mcp23xxx0 {
random-properties;
/*
* configure host interrupt input pin to be active high, since
* nothing else is supported by the interrupt controller
*/
interrupts = <&irqctrl ACTIVE_HIGH>;
/*
* configure chip interrupt output pin to be active low due to
* line invert
*/
microchip,irq-active-high;
}
mcp23xxx1 {
random-properties;
/*
* shared irq, see description from other chip
*/
interrupts = <&irqctrl ACTIVE_HIGH>;
/*
* configure chip interrupt output pin to be active high, since
* it's routed through the line invert
*/
/* microchip,irq-active-high; */
}
-- Sebastian
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2017-11-21 16:30 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-21 8:21 [PATCH v3 0/5] pinctrl: mcp32s08: add open drain config for irq Phil Reid
[not found] ` <1511252491-79952-1-git-send-email-preid-qgqNFa1JUf/o2iN0hyhwsIdd74u8MsAO@public.gmane.org>
2017-11-21 8:21 ` [PATCH v3 1/5] pinctrl: mcp23s08: remove hard coded irq polarity in irq_setup Phil Reid
2017-11-21 13:17 ` Sebastian Reichel
2017-11-21 8:21 ` [PATCH v3 3/5] pinctrl: mcp23s08: add open drain configuration for irq output Phil Reid
2017-11-21 12:57 ` Sebastian Reichel
2017-11-21 8:21 ` [PATCH v3 4/5] pinctrl: mcp23s08: configure irq polarity using irq data Phil Reid
2017-11-21 13:34 ` Sebastian Reichel
2017-11-21 14:46 ` Phil Reid
[not found] ` <c191a9d6-3ebb-e95b-7342-aa18598ddf2b-qgqNFa1JUf/o2iN0hyhwsIdd74u8MsAO@public.gmane.org>
2017-11-21 15:21 ` Sebastian Reichel
2017-11-21 15:38 ` Phil Reid
2017-11-21 16:04 ` Alexander Stein
2017-11-21 16:30 ` Sebastian Reichel [this message]
2017-11-30 14:21 ` Linus Walleij
2017-11-30 15:50 ` Marc Zyngier
2017-12-01 8:38 ` Linus Walleij
2017-11-30 14:17 ` Linus Walleij
2017-11-21 8:21 ` [PATCH v3 2/5] dt-bindings: pinctrl: mcp23s08: add documentation for drive-open-drain Phil Reid
2017-11-21 12:56 ` Sebastian Reichel
[not found] ` <1511252491-79952-3-git-send-email-preid-qgqNFa1JUf/o2iN0hyhwsIdd74u8MsAO@public.gmane.org>
2017-11-21 18:37 ` Rob Herring
2017-11-21 8:21 ` [PATCH v3 5/5] dt-bindings: pinctrl: deprecate 'microchip,irq-active-high' property Phil Reid
2017-11-21 18:37 ` Rob Herring
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=20171121163004.luw5wol2gordgom2@earth \
--to=sre@kernel.org \
--cc=alexander.stein@systec-electronic.com \
--cc=devicetree@vger.kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-gpio@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=preid@electromag.com.au \
--cc=robh+dt@kernel.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).