diff options
author | Teresa Gámez <t.gamez@phytec.de> | 2014-09-30 13:15:29 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-10-01 08:13:02 +0200 |
commit | e5707ec702ffbcf9abf049ca2bb3ed3ceefd77e5 (patch) | |
tree | 3d99abe2a6c9a8ecd1fef8e2a70e7e5bcf737d1f /drivers | |
parent | d1d7876499405493688a7f79a49651dbbe099c52 (diff) | |
download | barebox-e5707ec702ffbcf9abf049ca2bb3ed3ceefd77e5.tar.gz barebox-e5707ec702ffbcf9abf049ca2bb3ed3ceefd77e5.tar.xz |
of: Added of_set_property_to_child_phandle
Set a property to a phandle of a child node. This may be used
for selections like display-timings.
Signed-off-by: Teresa Gámez <t.gamez@phytec.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/of/base.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/of/base.c b/drivers/of/base.c index f363cc1224..e9f0883f47 100644 --- a/drivers/of/base.c +++ b/drivers/of/base.c @@ -356,6 +356,27 @@ phandle of_node_create_phandle(struct device_node *node) } EXPORT_SYMBOL(of_node_create_phandle); +int of_set_property_to_child_phandle(struct device_node *node, char *prop_name) +{ + int ret; + phandle p; + + /* Check if property exist */ + if (!of_get_property(of_get_parent(node), prop_name, NULL)) + return -EINVAL; + + /* Create or get existing phandle of child node */ + p = of_node_create_phandle(node); + p = cpu_to_be32(p); + + node = of_get_parent(node); + + ret = of_set_property(node, prop_name, &p, sizeof(p), 0); + + return ret; +} +EXPORT_SYMBOL(of_set_property_to_child_phandle); + /* * Find a property with a given name for a given node * and return the value. |