From: Geert Uytterhoeven <geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>
To: Tom Rini <trini-l0cyMroinI0@public.gmane.org>
Cc: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: gpio-generic DT bindings?
Date: Wed, 20 Nov 2013 18:20:44 +0100 [thread overview]
Message-ID: <CAMuHMdVriN6sOSOdyfU4rPQddqOo9E6QiArcfUXDooL2KBd4og@mail.gmail.com> (raw)
In-Reply-To: <20131120154409.GM420@bill-the-cat>
On Wed, Nov 20, 2013 at 4:44 PM, Tom Rini <trini-l0cyMroinI0@public.gmane.org> wrote:
> On Tue, Nov 19, 2013 at 03:38:20PM -0700, Stephen Warren wrote:
>> On 11/19/2013 03:17 PM, Geert Uytterhoeven wrote:
>> > On Tue, Nov 19, 2013 at 10:59 PM, Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org> wrote:
>> >> On 11/19/2013 02:45 PM, Geert Uytterhoeven wrote:
>> >>> This topic seems to come up from time to time.
>> >>> Unfortunately the last time it coincided with the move of the mailing list
>> >>> from ozlabs to vger, causing the mailing list archives not to have captured
>> >>> the full discussion.
>> >>>
>> >>> Is there anything definitive/usable out there?
>> >>
>> >> What do you mean by "gpio-generic DT bindings"? A generic binding for a
>> >> controller, or something else? I think it's best to have a specific
>> >> binding for each individual controller, so it's always possible to know
>> >> exactly which controller is present. Now, all the binding definitions
>> >> should all look the same or as similar as possible for consistency...
>> >
>> > I mean DT bindings and DT support for drivers/gpio/gpio-generic.c.
>>
>> We should have DT bindings for particular HW, not for a driver. After
>> all, DT describes HW, not a particular OS's driver.
>>
>> The path to adding DT support to gpio-generic.c is to define a binding
>> for the particular HW you're interested in (which would quite likely
>> only contain compatible, reg, and perhaps some other standard properties
>> like interrupts, clocks, power domains, etc.). There would be one
>> binding and compatible value for each different HW block you want to
>> support, although they could all share the same schema and definition.
>> Then update gpio-generic.c to bind to that (those) compatible value(s),
>> and have some kind of table that maps from compatible value to whatever
>> configuration structure gpio-generic.c uses internally.
>
> This I think is the rub that Geert is getting at. The driver is
> generic. You feed it a little info and it Just Works. Having to patch
> the generic driver N times for vendor,foo-gpio would be a step
> backwards. How do we have a binding here that lets us be as flexible as
> we are today?
Indeed. Is there really a need to name all simple GPIO drivers that provide
two register banks ("data" and "data direction") differently using a
"vendor,ipblock" tuple? What about something like "linux,gpio-generic"?
In particular, I want to use it for openrisc GPIO. Currently it uses its own
very simple driver
(http://git.openrisc.net/cgit.cgi/jonas/linux/tree/drivers/gpio/jbtrivial.c),
while there already exists a simple driver called gpio-generic
in mainline. But gpio-generic doesn't have DT support yet.
People tried adding DT support before:
- https://lkml.org/lkml/2013/2/26/70, which was shot down last year.
- http://www.spinics.net/lists/devicetree/msg00696.html, which also refers
to simple-gpio, but unfortunately I can't read the whole thread as most of
it happened during the ozlabs->vger transition of the mailing list.
Thanks!
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2013-11-20 17:20 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-19 21:45 gpio-generic DT bindings? Geert Uytterhoeven
[not found] ` <CAMuHMdU9F_EjA+ZF0mn4PW3HDJ9rkM_84SHiDKkWwWr7MLJKJA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-19 21:59 ` Stephen Warren
[not found] ` <528BDF57.8080400-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-19 22:17 ` Geert Uytterhoeven
[not found] ` <CAMuHMdVuC5nJizr9Q2JXQCC=FtJkEvLa5iftBoa6Zd7B3XVojA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-11-19 22:38 ` Stephen Warren
[not found] ` <528BE85C.60101-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-20 15:44 ` Tom Rini
2013-11-20 16:15 ` Stephen Warren
[not found] ` <528CE010.3090301-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-20 18:03 ` Tom Rini
2013-11-20 17:20 ` Geert Uytterhoeven [this message]
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=CAMuHMdVriN6sOSOdyfU4rPQddqOo9E6QiArcfUXDooL2KBd4og@mail.gmail.com \
--to=geert-td1emuhucqxl1znqvxdv9g@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org \
--cc=trini-l0cyMroinI0@public.gmane.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).