Thread (1 message) 1 message, 1 author, 2015-01-28

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

From: Devshatwar, Nikhil <hidden>
Date: 2015-01-28 06:38:11
Also in: linux-omap

-----Original Message-----
From: Rob Herring [mailto:robherring2@gmail.com]
Sent: Wednesday, January 28, 2015 5:05 AM
To: Devshatwar, Nikhil
Cc: devicetree-compiler@vger.kernel.org; devicetree@vger.kernel.org;
devicetree-spec@vger.kernel.org; linux-omap
Subject: Re: [PATCH] dtc: parser: Add label while overriding nodes

On Thu, Jan 8, 2015 at 8:12 AM, Nikhil Devshatwar [off-list ref]
wrote:
quoted
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.
quoted
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.
quoted
e.g. On dra7-evm.dts, i2c2 is exported for expansion connector
whereas
quoted
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
s/wheather/whether/
quoted
adpter board are present on i2c or i2c5.
s/adpter/adapter/
quoted
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.
quoted
This way, generic adapter board file would override the i2cexp. And
depending on which base board you use the adpter board, all the
devices
s/adpter/adapter/
quoted
are automatically added for correct device nodes.

Change-Id: I3ad7247a79baed7268a91fc691360aece73d6d1b
Get rid of this Gerrit nonsense.
quoted
Signed-off-by: Nikhil Devshatwar <redacted>
---
 scripts/dtc/dtc-parser.y |   12 ++++++++++++
 1 file changed, 12 insertions(+)
You need to send this against upstream dtc, not the copy in the kernel.

Seems like a reasonable change, but I'm not too familar with dtc
source.
OK, no problem

Thanks,
Nikhil D
quoted
diff --git a/scripts/dtc/dtc-parser.y b/scripts/dtc/dtc-parser.y
index
quoted
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);
quoted
+
+                       add_label(&target->labels, $2);
+                       if (target)
+                               merge_nodes(target, $4);
+                       else
+                               print_error("label or path, '%s', not
found", $2);
quoted
+                       $$ = $1;
+               }
        | devicetree DT_REF nodedef
                {
                        struct node *target = get_node_by_ref($1,
$2);
quoted
--
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe devicetree"
in the body of a message to majordomo@vger.kernel.org More majordomo
info at  http://vger.kernel.org/majordomo-info.html
��칻
�&�~�&���+-��ݶ��w��˛���m�^�'
�������{ay�
ʇڙ�,j��f���h�����/oSc��ڳ9�u�����&jw��(�階�ݢj"���m�����z�ޖ���f���h���~�m�
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help