regulator: map consumer regulator based on device tree
authorRajendra Nayak <rnayak@ti.com>
Fri, 18 Nov 2011 11:17:20 +0000 (16:47 +0530)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 23 Nov 2011 18:47:31 +0000 (18:47 +0000)
commit69511a452e6dc6b74fe4f3671a51b1b44b9c57e3
tree486fe8a536a367c0e83f55a97103a1a527a7e2bf
parent2c043bcbf287dc69848054d5c02c55c20f7a7bc5
regulator: map consumer regulator based on device tree

Device nodes in DT can associate themselves with one or more
regulators/supply by providing a list of phandles (to regulator nodes)
and corresponding supply names.

For Example:
devicenode: node@0x0 {
...
...
vmmc-supply = <&regulator1>;
vpll-supply = <&regulator2>;
};

The driver would then do a regulator_get(dev, "vmmc"); to get
regulator1 and do a regulator_get(dev, "vpll"); to get
regulator2.

of_get_regulator() extracts the regulator node for a given
device, based on the supply name.

Use it to look up the regulator for a given consumer from device tree, during
a regulator_get(). If not found fallback and lookup through
the regulator_map_list instead.

Also, since the regulator dt nodes can use the same binding to
associate with a parent regulator/supply, allow the drivers to
specify a supply_name, which can then be used to lookup dt
to find the parent phandle.

Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
drivers/regulator/core.c
include/linux/regulator/driver.h