devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robherring2@gmail.com>
To: Stephen Warren <swarren@wwwdotorg.org>
Cc: David Gibson <david@gibson.dropbear.id.au>,
	Michal Marek <mmarek@suse.cz>,
	Stephen Warren <swarren@nvidia.com>,
	devicetree-discuss@lists.ozlabs.org,
	linux-kernel@vger.kernel.org,
	Scott Wood <scottwood@freescale.com>
Subject: Re: dtc: import latest upstream dtc
Date: Wed, 10 Oct 2012 12:18:43 -0500	[thread overview]
Message-ID: <5075ADF3.4040407@gmail.com> (raw)
In-Reply-To: <5075A00B.2040509@wwwdotorg.org>

On 10/10/2012 11:19 AM, Stephen Warren wrote:
> On 10/10/2012 09:33 AM, Rob Herring wrote:
>> On 10/10/2012 10:16 AM, Stephen Warren wrote:
>>> On 10/10/2012 01:24 AM, David Gibson wrote:
>>>> On Tue, Oct 09, 2012 at 10:43:50PM -0600, Warner Losh wrote:
>>>>>
>>>>> On Oct 9, 2012, at 6:04 PM, Scott Wood wrote:
>>>>>
>>>>>> On 10/09/2012 06:20:53 PM, Mitch Bradley wrote:
>>>>>>> On 10/9/2012 11:16 AM, Stephen Warren wrote:
>>>>>>>> On 10/01/2012 12:39 PM, Jon Loeliger wrote:
>>>>>>>>>>
>>>>>>>>>> What more do you think needs discussion re: dtc+cpp?
>>>>>>>>>
>>>>>>>>> How not to abuse the ever-loving shit out of it? :-)
>>>>>>>>
>>>>>>>> Perhaps we can just handle this through the regular patch review
>>>>>>>> process; I think it may be difficult to define and agree upon exactly
>>>>>>>> what "abuse" means ahead of time, but it's probably going to be easy
>>>>>>>> enough to recognize it when one sees it?
>>>>>>> One of the ways it could get out of hand would be via "include
>>>>>>> dependency hell".  People will be tempted to reuse existing .h files
>>>>>>> containing pin definitions, which, if history is a guide, will end up
>>>>>>> depending on all sorts of other .h files.
>>>>>>> Another problem I often face with symbolic names is the difficulty of
>>>>>>> figuring out what the numerical values really are (for debugging),
>>>>>>> especially when .h files are in different subtrees from the files that
>>>>>>> use the definitions, and when they use multiple macro levels and fancy
>>>>>>> features like concatenation.  Sometimes I think it's clearer just to
>>>>>>> write the number and use a comment to say what it is.
>>>>>>
>>>>>> Both comments apply just as well to ordinary C code, and I don't think anyone would seriously suggest just using comments instead for C code.
>>>>>
>>>>> .h files include both structs and defines, which are fine for
>>>>> ordinary C code, but problematic in this context.
>>>>
>>>> Right, cpp should be invoked with similar options to the way it's done
>>>> for asm files which have the same problem.  I'm not sure if the
>>>> current patch does so.
>>>
>>> That's probably a reasonable idea, although I imagined that people would
>>> actually split out the portions of any header file they wanted to use
>>> with dtc, so that any headers included by *.dts would only include
>>> #defines. Those headers could be used by both dtc and other .h files (or
>>> .c files).
>>
>> Used by what other files? kernel files? We ultimately want to split out
>> dts files from the kernel, so whatever we add needs to be self
>> contained. I don't see this as a huge issue though because the whole
>> point of the DT data is to move that information out of the kernel. If
>> it is needed in both places, then something is wrong.
> 
> One example is the IDs of the GPIOs, e.g.:
> 
> #define TEGRA_PIN_VI_GP6_PA0            _GPIO(0)
> #define TEGRA_PIN_UART3_CTS_N_PA1       _GPIO(1)
> #define TEGRA_PIN_DAP2_FS_PA2           _GPIO(2)
> #define TEGRA_PIN_DAP2_SCLK_PA3         _GPIO(3)
> 
> Those defines are useful to both the .dts files (so named constants can
> be used) and the pinctrl driver. By using the same header file, we
> guarantee that the .dts files and pinctrl driver use the exact same
> naming for the pins; the pin naming/numbering being defined by the DT
> binding more than anything else.

