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

Dmitry Eremin-Solenikov
2014-09-01T11:59:41Z

On 09/01/2014 02:15 PM, Mark Brown wrote:
> On Mon, Sep 01, 2014 at 09:46:54AM +0200, Dirk Behme wrote:
>> I wonder how this fits to
>
>> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/gpio/gpio-legacy.txt
>
>> "GPIOs are identified by unsigned integers in the range 0..MAX_INT"
>
>> "If you want to initialize a structure with an invalid GPIO number, use
>> some negative number (perhaps "-EINVAL");"
>
>> then?
>
> 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.

--
With best wishes
Dmitry