devicetree: Add method to delete property by name
Will be used on Cavium SoC to delete devicetree entries that aren't available with the board/configuration. Change-Id: I7c58a2411206bca62d0e96fa627530e937383ac9 Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/26693 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
parent
eb5d76a510
commit
5ccc73145f
|
@ -151,6 +151,8 @@ struct device_tree_node *dt_find_prop_value(struct device_tree_node *parent, con
|
|||
uint32_t dt_get_phandle(struct device_tree_node *node);
|
||||
// Write src into *dest as a 'length'-byte big-endian integer.
|
||||
void dt_write_int(u8 *dest, u64 src, size_t length);
|
||||
// Delete a property
|
||||
void dt_delete_prop(struct device_tree_node *node, const char *name);
|
||||
// Add different kinds of properties to a node, or update existing ones.
|
||||
void dt_add_bin_prop(struct device_tree_node *node, const char *name, void *data,
|
||||
size_t size);
|
||||
|
|
|
@ -762,6 +762,24 @@ void dt_write_int(u8 *dest, u64 src, size_t length)
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Delete a property by name in a given node if it exists.
|
||||
*
|
||||
* @param node The device tree node to operate on.
|
||||
* @param name The name of the property to delete.
|
||||
*/
|
||||
void dt_delete_prop(struct device_tree_node *node, const char *name)
|
||||
{
|
||||
struct device_tree_property *prop;
|
||||
|
||||
list_for_each(prop, node->properties, list_node) {
|
||||
if (!strcmp(prop->prop.name, name)) {
|
||||
list_remove(&prop->list_node);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Add an arbitrary property to a node, or update it if it already exists.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue