From: swarren@wwwdotorg.org (Stephen Warren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 37/37] ARM: dts: tegra20-ventana: Fix regulator enable GPIO polarity
Date: Tue, 13 Oct 2015 10:35:15 -0600 [thread overview]
Message-ID: <561D32C3.6010907@wwwdotorg.org> (raw)
In-Reply-To: <9351580.BEfKjdvstm@avalon>
On 10/12/2015 04:24 PM, Laurent Pinchart wrote:
> Hi Stephen,
>
> On Monday 12 October 2015 15:34:43 Stephen Warren wrote:
>> On 10/12/2015 03:13 PM, Laurent Pinchart wrote:
>>> The enable GPIO is active low,
>>
>> It'd be good to mention a justification for that statement in the
>> patches, since the cover letter isn't going to be checked in.
>>
>>> but is flagged as active high in the gpio
>>> property. As the gpio property flags are currently unused by the driver
>>> this doesn't cause any issue for now, but will break later if the driver
>>> starts making use of the flags. Fix it.
>>
>> IIRC the history here was that for some bizarre reason not all GPIO
>> bindings contained an active-high/low flag and there was resistance to
>> extending them in a backwards compatible way. So the regulator binding
>> needed the separate property to represent this. For bindings that did
>> have the flag, we had to set the GPIO flag to active-high, so that if
>> anything started honoring the GPIO flags (e.g. I thikn the gpiod API
>> does today, but the legacy GPIO API doesn't), we wouldn't apply both
>> "active low indicators", and end up driving an active-high signal, and
>> breaking things.
>>
>> So while this change is logically correct when read in isolation (and
>> for Harmony, Seaboard, and Ventana I verified that these regulators do
>> use an active-low GPIO), I worry that making it makes mistakes likely
>> later. How would we mitigate that?
>
> That's a very good point. Is the resistance to move to the standard GPIO
> active low/high flags still present, or is it now only history ?
This was a few years back, so I don't remember the details; it might
have been as simple as "some bindings don't already have GPIO flags, and
I'd rather get GPIO regulators implemented first before thinking about
fixing that" or it could have been "some bindings don't already have
GPIO flags, and there's ${some reason} why it's not possible to solve
that in a backwards-compatible fashion" (recalling that DT bindings must
evolve in a backwards-compatible fashion since they're an ABI).
Unfortunately, you'd have to read through the mailing list posts related
to the patches that defined the GPIO regulator bindings or added the
nodes to DT.
> In other
> words, could we aim for using GPIO flags as the primary method to specify
> polarities, and fall back to the custom properties for backward compatibility
> (and possibly for GPIO controllers that don't support the flags) ?
I don't think we can switch to using GPIO flags, without changing the
compatible values for the relevant DT nodes.
For one, we'd need some way of actively marking the nodes to say whether
they are written to expect that the GPIO flags or the other properties
be used. It's not possible in all cases to determine this automatically.
For example, if enable-active-high it's fairly clear we should honor
this flag, yet if it's missing does that mean the GPIO is active-low or
simply that the node was written to expect that the GPIO flags be used
instead?
Also, old DTs must work with new kernels (and preferably also, new DTs
must work with old kernels). If the GPIO flags are wrong in current DTs,
then we can't use them. Of course, there's an argument that the
backwards-compatibility constraint doesn't apply to buggy DTs, just to
correctly written DTs. However, if we deliberately chose to make all
regulator GPIO flags ACTIVE_HIGH, then the current DTs aren't buggy.
next prev parent reply other threads:[~2015-10-13 16:35 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-12 21:12 [PATCH 00/37] ARM: dts: Fix fixed regulators enable GPIO polarity Laurent Pinchart
2015-10-12 21:12 ` [PATCH 01/37] ARM: dts: am437x-gp-evm: Remove unneeded regulator property Laurent Pinchart
2015-10-12 21:12 ` [PATCH 02/37] ARM: dts: am43xx-epos-evm: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 03/37] ARM: mvebu: Armada 388 GP: " Laurent Pinchart
2015-10-13 8:37 ` Thomas Petazzoni
2015-10-12 21:12 ` [PATCH 04/37] ARM: imx6sx-sdb: Fix typo in regulator enable GPIO property Laurent Pinchart
2015-10-12 21:12 ` [PATCH 05/37] ARM: dts: s5pv210-aquila: " Laurent Pinchart
2015-10-13 0:20 ` Krzysztof Kozlowski
2015-10-12 21:12 ` [PATCH 06/37] ARM: dts: s5pv210-goni: " Laurent Pinchart
2015-10-13 0:20 ` Krzysztof Kozlowski
2015-10-12 21:12 ` [PATCH 07/37] ARM: dts: omap3-evm: Remove invalid enable-active-low regulator property Laurent Pinchart
2015-10-12 21:12 ` [PATCH 08/37] ARM: dts: omap3-sb-t35: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 09/37] ARM: dts: omap3-tao3530: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 10/37] ARM: dts: imx6qdl-tx6: Fix regulator enable GPIO polarity Laurent Pinchart
2015-10-12 21:12 ` [PATCH 11/37] ARM: dts: dove-cm-a510: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 12/37] ARM: dts: dove-sbc-a510: " Laurent Pinchart
2015-10-12 22:50 ` Jason Cooper
2015-10-12 23:10 ` Laurent Pinchart
2015-10-12 23:26 ` Jason Cooper
2015-10-12 21:12 ` [PATCH 13/37] ARM: dts: exynos5250-arndale: " Laurent Pinchart
2015-10-13 14:11 ` Shawn Guo
2015-10-12 21:12 ` [PATCH 14/37] ARM: dts: imx23-evk: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 15/37] ARM: dts: imx23-stmp378x_devb: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 16/37] ARM: dts: imx25-pdk: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 17/37] ARM: dts: imx28-cfa10036: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 18/37] ARM: dts: imx28-evk: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 19/37] ARM: dts: imx28-m28cu3: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 20/37] ARM: dts: imx28-m28evk: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 21/37] ARM: dts: imx28-sps1: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 22/37] ARM: dts: imx28-tx28: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 23/37] ARM: dts: imx53-m53evk: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 24/37] ARM: dts: imx53-mba53: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 25/37] ARM: dts: imx53-tx53: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 26/37] ARM: dts: imx6q-dmo-edmqmx6: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 27/37] ARM: dts: kirkwood-blackarmor-nas220: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 28/37] ARM: dts: omap4-duovero: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 29/37] ARM: dts: kirkwood-nsa3x0-common: " Laurent Pinchart
2015-10-12 21:12 ` [PATCH 30/37] ARM: dts: omap3-beagle-xm: " Laurent Pinchart
2015-10-12 21:13 ` [PATCH 31/37] ARM: dts: omap3-beagle: " Laurent Pinchart
2015-10-12 21:13 ` [PATCH 32/37] ARM: dts: omap3-overo-base: " Laurent Pinchart
2015-10-12 21:13 ` [PATCH 33/37] ARM: dts: omap3-tao3530: " Laurent Pinchart
2015-10-12 21:13 ` [PATCH 34/37] ARM: dts: tegra20-harmony: " Laurent Pinchart
2015-10-12 21:13 ` [PATCH 35/37] ARM: dts: tegra20-iris-512: " Laurent Pinchart
2015-10-12 21:13 ` [PATCH 36/37] ARM: dts: tegra20-seaboard: " Laurent Pinchart
2015-10-12 21:13 ` [PATCH 37/37] ARM: dts: tegra20-ventana: " Laurent Pinchart
2015-10-12 21:34 ` Stephen Warren
2015-10-12 22:24 ` Laurent Pinchart
2015-10-13 16:35 ` Stephen Warren [this message]
2015-10-12 21:46 ` [PATCH 00/37] ARM: dts: Fix fixed regulators " Tony Lindgren
2015-10-12 22:19 ` Javier Martinez Canillas
2015-10-12 22:22 ` Laurent Pinchart
2015-10-12 22:24 ` Tony Lindgren
2015-10-13 6:19 ` Sascha Hauer
2015-10-13 14:09 ` Shawn Guo
2015-10-13 14:17 ` Laurent Pinchart
2015-10-13 15:09 ` Shawn Guo
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=561D32C3.6010907@wwwdotorg.org \
--to=swarren@wwwdotorg.org \
--cc=linux-arm-kernel@lists.infradead.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).