On Sat, 21 Jan 2023 17:13:06 -0600
Samuel Holland <sam...@sholland.org> wrote:

Hi,

> Now that a regulator driver exists for this PMIC, hook it up to the
> device tree "regulators" subnodes.
> 
> Signed-off-by: Samuel Holland <sam...@sholland.org>
> ---
> 
> (no changes since v1)
> 
>  drivers/power/pmic/axp.c | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/drivers/power/pmic/axp.c b/drivers/power/pmic/axp.c
> index e0005994e2..025dac24f2 100644
> --- a/drivers/power/pmic/axp.c
> +++ b/drivers/power/pmic/axp.c
> @@ -45,14 +45,32 @@ static struct dm_pmic_ops axp_pmic_ops = {
>       .write          = dm_i2c_write,
>  };
>  
> +static const struct pmic_child_info axp_pmic_child_info[] = {
> +     { "aldo",       "axp_regulator" },
> +     { "bldo",       "axp_regulator" },
> +     { "cldo",       "axp_regulator" },
> +     { "dc",         "axp_regulator" },
> +     { "dldo",       "axp_regulator" },
> +     { "eldo",       "axp_regulator" },
> +     { "fldo",       "axp_regulator" },
> +     { "ldo",        "axp_regulator" },

Technically I think this list misses "rtc" (for rtc[_-]ldo), but those
are real fixed regulators, and I see only one weird consumer (GPS
device in sun8i-a83t-tbs-a711.dts, not relevant to U-Boot), so I think
it's fine. Should an actual user emerge, we can always add it.

Reviewed-by: Andre Przywara <andre.przyw...@arm.com>

Cheers,
Andre

> +     { "sw",         "axp_regulator" },
> +     { }
> +};
> +
>  static int axp_pmic_bind(struct udevice *dev)
>  {
> +     ofnode regulators_node;
>       int ret;
>  
>       ret = dm_scan_fdt_dev(dev);
>       if (ret)
>               return ret;
>  
> +     regulators_node = dev_read_subnode(dev, "regulators");
> +     if (ofnode_valid(regulators_node))
> +             pmic_bind_children(dev, regulators_node, axp_pmic_child_info);
> +
>       if (CONFIG_IS_ENABLED(SYSRESET)) {
>               ret = device_bind_driver_to_node(dev, "axp_sysreset", 
> "axp_sysreset",
>                                                dev_ofnode(dev), NULL);

Reply via email to