Hi all,

Does this patch make sense?

> -----Original Message-----
> From: Devshatwar, Nikhil
> Sent: Thursday, January 08, 2015 7:43 PM
> To: [email protected]; [email protected];
> [email protected]; [email protected]
> Cc: Devshatwar, Nikhil
> Subject: [PATCH] dtc: parser: Add label while overriding nodes
> 
> Current device tree compiler allows to define multiple labels when
> defining the device node the first time. Typically device nodes are
> defined in DTSI files. Now these nodes can be overriden for updating
> some of the properties. Typically, device nodes are overridden in DTS
> files.
> 
> When working with adapter boards, most of the time adapter board can
> fit to multiple base boards. But depending on which base board it is
> connected to, the devices on the adapter board would be children of
> different devices.
> 
> e.g. On dra7-evm.dts, i2c2 is exported for expansion connector whereas
> on dra72-evm.dts, i2c5 is exported for expansion connector.
> This causes a problem when writing a generic device tree file for the
> adapter board. Because, you cannot know wheather all the devices on
> adpter board are present on i2c or i2c5.
> 
> The problem can be solved by adding a common label (e.g. i2cexp) in
> both of the DTS files when overriding the device nodes for i2c2 or
> i2c5.
> This way, generic adapter board file would override the i2cexp. And
> depending on which base board you use the adpter board, all the devices
> are automatically added for correct device nodes.
> 
> Change-Id: I3ad7247a79baed7268a91fc691360aece73d6d1b
> Signed-off-by: Nikhil Devshatwar <[email protected]>
> ---
>  scripts/dtc/dtc-parser.y |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> diff --git a/scripts/dtc/dtc-parser.y b/scripts/dtc/dtc-parser.y index
> f412460..d9ed3b7 100644
> --- a/scripts/dtc/dtc-parser.y
> +++ b/scripts/dtc/dtc-parser.y
> @@ -145,6 +145,18 @@ devicetree:
>               {
>                       $$ = merge_nodes($1, $3);
>               }
> +
> +     | devicetree DT_LABEL DT_REF nodedef
> +             {
> +                     struct node *target = get_node_by_ref($1, $3);
> +
> +                     add_label(&target->labels, $2);
> +                     if (target)
> +                             merge_nodes(target, $4);
> +                     else
> +                             print_error("label or path, '%s', not found",
> $2);
> +                     $$ = $1;
> +             }
>       | devicetree DT_REF nodedef
>               {
>                       struct node *target = get_node_by_ref($1, $2);
> --
> 1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to