[PATCH v2] dtc: Add support for named integer constants

Simon Glass sjg at google.com
Thu Sep 8 23:18:21 EST 2011


Hi Stephen,

On Thu, Sep 8, 2011 at 6:09 AM, Simon Glass <sjg at chromium.org> wrote:
> Hi Stephen,
>
> On Fri, Sep 2, 2011 at 11:34 AM, Stephen Warren <swarren at nvidia.com> wrote:
>> Stephen Warren wrote at Tuesday, August 30, 2011 3:30 PM:
>>> 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>
>>
>> David, Jon,
>>
>> Does this seem reasonable?
>>
>> I think the syntax is simple enough it wouldn't interfere with any more
>> advanced expression/function/... support in the future, and it could be
>> easily extended to allow e.g.:
>>
>> /define/ FOO "BAR";
>> /define/ BAX [0af8dacb0];
>> ...
>
> This seems very reasonable to me, and very useful. From the syntax it
> looks like lower case symbols are allowed also, which is fine with me.
>
> I hope that this can go into dtc as we would definitely use it.
>
> Regards,
> Simon
>
>>
>> And even arbitrary expressions on the RHS as/when/if support is added
>> for those more generally:
>>
>> /define/ A (B | (C << 2));

[in a separate email since I don't want to pollute my comments on
Stephen's nice patch with separate ravings]

Thinking of bitfields, we already have a problem with the way GPIOs
are specified. Typically we do something like:

something = <&gpio 46 5>

and define the third parameter to be three bits (direction, initial
value, polarity). It would be nice to be able to do something like:

something = <&gpio 46 INPUT,ACTIVE_LOW>
something-else = <&gpio 46 OUTPUT,HIGH>

instead. That would avoid having to explicitly have expressions
containing | or define all combinations like this:

/define/ INPUT 0
/define/ OUTPUT_LOW 2
/define/ OUTPUT_HIGH 3
/define/ INPUT_INVERT 4
/define/ OUTPUT_LOW_INVERT 6
/define/ OUTPUT_HIGH_INVERT 7

which seems more confusing to me. Some hardware has options for
pull-ups also, which I haven't yet addressed in code.

So how about an easy way to combine bit masks into a single integer?

Regards,
Simon

>>
>> --
>> nvpublic
>>
>> _______________________________________________
>> devicetree-discuss mailing list
>> devicetree-discuss at lists.ozlabs.org
>> https://lists.ozlabs.org/listinfo/devicetree-discuss
>>
>


More information about the devicetree-discuss mailing list