If pinctrl needs to get a matching name, then it should get it from the
dtb. We should not have 2 sources of data. That is just broken.

> 
> It'd be similarly useful to share GPIO or interrupt flag definitions,
> etc. etc.
> 
> We could do something like we do for dtc today, where there's an
> external repository for *.dts (and required *.h), yet those *.h are
> duplicated into the kernel tree as needed by drivers.

So as long as we only need to sync up about once a year that's fine
because we have yet to prove that doing it frequently for dtc will be
easy and painless.

I'd like fewer things to copy around, not more. If you have some
self-contained platform defines to copy, then it is your problem.

Rob

  reply	other threads:[~2012-10-10 17:18 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-28 21:25 [PATCH] dtc: import latest upstream dtc Stephen Warren
2012-09-29 21:06 ` Jon Loeliger
2012-10-01 16:09 ` Rob Herring
     [not found]   ` <5069C042.40209-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-10-01 16:13     ` Stephen Warren
     [not found]       ` <5069C11C.6040505-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-01 17:56         ` Rob Herring
2012-10-01 18:33           ` Stephen Warren
     [not found]             ` <5069E1F0.5070902-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-01 18:39               ` Jon Loeliger
     [not found]                 ` <E1TIktZ-0000U4-Qh-CYoMK+44s/E@public.gmane.org>
2012-10-09 21:16                   ` Stephen Warren
     [not found]                     ` <50749441.8030307-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-09 23:20                       ` Mitch Bradley
2012-10-10  0:04                         ` Scott Wood
2012-10-10  4:43                           ` Warner Losh
2012-10-10  7:24                             ` David Gibson
     [not found]                               ` <20121010072401.GA28467-W9XWwYn+TF0XU02nzanrWNbf9cGiqdzd@public.gmane.org>
2012-10-10 14:41                                 ` Warner Losh
2012-10-10 23:06                                   ` David Gibson
2012-10-10 15:16                               ` Stephen Warren
2012-10-10 15:33                                 ` Rob Herring
2012-10-10 16:19                                   ` Stephen Warren
2012-10-10 17:18                                     ` Rob Herring [this message]
2012-10-10 18:42                                       ` Stephen Warren
     [not found]                                   ` <5075954B.8030008-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-10-10 23:16                                     ` David Gibson
2012-10-11  1:42                                       ` Mitch Bradley
     [not found]                                         ` <50762409.5060105-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-10-11  5:11                                           ` David Gibson
     [not found]                                 ` <50759152.9050407-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-10 23:09                                   ` David Gibson
2012-10-10 15:15                           ` Stephen Warren
2012-10-10 16:09                             ` Scott Wood
2012-10-10 16:22                               ` Stephen Warren
2012-10-10 23:18                                 ` David Gibson
2012-10-12 17:24                                   ` Stephen Warren
     [not found]                                     ` <5078525B.9030008-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-13  6:24                                       ` David Gibson
     [not found]                                         ` <20121013062453.GH4640-W9XWwYn+TF0XU02nzanrWNbf9cGiqdzd@public.gmane.org>
2012-10-13 13:42                                           ` Segher Boessenkool
     [not found]                                             ` <3C5DD611-6F36-4D13-9A88-377A8E30AAA5-XVmvHMARGAS8U2dJNN8I7kB+6BGkLq7r@public.gmane.org>
2012-10-14  0:16                                               ` David Gibson
2012-10-10 17:09                     ` Rob Herring
     [not found]                       ` <5075ABB8.103-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2012-10-10 18:23                         ` Mitch Bradley
     [not found]                           ` <5075BD21.2070106-D5eQfiDGL7eakBO8gow8eQ@public.gmane.org>
2012-10-10 18:45                             ` Stephen Warren
     [not found]                               ` <5075C254.4040304-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-10 18:56                                 ` Mitch Bradley
2012-10-11  0:14                                   ` David Gibson
2012-10-10 23:54                               ` David Gibson
2012-10-10 18:40                       ` Stephen Warren
     [not found]                         ` <5075C10C.1030205-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-10-10 18:52                           ` Mitch Bradley
2012-10-01 18:02     ` Jon Loeliger

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=5075ADF3.4040407@gmail.com \
    --to=robherring2@gmail.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=devicetree-discuss@lists.ozlabs.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mmarek@suse.cz \
    --cc=scottwood@freescale.com \
    --cc=swarren@nvidia.com \
    --cc=swarren@wwwdotorg.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).