From: acourbot@nvidia.com (Alex Courbot)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v8 03/12] gpio: find gpio base by ascend order
Date: Wed, 6 Feb 2013 13:33:21 +0900 [thread overview]
Message-ID: <5111DD11.5@nvidia.com> (raw)
In-Reply-To: <CAD6h2NRVem_yeizXzt1r2L4_WXAdqw9p_P3vMysskOYdJUkDzQ@mail.gmail.com>
On 02/06/2013 10:59 AM, Haojian Zhuang wrote:
> On 6 February 2013 01:14, Linus Walleij <linus.walleij@linaro.org> wrote:
>> On Sat, Feb 2, 2013 at 6:25 PM, Haojian Zhuang
>> <haojian.zhuang@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.
GPIOs in the device tree are typically referenced by a phandle which
include the controller and relative HW number. Are there cases where we
must use absolute GPIO numbers in the DT?
>>>
>>> Signed-off-by: Haojian Zhuang <haojian.zhuang@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.
There is also one more problem with this reordering: if a GPIO chip with
a base GPIO set gets probed *after* a bunch of chips without a proper
base, its range in the number space is likely to have been stolen by one
of the "dynamic" chips.
Ideally all chips would come with a base GPIO, but we cannot rule out
hotplugable interfaces. Even more ideally the integer numberspace would
go away altogether with the new gpiod interface and the sysfs interface
would be replaced with one where exported GPIOs would be under their
chip node, and referenced by their hw number. But that would break
userspace even more. Or maybe there could be a config option to choose
between the "legacy" integer-space user interface and this new scheme.
Eventually, the number space could be deprecated.
Alex.
next prev parent reply other threads:[~2013-02-06 4:33 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-02 17:25 [PATCH v8 00/12] support pinconf in pinctrl single Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 01/12] gpio: add gpio offset in gpio range cells property Haojian Zhuang
2013-02-05 0:23 ` Tony Lindgren
2013-02-05 1:06 ` Haojian Zhuang
2013-02-10 19:03 ` Linus Walleij
2013-02-11 4:25 ` Viresh Kumar
2013-04-29 16:00 ` [v8,01/12] " James Hogan
2013-04-29 16:49 ` Haojian Zhuang
2013-04-29 20:16 ` James Hogan
2013-02-02 17:25 ` [PATCH v8 02/12] gpio: fix wrong checking condition for gpio range Haojian Zhuang
2013-02-05 17:02 ` Linus Walleij
2013-02-02 17:25 ` [PATCH v8 03/12] gpio: find gpio base by ascend order Haojian Zhuang
2013-02-05 17:14 ` Linus Walleij
2013-02-06 1:59 ` Haojian Zhuang
2013-02-06 4:33 ` Alex Courbot [this message]
2013-02-06 5:20 ` Haojian Zhuang
2013-02-06 8:44 ` Linus Walleij
2013-02-06 9:15 ` Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 04/12] gpio: pl061: allocate irq dynamically Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 05/12] pinctrl: verify whether gpio chip overlapps range Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 06/12] gpio: pl061: bind pinctrl by gpio request Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 07/12] pinctrl: single: create new gpio function range Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 08/12] pinctrl: generic: dump pin configuration Haojian Zhuang
2013-02-05 0:35 ` Tony Lindgren
2013-02-05 0:57 ` Tony Lindgren
2013-02-05 1:09 ` Haojian Zhuang
2013-02-05 1:08 ` Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 09/12] pinctrl: single: set function mask as optional Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 10/12] pinctrl: single: support generic pinconf Haojian Zhuang
2013-02-05 0:46 ` Tony Lindgren
2013-02-05 1:07 ` Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 11/12] ARM: hs: enable hi4511 with device tree Haojian Zhuang
2013-02-02 17:25 ` [PATCH v8 12/12] document: devicetree: bind pinconf with pin single Haojian Zhuang
2013-02-05 4:07 ` Tony Lindgren
2013-02-05 8:06 ` Haojian Zhuang
2013-02-05 13:51 ` Haojian Zhuang
2013-02-05 23:30 ` Tony Lindgren
2013-02-06 15:07 ` Haojian Zhuang
2013-02-06 17:16 ` Tony Lindgren
2013-02-05 23:21 ` Tony Lindgren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5111DD11.5@nvidia.com \
--to=acourbot@nvidia.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).