RE: [PATCH] dtc: parser: Add label while overriding nodes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



Hi all,

Does this patch make sense?

> -----Original Message-----
> From: Devshatwar, Nikhil
> Sent: Thursday, January 08, 2015 7:43 PM
> To: devicetree-compiler@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx;
> devicetree-spec@xxxxxxxxxxxxxxx; linux-omap@xxxxxxxxxxxxxxx
> 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 <nikhil.nd@xxxxxx>
> ---
>  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-spec" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Photos]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]

  Powered by Linux