Messages in this thread | | | Date | Mon, 1 Sep 2014 16:35:27 +0400 | From | Dmitry Eremin-Solenikov <> | Subject | Re: [PATCH] regulator: core: GPIO #0 is a valid GPIO |
| |
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
| |