[RFC PATCH] dtc: Add support for named constants

David Gibson david at gibson.dropbear.id.au
Tue Aug 30 14:23:16 EST 2011


On Tue, Aug 23, 2011 at 04:43:20PM -0600, Stephen Warren wrote:
> You may define constants as follows:
> 
> /define/ $TWO 2;
> /define/ $FOUR 4;
> /define/ $OTHER $FOUR;
> 
> And properties may use these values as follows:
> 
> foo = <1 $TWO 3 $FOUR 5>;
> 
> Signed-off-by: Stephen Warren <swarren at nvidia.com>
> ---
> Note 1: This is against dtc in the Linux kernel. Should this patch be
> against upstream dtc, then back-ported to the kernel?

Yes, it should.  It's not even really a backport to the kernel, we
can just drop a new upstream version in there.

> Note 2: I'd prefer the syntax of /define/ to be:
> 
> /define/ TWO 2;

Oh goodness, yes.  The dollar signs are revolting.

> but I assume that'd cause the lexing for DT_DEFINEREF to conflict with
> that for DT_LABEL?

Nope, the final colon should distinguish DT_LABEL.  In dts-v1 C-like
identifiers should be lexically distinct in most contexts.  This is
not by accident.  They could be confused with node or property names,
but that shouldn't cause trouble.

> Note 3: The define syntax only handles integers. Should it be string-
> based instead?
> 
> Note 4: I'm not sure what to do about re-generating the lex/yacc results;
> my local tools aren't the versions used previously, and so introduce some
> changes not related to mine.

This problem will go away when you work against upstream dtc; it has
bison flex as a build dependency.  We only worry about pre-generating
the lex and yacc output when we import into the kernel.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson


More information about the devicetree-discuss mailing list