[PATCH v8 03/12] gpio: find gpio base by ascend order

Haojian Zhuang haojian.zhuang at linaro.org
Tue Feb 5 20:59:29 EST 2013


On 6 February 2013 01:14, Linus Walleij <linus.walleij at linaro.org> wrote:
> On Sat, Feb 2, 2013 at 6:25 PM, Haojian Zhuang
> <haojian.zhuang at linaro.org> wrote:
>
>> gpiochip_find_base() always tries to find valid gpio with descend order.
>> It's inconvient if gpio information is passing from DTS. Now try to find
>> valid gpio with ascend order.
>>
>> Signed-off-by: Haojian Zhuang <haojian.zhuang at linaro.org>
>
> This is more scary stuff.
>
> As you know GPIO numbers are exposed to userspace.
>
> Systems with this change risk having their dynamically added
> GPIO controller enumerated in a different fashion. And
> userspace clients may be relying on these numbers.
>
> And we do not break userspace.
>
> I know this is not elegant but I'm afraid the descending search
> needs to be kept for compatibibility reasons.
>
> BTW: please CC Grant likely on all patches.
>
> Yours,
> Linus Walleij

But descending search isn't good for reading.

I try to allocate all gpio numbers in Hi3620 from gpiochip_find_base().
If it's descending search, GPIO0~7 is mapped to gpio248~255;
GPIO8~GPIO15 is mapped to gpio240~gpio247. It's not easy to read,
and it breaks the knowledge of gpio number on schematic & datasheet.

Unless we don't use allocating gpio numbers dynamically and add
a common property to parse gpio base of each chip in DTS file.
It's also OK to me add a common property.

Regards
Haojian



More information about the linux-arm-kernel mailing list