mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-30 11:01:33 +00:00
dm: power: Add a function to set up all regulators
The device tree provides information about which regulators should be on at boot, or always on. Use this to set them up automatically. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Przemyslaw Marczak <p.marczak@samsung.com> Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
This commit is contained in:
parent
3b55d30f6f
commit
083fc83a4e
2 changed files with 33 additions and 0 deletions
|
@ -306,6 +306,28 @@ static int regulator_pre_probe(struct udevice *dev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int regulators_enable_boot_on(bool verbose)
|
||||||
|
{
|
||||||
|
struct udevice *dev;
|
||||||
|
struct uclass *uc;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = uclass_get(UCLASS_REGULATOR, &uc);
|
||||||
|
if (ret)
|
||||||
|
return ret;
|
||||||
|
for (uclass_first_device(UCLASS_REGULATOR, &dev);
|
||||||
|
dev && !ret;
|
||||||
|
uclass_next_device(&dev)) {
|
||||||
|
ret = regulator_autoset(dev);
|
||||||
|
if (ret == -EMEDIUMTYPE)
|
||||||
|
continue;
|
||||||
|
if (verbose)
|
||||||
|
regulator_show(dev, ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
UCLASS_DRIVER(regulator) = {
|
UCLASS_DRIVER(regulator) = {
|
||||||
.id = UCLASS_REGULATOR,
|
.id = UCLASS_REGULATOR,
|
||||||
.name = "regulator",
|
.name = "regulator",
|
||||||
|
|
|
@ -315,6 +315,17 @@ int regulator_get_mode(struct udevice *dev);
|
||||||
*/
|
*/
|
||||||
int regulator_set_mode(struct udevice *dev, int mode_id);
|
int regulator_set_mode(struct udevice *dev, int mode_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* regulators_enable_boot_on() - enable regulators needed for boot
|
||||||
|
*
|
||||||
|
* This enables all regulators which are marked to be on at boot time. This
|
||||||
|
* only works for regulators which don't have a range for voltage/current,
|
||||||
|
* since in that case it is not possible to know which value to use.
|
||||||
|
*
|
||||||
|
* This effectively calls regulator_autoset() for every regulator.
|
||||||
|
*/
|
||||||
|
int regulators_enable_boot_on(bool verbose);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* regulator_autoset: setup the voltage/current on a regulator
|
* regulator_autoset: setup the voltage/current on a regulator
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue