devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "krzk@kernel.org" <krzk@kernel.org>
To: "Vaittinen, Matti" <Matti.Vaittinen@fi.rohmeurope.com>
Cc: "robh+dt@kernel.org" <robh+dt@kernel.org>,
	linux-power <linux-power@fi.rohmeurope.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"tharvey@gateworks.com" <tharvey@gateworks.com>,
	"lee.jones@linaro.org" <lee.jones@linaro.org>,
	"rjones@gateworks.com" <rjones@gateworks.com>
Subject: Re: [PATCH] dt-bindings: mfd: Correct interrupt flags in examples
Date: Wed, 9 Sep 2020 11:20:47 +0200	[thread overview]
Message-ID: <20200909092047.GA4184@kozik-lap> (raw)
In-Reply-To: <745c815f716fa8245f17cb2e189529e382df63da.camel@fi.rohmeurope.com>

On Wed, Sep 09, 2020 at 08:57:36AM +0000, Vaittinen, Matti wrote:
> Hello Krzysztof,
> 
> On Wed, 2020-09-09 at 10:17 +0200, krzk@kernel.org wrote:
> > On Wed, Sep 09, 2020 at 06:30:44AM +0000, Vaittinen, Matti wrote:
> > > On Tue, 2020-09-08 at 16:59 +0200, Krzysztof Kozlowski wrote:
> > > > GPIO_ACTIVE_x flags are not correct in the context of interrupt
> > > > flags.
> > > > These are simple defines so they could be used in DTS but they
> > > > will
> > > > not
> > > > have the same meaning:
> > > > 1. GPIO_ACTIVE_HIGH = 0 = IRQ_TYPE_NONE
> > > > 2. GPIO_ACTIVE_LOW  = 1 = IRQ_TYPE_EDGE_RISING
> > > > 
> > > > Correct the interrupt flags, assuming the author of the code
> > > > wanted
> > > > some
> > > > logical behavior behind the name "ACTIVE_xxx", this is:
> > > >   ACTIVE_LOW => IRQ_TYPE_LEVEL_LOW
> > > > 
> > > > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > > 
> > > For BD70528:
> > > Acked-By: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
> > > 
> > > > ---
> > > >  Documentation/devicetree/bindings/mfd/act8945a.txt          | 2
> > > > +-
> > > >  Documentation/devicetree/bindings/mfd/gateworks-gsc.yaml    | 3
> > > > ++-
> > > >  Documentation/devicetree/bindings/mfd/rohm,bd70528-pmic.txt | 2
> > > > +-
> > > >  3 files changed, 4 insertions(+), 3 deletions(-)
> > > > 
> > > > 
> > > > diff --git a/Documentation/devicetree/bindings/mfd/rohm,bd70528-
> > > > pmic.txt b/Documentation/devicetree/bindings/mfd/rohm,bd70528-
> > > > pmic.txt
> > > > index c3c02ce73cde..386eec06cf08 100644
> > > > --- a/Documentation/devicetree/bindings/mfd/rohm,bd70528-pmic.txt
> > > > +++ b/Documentation/devicetree/bindings/mfd/rohm,bd70528-pmic.txt
> > > > @@ -39,7 +39,7 @@ pmic: pmic@4b {
> > > >  	compatible = "rohm,bd70528";
> > > >  	reg = <0x4b>;
> > > >  	interrupt-parent = <&gpio1>;
> > > > -	interrupts = <29 GPIO_ACTIVE_LOW>;
> > > > +	interrupts = <29 IRQ_TYPE_LEVEL_LOW>;
> > > 
> > > This is how it should have been from the beginning :) Thanks!
> > 
> > I start to wonder now. It seems some boards do not configure a pull
> > up
> > there, so IRQ_TYPE_LEVEL_LOW is wrong - causes the line to stay in
> > low
> > state.  But actually this maybe is a problem of missing pull up, not
> > the
> > IRQ flag?
> 
> The BD70528 is designed so that it will use level active interrupts -
> and line is pulled down when IRQ is active. Thus the example should
> have IRQ_TYPE_LEVEL_LOW - and your fix is correct.
> 
> After that being said - I can't comment on actual board using BD70528
> (or other ROHM ICs) - even less I can comment boards using other ICs.
> 
> After that being said - it's not a rare mistake to configure level
> active IRQs to be triggered at edge - it actually works most of the
> time - untill they deadlock at the race of generating new IRQ between
> reading the status and acking the line... I've debugged way too many
> such cases...
> 
> Anyways, for BD70528 DTS example your fix looks correct. Thanks.

Thanks. I found this error in multiple DTS files - most probably a copy
paste from example or from evalkit (e.g. imx8mm-evk.dts). The trouble is
that I don't have the schematics for them and at least in one hardware
(Variscite VAR-SOM-MX8M which I am using) it looks like logic got
reversed...

Best regards,
Krzysztof


  reply	other threads:[~2020-09-09  9:20 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-08 14:59 [PATCH] dt-bindings: mfd: Correct interrupt flags in examples Krzysztof Kozlowski
2020-09-09  6:29 ` Lee Jones
2020-09-09  6:30 ` Vaittinen, Matti
2020-09-09  8:17   ` krzk
2020-09-09  8:57     ` Vaittinen, Matti
2020-09-09  9:20       ` krzk [this message]
2020-09-09 10:19         ` Vaittinen, Matti
2020-09-09 15:22 ` Tim Harvey
2020-09-15 16:53 ` 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=20200909092047.GA4184@kozik-lap \
    --to=krzk@kernel.org \
    --cc=Matti.Vaittinen@fi.rohmeurope.com \
    --cc=devicetree@vger.kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-power@fi.rohmeurope.com \
    --cc=rjones@gateworks.com \
    --cc=robh+dt@kernel.org \
    --cc=tharvey@gateworks.com \
    /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).