power: pmic: s2mps11: probe the regulator driver

Add the probe function to support the s2mps11 regulator driver.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Tested-by: Anand Moon <linux.amoon@gmail.com>
This commit is contained in:
Jaehoon Chung 2018-01-16 15:33:51 +09:00
parent 60599ea6cd
commit 173f023f46

View File

@ -15,6 +15,12 @@
DECLARE_GLOBAL_DATA_PTR; DECLARE_GLOBAL_DATA_PTR;
static const struct pmic_child_info pmic_children_info[] = {
{ .prefix = S2MPS11_OF_LDO_PREFIX, .driver = S2MPS11_LDO_DRIVER },
{ .prefix = S2MPS11_OF_BUCK_PREFIX, .driver = S2MPS11_BUCK_DRIVER },
{ },
};
static int s2mps11_reg_count(struct udevice *dev) static int s2mps11_reg_count(struct udevice *dev)
{ {
return S2MPS11_REG_COUNT; return S2MPS11_REG_COUNT;
@ -43,6 +49,27 @@ static int s2mps11_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
return ret; return ret;
} }
static int s2mps11_probe(struct udevice *dev)
{
ofnode regulators_node;
int children;
regulators_node = dev_read_subnode(dev, "voltage-regulators");
if (!ofnode_valid(regulators_node)) {
debug("%s: %s regulators subnode not found!", __func__,
dev->name);
return -ENXIO;
}
debug("%s: '%s' - found regulators subnode\n", __func__, dev->name);
children = pmic_bind_children(dev, regulators_node, pmic_children_info);
if (!children)
debug("%s: %s - no child found\n", __func__, dev->name);
return 0;
}
static struct dm_pmic_ops s2mps11_ops = { static struct dm_pmic_ops s2mps11_ops = {
.reg_count = s2mps11_reg_count, .reg_count = s2mps11_reg_count,
.read = s2mps11_read, .read = s2mps11_read,
@ -59,4 +86,5 @@ U_BOOT_DRIVER(pmic_s2mps11) = {
.id = UCLASS_PMIC, .id = UCLASS_PMIC,
.of_match = s2mps11_ids, .of_match = s2mps11_ids,
.ops = &s2mps11_ops, .ops = &s2mps11_ops,
.probe = s2mps11_probe,
}; };