[U-Boot] [PATCH V3 06/14] dm: regulator: add function device_get_supply_regulator()

Simon Glass
2015-11-05T18:25:00Z

Hi Przemyslaw,

On 27 October 2015 at 06:07, Przemyslaw Marczak <p.marczak@samsung.com> wrote:
>
> Some devices are supplied by configurable regulator's output.
> But there was no function for getting it. This commit adds
> function, that allows for getting the supply device by it's phandle.
>
> The returned regulator device can be used with regulator uclass's API.
>
> Signed-off-by: Przemyslaw Marczak <p.marczak@samsung.com>
> Cc: Simon Glass <sjg@chromium.org>
> ---
> Changes V3:
> - new commit
> ---
> drivers/power/regulator/regulator-uclass.c | 7 +++++++
> include/power/regulator.h | 16 ++++++++++++++++
> 2 files changed, 23 insertions(+)
>
> diff --git a/drivers/power/regulator/regulator-uclass.c b/drivers/power/regulator/regulator-uclass.c
> index a5170df..4241a4c 100644
> --- a/drivers/power/regulator/regulator-uclass.c
> +++ b/drivers/power/regulator/regulator-uclass.c
> @@ -138,6 +138,13 @@ int regulator_get_by_devname(const char *devname, struct udevice **devp)
> return uclass_get_device_by_name(UCLASS_REGULATOR, devname, devp);
> }
>
> +int device_get_supply_regulator(struct udevice *dev, const char *supply_name,
> + struct udevice **devp)

Can we call this regulator_get_supply()? The 'device_' prefix is used
by device.h.

> +{
> + return uclass_get_device_by_phandle(UCLASS_REGULATOR, dev,
> + supply_name, devp);
> +}
> +
> int regulator_autoset(struct udevice *dev)
> {
> struct dm_regulator_uclass_platdata *uc_pdata;
> diff --git a/include/power/regulator.h b/include/power/regulator.h
> index 1a51c3f..63c0814 100644
> --- a/include/power/regulator.h
> +++ b/include/power/regulator.h
> @@ -419,4 +419,20 @@ int regulator_get_by_devname(const char *devname, struct udevice **devp);
> */
> int regulator_get_by_platname(const char *platname, struct udevice **devp);
>
> +/**
> + * device_get_supply_regulator: returns the pointer to the supply regulator.
> + * Search by phandle, found in device's node.
> + *
> + * Note: Please pay attention to proper order of device bind sequence.
> + * The regulator device searched by the phandle, must be binded before
> + * this function call.
> + *
> + * @dev - device with supply phandle
> + * @supply_name - phandle name of regulator
> + * @devp - returned pointer to the supply device
> + * @return 0 on success or negative value of errno.
> + */
> +int device_get_supply_regulator(struct udevice *dev, const char *supply_name,
> + struct udevice **devp);
> +
> #endif /* _INCLUDE_REGULATOR_H_ */
> --
> 1.9.1
>

Regards,
Simon