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

Samuel Holland samuel at sholland.org
Mon Nov 28 07:47:56 CET 2022


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>
---

 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 e0005994e21..025dac24f28 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" },
+	{ "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);
-- 
2.37.4



More information about the U-Boot mailing list