[PATCH v2 09/12] regulator: register dependency parser for firmware nodes
Tomeu Vizoso
tomeu.vizoso at collabora.com
Wed Jul 1 02:41:04 PDT 2015
So others can find out what depends on regulators, as specified
in bindings/regulator/regulator.txt.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso at collabora.com>
---
Changes in v2: None
drivers/regulator/core.c | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index c9f7201..535cad0 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -4112,6 +4112,31 @@ static const struct file_operations regulator_summary_fops = {
#endif
};
+static void regulator_get_dependencies(struct fwnode_handle *fwnode,
+ struct list_head *deps)
+{
+ struct device_node *np;
+ struct property *pp;
+ struct device_node *dep;
+
+ np = to_of_node(fwnode);
+ if (!np)
+ return;
+
+ for_each_property_of_node(np, pp) {
+ if (!strends(pp->name, "-supply"))
+ continue;
+
+ dep = of_parse_phandle(np, pp->name, 0);
+ if (!dep)
+ continue;
+
+ fwnode_add_dependency(&dep->fwnode, deps);
+
+ of_node_put(dep);
+ }
+}
+
static int __init regulator_init(void)
{
int ret;
@@ -4130,6 +4155,8 @@ static int __init regulator_init(void)
regulator_dummy_init();
+ fwnode_add_dependency_parser(regulator_get_dependencies);
+
return ret;
}
--
2.4.1
More information about the dri-devel
mailing list