[PATCH 00/37] ARM: dts: Fix fixed regulators enable GPIO polarity
Tony Lindgren
tony at atomide.com
Mon Oct 12 15:24:25 PDT 2015
* Laurent Pinchart <laurent.pinchart at ideasonboard.com> [151012 15:26]:
> Hi Javier,
>
> On Tuesday 13 October 2015 00:19:20 Javier Martinez Canillas wrote:
> > On 10/12/2015 11:46 PM, Tony Lindgren wrote:
> > > * Laurent Pinchart <laurent.pinchart at ideasonboard.com> [151012 14:17]:
> > >> Hello,
> > >>
> > >> While working on regulators, GPIOs and DT I noticed that many of our DT
> > >> source files incorrectly describe fixed regulators. The common error
> > >> patterns are
> > >>
> > >> - Usage of the undefined (and never parsed) enable-active-low property
> > >> - Usage of the enable-active-high property without specifying an enable
> > >> GPIO
> > >> - Typos in the enabl GPIO property name (gpios instead of gpio)
> > >> - Mismatch between the enable-active-high property (or the lack thereof)
> > >> and the enable GPIO flags
> > >>
> > >> This patch series fixes those issues in all the DT sources after locating
> > >> the errors using the following script.
> > >>
> > >> -------------------------------------------------------------------------
> > >> !/bin/sh
> > >>
> > >> echo $1
> > >> cat $1 | awk '
> > >> BEGIN {
> > >> open_drain = 0;
> > >> active_high = 0;
> > >> gpio = 0;
> > >> flags = 0;
> > >> }
> > >>
> > >> match($0, /([a-zA-Z0-9 at _-]*) {/, ary) {
> > >> name = ary[1];
> > >> }
> > >>
> > >> /compatible.*"regulator-fixed"/ {
> > >> found = 1;
> > >> }
> > >>
> > >> /enable-active-high/ {
> > >> active_high = 1;
> > >> }
> > >>
> > >> /gpio-open-drain/ {
> > >> open_drain = 1;
> > >> }
> > >>
> > >> match($0, /gpio += <.* ([^ ]*)>/, ary) {
> > >> gpio = 1;
> > >> flags = ary[1];
> > >> if (flags == 0)
> > >> flags = "GPIO_ACTIVE_HIGH";
> > >> }
> > >>
> > >> /}/ {
> > >> if (found) {
> > >> if (gpio) {
> > >> print "\t" name ": active high " active_high " " flags " open
> drain "
> > >> open_drain;
> > >> if ((active_high && flags == "GPIO_ACTIVE_LOW") ||
> > >> (!active_high && flags == "GPIO_ACTIVE_HIGH"))
> > >> print "WARNING: enable-active-high and flags do not
> match"
> > >> } else {
> > >> if (active_high)
> > >> print "WARNING: active high without GPIO"
> > >> if (open_drain)
> > >> print "WARNING: open drain without GPIO"
> > >> }
> > >> }
> > >>
> > >> gpio = 0;
> > >> found = 0;
> > >> active_high = 0;
> > >> open_drain = 0;
> > >> flags = 0;
> > >> }
> > >> '
> > >> -------------------------------------------------------------------------
> > >>
> > >> All patches except for the ones touching omap3-beagle-xm and
> > >> omap3-overo-base are untested as I lack test hardware.
> > >>
> > >> As there's no dependency between the patches touching different source
> > >> files the appropriate maintainers could take their share of the patches
> > >> in their tree. Alternatively I could send a single pull request after
> > >> collecting all acks but that might be more complex.
> > >
> > > Nice clean-up. For omaps, there's an earlier patch posted by
> > > Javier Martinez Canillas <javier at osg.samsung.com> as "[PATCH] ARM: dts:
> > > Use defined GPIO constants in flags cell for OMAP2+ boards". Can you guys
> > > do some cross checking and let me know which combination I should appluy
> > > for omaps?
> >
> > Since Laurent's changes for OMAP are part of a bigger series and my patch
> > was only for OMAP, probably makes sense for you to pick his patches and I
> > can re-spin mine on top of that.
> >
> > BTW, I posted as a single patch since the changes were trivial but maybe
> > that made handling these conflicts harder and I should split the changes
> > instead, since I'll resend anyways.
> >
> > What do you prefer? a patch per SoC family (i.e: OMAP{2,3,4,5}) or patch
> > per board DTS?
>
> My series will likely miss the next merge window as more discussion is needed.
> I'll thus respin the patches on top of yours, please proceed without caring
> about this.
OK applying Javier's patch into omap-for-v4.4/dt then.
Regards,
Tony
More information about the linux-arm-kernel
mailing list