[PATCH v2 3/3] power: pmic: axp: Bind regulators from the DT

Andre Przywara andre.przywara at arm.com
Sun Jan 22 18:39:52 CET 2023


On Sat, 21 Jan 2023 17:13:06 -0600
Samuel Holland <samuel at 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 <samuel at 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.przywara at 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);



More information about the U-Boot mailing list