[PATCH] Implements new features for updating existing device tree nodes.
John Bonesio
bones at secretlab.ca
Sun Oct 17 00:45:47 EST 2010
On Sat, 2010-10-16 at 02:10 -0600, Grant Likely wrote:
> On Sat, Oct 16, 2010 at 05:47:44PM +1100, David Gibson wrote:
> > On Fri, Oct 15, 2010 at 08:21:17PM -0700, John Bonesio wrote:
> > > On Fri, 2010-10-15 at 20:35 -0600, Grant Likely wrote:
> > [snip]
> > > > > + | devicetree DT_REMOVENODE DT_REF ';'
> > > > > + {
> > > > > + struct node *target;
> > > > > +
> > > > > + target = get_node_by_label($1, $3);
> > > > > + if (target)
> > > > > + remove_nodes(target);
> > > > > + else
> > > > > + yyerror("label, '%s' does not exist in"
> > > > > + " node removal", $3);
> > > > > ;
> > > >
> > > > This handles the syntax at the top level, but doesn't deal with the
> > > > /*-node/ keywords when they are within the overlay tree.
> > > >
> > > > Also, I don't know if you'll be able to handle it in the same way when
> > > > it comes to handling the new tokens embedded within an overlay tree
> > > > because it isn't so easy to resolve the node to be removed. In order
> > > > to handle both cases in the same way, it might be better to set a
> > > > 'replace' flag in struct node that defers the actual remove of the
> > > > original node until merge_nodes() time.
> > >
> > > Ok, so maybe I misunderstood. I thought we had decided that node
> > > modifications would only happen at the top level, but now that I'm
> > > looking back through your examples earlier today, and I see this isn't
> > > true.
> >
> > Um.. that part of the discussion got confusing. I think only allowing
> > the operations (and I still don't think the set implemented here are
> > quite right, though they're close) at the top-level is a better idea.
> >
> > Grant, is there a reason you think we need to have replacement as an
> > option within each tree, rather than a "per-overlay-sheet" option.
>
> Yes, because I need the ability to remove/replace a child of a
> labelled node. Not every node that needs to be manipulated will
> necessarily have a label.
>
> For example; I could have a labelled spi bus node with child nodes for
> each of the spi devices. I want to be able to remove/replace the
> child nodes without having to label them first.
>
> g.
>
Why not just add the label to the node you need first?
- John
More information about the devicetree-discuss
mailing list