devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Tom Rini <trini-l0cyMroinI0@public.gmane.org>
Cc: Geert Uytterhoeven
	<geert-Td1EMuHUCqxL1ZNQvxDV9g@public.gmane.org>,
	"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>
Subject: Re: gpio-generic DT bindings?
Date: Wed, 20 Nov 2013 09:15:12 -0700	[thread overview]
Message-ID: <528CE010.3090301@wwwdotorg.org> (raw)
In-Reply-To: <20131120154409.GM420@bill-the-cat>

On 11/20/2013 08:44 AM, Tom Rini 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.

That's an OS-specific implementation detail that doesn't affect DT.

> You feed it a little info and it Just Works.

But, this information historically is a platform data structure in a
board file, right? That means that historically for every new board
using the driver, you needed to edit kernel code (the board file) to
provide that platform data. If with DT you still need to edit kernel
code (the driver) to add support for the HW. So, the situation with DT
is no worse that the situation with board files.

> Having to patch
> the generic driver N times for vendor,foo-gpio would be a step
> backwards.

In fact, with DT you now edit the driver once per SoC/chip that embeds a
particular GPIO controller IP block, rather than once per board that
uses the IP block. That's likely a lower number of code edits, so you
have gained something already.

> How do we have a binding here that lets us be as flexible as
> we are today?

I think we already have that - something better in fact.
--
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

  reply	other threads:[~2013-11-20 16:15 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 [this message]
     [not found]                   ` <528CE010.3090301-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-11-20 18:03                     ` Tom Rini
2013-11-20 17:20                 ` Geert Uytterhoeven

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=528CE010.3090301@wwwdotorg.org \
    --to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=geert-Td1EMuHUCqxL1ZNQvxDV9g@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).