Re: [PATCH] ARM: dts: vf610-zii-dev-rev-b: add hi8435 device
From: Shawn Guo
Date: Thu May 25 2017 - 03:20:45 EST
On Tue, May 23, 2017 at 09:02:27AM +0300, Nikita Yushchenko wrote:
> >> However, hi8435 driver historically was coded using inverted values
> >> passed to gpiolib calls. And there are setups in the wild with device
> >> trees containing GPIO_ACTIVE_HIGH that I'd prefer not breaking.
> >>
> >> To solve, I submitted a patch on hi8435 driver that changes to _raw()
> >> gpio calls (thus making it independent of what is written in device
> >> tree), and want [future] device trees not to contain explicitly written
> >> gpio polarity.
> >
> > So maybe add another #define, GPIO_ACTIVE_IGNORED, to make it clear
> > that it does not matter what value you put there, it is ignored.
>
> "Crap origin" here is that in vast majority of cases, polarity is
> per-chip, not per-chip-use, knowledge. And proper location for per-chip
> knowledge is chip's driver. Moving this knowledge to per-chip-use
> location in device trees only provides a source for errors, with little
> gain.
>
> Vladimir Barinov mentions possibility that signal can be inverted by
> board between gpio provider and chip's pin ... but do we have at least
> one practical case of this? And if we even do, it's quite uncommon, and
> something special should be required in device tree for these special
> cases and not for "normal" cases.
I disagree. Not for hi8435, but I have seen quite some board designs
invert GPIOs before getting them into board level components. That's
why we should define those xxx-gpios properties on board level DTS,
where polarity can be chosen per board design.
Shawn