Re: [PATCH V4 2/2] gpio: inverter: document the inverter bindings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All,

I've additionally Cc-ed Laurent and Stephen, since their fruitful
discussion in [1] back in 2014 concluded with a useful documentation
update [2] which is precisely related to the interpretation and usage
of the polarity flag in GPIO specifiers.

I've also Cc-ed those people who have participated in reviewing the
previous patch iterations (Geert, Phil, Enrico).

Before leaving this thread in limbo, I would like to attempt clarifying
what it actually tried to accomplish, one more time.

First of all, it stems from the need to implement a specific customer
requirement. Whether this requirement is sane or not, that's actually
a very important question, but I haven't found much discussion around
it the comments posted so far.

To paraphrase what Harish stated in [3], the customer has a list of GPIO
pins which need to be controlled from userspace. Of course, the customer
can set the polarity of those pins from userspace, as pointed out by
Linus in [4] (thanks!). But, keeping track of GPIO polarity in userspace
is seen like a burden. The customer thinks that the right place for this
HW-specific detail is in device trees. Do you think this preference
is ill-formed?

If we hog a GPIO pin in DTS (which allows specifying its polarity),
userspace no longer has access to that pin. There isn't a way to define
GPIO polarity by means of DTS without affecting userspace access
(can anybody contradict this statement?).

Whether it is obvious or not, the main goal of this series is actually
to provide the possibility of inverting the default ACTIVE_HIGH polarity
for GPIO pin X _via DTS_ while still allowing to operate on that pin
_from userspace_. My two questions are then:
 - I hope it is something sane to desire?
 - If it is sane, how can this be accomplished, if the functionality
   implemented by Harish doesn't pass the community review?

[1] https://marc.info/?l=linux-gpio&m=139204273132477&w=4 ("Correct meaning of the GPIO active low flag")
[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=51e8afc1c43c75 ("gpio: document polarity flag best practices")
[3] https://marc.info/?l=linux-gpio&m=155721267517644&w=2 ("[PATCH V1 1/2] gpio: make it possible to set active-state on GPIO lines")
[4] https://marc.info/?l=linux-gpio&m=155713157122847&w=2 ("[PATCH V1 1/2] gpio: make it possible to set active-state on GPIO lines")

-- 
Best Regards,
Eugeniu



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux