[PATCH v2 09/12] regulator: register dependency parser for firmware nodes

From: Tomeu Vizoso
Date: Wed Jul 01 2015 - 05:45:07 EST


So others can find out what depends on regulators, as specified
in bindings/regulator/regulator.txt.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@xxxxxxxxxxxxx>
---

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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/