Merge git://git.denx.de/u-boot-sunxi
[oweals/u-boot.git] / drivers / power / pmic / max77686.c
index e9503e24a42bc2c11ac48db513376e5c96714004..b3ed84992ff8a21db37f6d656c5e12599f9919c4 100644 (file)
 
 DECLARE_GLOBAL_DATA_PTR;
 
-static const struct pmic_child_info pmic_childs_info[] = {
-       { .prefix = "ldo", .driver = MAX77686_LDO_DRIVER },
-       { .prefix = "buck", .driver = MAX77686_BUCK_DRIVER },
+static const struct pmic_child_info pmic_children_info[] = {
+       { .prefix = "LDO", .driver = MAX77686_LDO_DRIVER },
+       { .prefix = "BUCK", .driver = MAX77686_BUCK_DRIVER },
        { },
 };
 
+static int max77686_reg_count(struct udevice *dev)
+{
+       return MAX77686_NUM_OF_REGS;
+}
+
 static int max77686_write(struct udevice *dev, uint reg, const uint8_t *buff,
                          int len)
 {
        if (dm_i2c_write(dev, reg, buff, len)) {
-               error("write error to device: %p register: %#x!", dev, reg);
+               pr_err("write error to device: %p register: %#x!", dev, reg);
                return -EIO;
        }
 
@@ -36,7 +41,7 @@ static int max77686_write(struct udevice *dev, uint reg, const uint8_t *buff,
 static int max77686_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
 {
        if (dm_i2c_read(dev, reg, buff, len)) {
-               error("read error from device: %p register: %#x!", dev, reg);
+               pr_err("read error from device: %p register: %#x!", dev, reg);
                return -EIO;
        }
 
@@ -45,13 +50,11 @@ static int max77686_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
 
 static int max77686_bind(struct udevice *dev)
 {
-       int regulators_node;
-       const void *blob = gd->fdt_blob;
-       int childs;
+       ofnode regulators_node;
+       int children;
 
-       regulators_node = fdt_subnode_offset(blob, dev->of_offset,
-                                            "voltage-regulators");
-       if (regulators_node <= 0) {
+       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;
@@ -59,8 +62,8 @@ static int max77686_bind(struct udevice *dev)
 
        debug("%s: '%s' - found regulators subnode\n", __func__, dev->name);
 
-       childs = pmic_bind_childs(dev, regulators_node, pmic_childs_info);
-       if (!childs)
+       children = pmic_bind_children(dev, regulators_node, pmic_children_info);
+       if (!children)
                debug("%s: %s - no child found\n", __func__, dev->name);
 
        /* Always return success for this device */
@@ -68,7 +71,7 @@ static int max77686_bind(struct udevice *dev)
 }
 
 static struct dm_pmic_ops max77686_ops = {
-       .reg_count = MAX77686_NUM_OF_REGS,
+       .reg_count = max77686_reg_count,
        .read = max77686_read,
        .write = max77686_write,
 };
@@ -79,7 +82,7 @@ static const struct udevice_id max77686_ids[] = {
 };
 
 U_BOOT_DRIVER(pmic_max77686) = {
-       .name = "max77686 pmic",
+       .name = "max77686_pmic",
        .id = UCLASS_PMIC,
        .of_match = max77686_ids,
        .bind = max77686_bind,