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

From: Dmitry Eremin-Solenikov
Date: Mon Sep 01 2014 - 08:35:37 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/