#include <power/regulator.h>
#include <power/lp873x.h>
static const char lp873x_buck_ctrl[LP873X_BUCK_NUM] = {0x2, 0x4};
static const char lp873x_buck_volt[LP873X_BUCK_NUM] = {0x6, 0x7};
static const char lp873x_ldo_ctrl[LP873X_LDO_NUM] = {0x8, 0x9};
static const char lp873x_ldo_volt[LP873X_LDO_NUM] = {0xA, 0xB};
static int lp873x_buck_enable(struct udevice *dev, int op, bool *enable)
struct dm_regulator_uclass_platdata *uc_pdata;
uc_pdata = dev_get_uclass_platdata(dev);
adr = uc_pdata->ctrl_reg;
ret = pmic_reg_read(dev->parent, adr);
ret &= LP873X_BUCK_MODE_MASK;
} else if (op == PMIC_OP_SET) {
ret |= LP873X_BUCK_MODE_MASK;
ret &= ~(LP873X_BUCK_MODE_MASK);
ret = pmic_reg_write(dev->parent, adr, ret);
static int lp873x_buck_volt2hex(int uV)
if (uV > LP873X_BUCK_VOLT_MAX)
return (uV - 1420000) / 20000 + 0x9E;