Re: [PATCH] regulator: core: GPIO #0 is a valid GPIO

Dmitry Eremin-Solenikov
2014-09-01T12:35:32Z

On 09/01/2014 04:06 PM, Mark Brown wrote:
> On Mon, Sep 01, 2014 at 03:59:34PM +0400, Dmitry Eremin-Solenikov wrote:
>> On 09/01/2014 02:15 PM, Mark Brown wrote:
>
>>> There's no practical way to deploy that without breaking users - as soon
>>> as you treat 0 as a valid GPIO you make all existing users relying on
>>> the natural behaviour of treating 0 as default instantly buggy which is
>>> not practical. Really the GPIO API is badly specified here.
>
>> Back in the time before DTS conversion started, the 0 was a correct GPIO
>> number. If somebody wanted to specify that no gpio is provided, he provided
>> -1 as an invalid number. I have the feeling that allowing users to use 0 as
>> 'no gpio' is a mistake. Or the API should be changed
>> to disallow GPIO 0 to exist at all.
>
> Please consider my point about making users instantly buggy - it's not
> practical to introduce a new field into existing platform data which
> needs initialization. Disallowing the use of 0 as a GPIO seems more
> practical here (in that it's something the platform can control with
> more reliable coordination).

I think that this makes other users buggy - those, whose platforms use
GPIO numbering starting from 0. IMX platform does. legacy platforms do.

Consider NO_IRQ which is still defined to -1 on ARM platforms. If a
device does not have a connected IRQ, it has to explicitly specify -1
instead of specifying logical default 0. Is it so? What is so different
with GPIOs and regulators?

--
With best wishes
Dmitry