diff options
author | Ahmad Fatoum <a.fatoum@pengutronix.de> | 2022-09-05 12:36:39 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2022-09-12 10:54:40 +0200 |
commit | 11d909019a1759b3a35e55e974020b948a406c76 (patch) | |
tree | 0539bac7a9bbf5049daa95370f9659afa803465e /test | |
parent | 4ff6430adde85818b61d9243e8a50ab9eb64e421 (diff) | |
download | barebox-11d909019a1759b3a35e55e974020b948a406c76.tar.gz |
of: implement of_rename_property()
It's often desirable to have the same barebox binary for multiple
variants. DT-level differences between the variants are often handled
by having extra device tree nodes that are disabled by default and
patched as appropriate by board code. It can be useful to have a finer
granularity for patching though, that covers only a select property, e.g.:
usbotg1 {
vbus-supply = <®_vbus_common>;
vendor,specialvariant-vbus-supply = <®_vbus_specialvariant>;
};
The new of_rename_property allows board code to easily activate the
alternative vbus supply on the specialvariant:
of_rename_property(np, "vendor,specialvariant-vbus-supply",
"vbus-supply");
Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
Link: https://lore.barebox.org/20220905103639.1750714-1-a.fatoum@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'test')
-rw-r--r-- | test/self/of_manipulation.c | 10 | ||||
-rw-r--r-- | test/self/of_manipulation.dts | 6 |
2 files changed, 14 insertions, 2 deletions
diff --git a/test/self/of_manipulation.c b/test/self/of_manipulation.c index 6eb6062e12..7e30a60ca6 100644 --- a/test/self/of_manipulation.c +++ b/test/self/of_manipulation.c @@ -57,6 +57,16 @@ static void test_of_basics(struct device_node *root) of_property_write_bool(node1, "property1", true); assert_equal(node1, node2); + + of_property_write_bool(node2, "property1", false); + of_property_write_u32(node2, "property1", 1); + of_property_write_u32(node2, "property2", 2); + + of_property_write_u32(node1, "property3", 1); + of_property_write_u32(node1, "property2", 2); + of_rename_property(node1, "property3", "property1"); + + assert_equal(node1, node2); } static void test_of_property_strings(struct device_node *root) diff --git a/test/self/of_manipulation.dts b/test/self/of_manipulation.dts index a69d944c1e..2cc6773fa9 100644 --- a/test/self/of_manipulation.dts +++ b/test/self/of_manipulation.dts @@ -4,12 +4,14 @@ / { node1 { - property1; + property1 = <1>; + property2 = <2>; node21 { }; }; node2 { - property1; + property1 = <1>; + property2 = <2>; node21 { }; }; |