From 5ccc73145fb98afb888cd616d0a39fa75b81288a Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Wed, 30 May 2018 15:05:28 +0200 Subject: 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 Reviewed-on: https://review.coreboot.org/26693 Tested-by: build bot (Jenkins) Reviewed-by: Julius Werner --- src/lib/device_tree.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'src/lib/device_tree.c') diff --git a/src/lib/device_tree.c b/src/lib/device_tree.c index de14c15536..21916598c5 100644 --- a/src/lib/device_tree.c +++ b/src/lib/device_tree.c @@ -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. * -- cgit v1.2.3