Loading drivers/regulator/max8649.c +16 −29 Original line number Diff line number Diff line Loading @@ -53,7 +53,6 @@ struct max8649_regulator_info { struct device *dev; struct regmap *regmap; int vol_reg; unsigned mode:2; /* bit[1:0] = VID1, VID0 */ unsigned extclk_freq:2; unsigned extclk:1; Loading @@ -76,20 +75,6 @@ static int max8649_list_voltage(struct regulator_dev *rdev, unsigned index) return (MAX8649_DCDC_VMIN + index * MAX8649_DCDC_STEP); } static int max8649_get_voltage_sel(struct regulator_dev *rdev) { struct max8649_regulator_info *info = rdev_get_drvdata(rdev); unsigned int val; unsigned char data; int ret; ret = regmap_read(info->regmap, info->vol_reg, &val); if (ret != 0) return ret; data = (unsigned char)val & MAX8649_VOL_MASK; return data; } static int max8649_set_voltage(struct regulator_dev *rdev, int min_uV, int max_uV, unsigned *selector) { Loading @@ -105,7 +90,8 @@ static int max8649_set_voltage(struct regulator_dev *rdev, mask = MAX8649_VOL_MASK; *selector = data & mask; return regmap_update_bits(info->regmap, info->vol_reg, mask, data); return regmap_update_bits(info->regmap, rdev->desc->vsel_reg, mask, data); } /* EN_PD means pulldown on EN input */ Loading Loading @@ -145,7 +131,7 @@ static int max8649_enable_time(struct regulator_dev *rdev) unsigned int val; /* get voltage */ ret = regmap_read(info->regmap, info->vol_reg, &val); ret = regmap_read(info->regmap, rdev->desc->vsel_reg, &val); if (ret != 0) return ret; val &= MAX8649_VOL_MASK; Loading @@ -167,11 +153,11 @@ static int max8649_set_mode(struct regulator_dev *rdev, unsigned int mode) switch (mode) { case REGULATOR_MODE_FAST: regmap_update_bits(info->regmap, info->vol_reg, MAX8649_FORCE_PWM, MAX8649_FORCE_PWM); regmap_update_bits(info->regmap, rdev->desc->vsel_reg, MAX8649_FORCE_PWM, MAX8649_FORCE_PWM); break; case REGULATOR_MODE_NORMAL: regmap_update_bits(info->regmap, info->vol_reg, regmap_update_bits(info->regmap, rdev->desc->vsel_reg, MAX8649_FORCE_PWM, 0); break; default: Loading @@ -186,7 +172,7 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev) unsigned int val; int ret; ret = regmap_read(info->regmap, info->vol_reg, &val); ret = regmap_read(info->regmap, rdev->desc->vsel_reg, &val); if (ret != 0) return ret; if (val & MAX8649_FORCE_PWM) Loading @@ -196,7 +182,7 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev) static struct regulator_ops max8649_dcdc_ops = { .set_voltage = max8649_set_voltage, .get_voltage_sel = max8649_get_voltage_sel, .get_voltage_sel = regulator_get_voltage_sel_regmap, .list_voltage = max8649_list_voltage, .enable = max8649_enable, .disable = max8649_disable, Loading @@ -207,12 +193,13 @@ static struct regulator_ops max8649_dcdc_ops = { }; static const struct regulator_desc dcdc_desc = { static struct regulator_desc dcdc_desc = { .name = "max8649", .ops = &max8649_dcdc_ops, .type = REGULATOR_VOLTAGE, .n_voltages = 1 << 6, .owner = THIS_MODULE, .vsel_mask = MAX8649_VOL_MASK, }; static struct regmap_config max8649_regmap_config = { Loading Loading @@ -250,16 +237,16 @@ static int __devinit max8649_regulator_probe(struct i2c_client *client, info->mode = pdata->mode; switch (info->mode) { case 0: info->vol_reg = MAX8649_MODE0; dcdc_desc.vsel_reg = MAX8649_MODE0; break; case 1: info->vol_reg = MAX8649_MODE1; dcdc_desc.vsel_reg = MAX8649_MODE1; break; case 2: info->vol_reg = MAX8649_MODE2; dcdc_desc.vsel_reg = MAX8649_MODE2; break; case 3: info->vol_reg = MAX8649_MODE3; dcdc_desc.vsel_reg = MAX8649_MODE3; break; default: break; Loading @@ -279,7 +266,8 @@ static int __devinit max8649_regulator_probe(struct i2c_client *client, /* enable/disable external clock synchronization */ info->extclk = pdata->extclk; data = (info->extclk) ? MAX8649_SYNC_EXTCLK : 0; regmap_update_bits(info->regmap, info->vol_reg, MAX8649_SYNC_EXTCLK, data); regmap_update_bits(info->regmap, dcdc_desc.vsel_reg, MAX8649_SYNC_EXTCLK, data); if (info->extclk) { /* set external clock frequency */ info->extclk_freq = pdata->extclk_freq; Loading Loading @@ -356,4 +344,3 @@ module_exit(max8649_exit); MODULE_DESCRIPTION("MAXIM 8649 voltage regulator driver"); MODULE_AUTHOR("Haojian Zhuang <haojian.zhuang@marvell.com>"); MODULE_LICENSE("GPL"); Loading
drivers/regulator/max8649.c +16 −29 Original line number Diff line number Diff line Loading @@ -53,7 +53,6 @@ struct max8649_regulator_info { struct device *dev; struct regmap *regmap; int vol_reg; unsigned mode:2; /* bit[1:0] = VID1, VID0 */ unsigned extclk_freq:2; unsigned extclk:1; Loading @@ -76,20 +75,6 @@ static int max8649_list_voltage(struct regulator_dev *rdev, unsigned index) return (MAX8649_DCDC_VMIN + index * MAX8649_DCDC_STEP); } static int max8649_get_voltage_sel(struct regulator_dev *rdev) { struct max8649_regulator_info *info = rdev_get_drvdata(rdev); unsigned int val; unsigned char data; int ret; ret = regmap_read(info->regmap, info->vol_reg, &val); if (ret != 0) return ret; data = (unsigned char)val & MAX8649_VOL_MASK; return data; } static int max8649_set_voltage(struct regulator_dev *rdev, int min_uV, int max_uV, unsigned *selector) { Loading @@ -105,7 +90,8 @@ static int max8649_set_voltage(struct regulator_dev *rdev, mask = MAX8649_VOL_MASK; *selector = data & mask; return regmap_update_bits(info->regmap, info->vol_reg, mask, data); return regmap_update_bits(info->regmap, rdev->desc->vsel_reg, mask, data); } /* EN_PD means pulldown on EN input */ Loading Loading @@ -145,7 +131,7 @@ static int max8649_enable_time(struct regulator_dev *rdev) unsigned int val; /* get voltage */ ret = regmap_read(info->regmap, info->vol_reg, &val); ret = regmap_read(info->regmap, rdev->desc->vsel_reg, &val); if (ret != 0) return ret; val &= MAX8649_VOL_MASK; Loading @@ -167,11 +153,11 @@ static int max8649_set_mode(struct regulator_dev *rdev, unsigned int mode) switch (mode) { case REGULATOR_MODE_FAST: regmap_update_bits(info->regmap, info->vol_reg, MAX8649_FORCE_PWM, MAX8649_FORCE_PWM); regmap_update_bits(info->regmap, rdev->desc->vsel_reg, MAX8649_FORCE_PWM, MAX8649_FORCE_PWM); break; case REGULATOR_MODE_NORMAL: regmap_update_bits(info->regmap, info->vol_reg, regmap_update_bits(info->regmap, rdev->desc->vsel_reg, MAX8649_FORCE_PWM, 0); break; default: Loading @@ -186,7 +172,7 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev) unsigned int val; int ret; ret = regmap_read(info->regmap, info->vol_reg, &val); ret = regmap_read(info->regmap, rdev->desc->vsel_reg, &val); if (ret != 0) return ret; if (val & MAX8649_FORCE_PWM) Loading @@ -196,7 +182,7 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev) static struct regulator_ops max8649_dcdc_ops = { .set_voltage = max8649_set_voltage, .get_voltage_sel = max8649_get_voltage_sel, .get_voltage_sel = regulator_get_voltage_sel_regmap, .list_voltage = max8649_list_voltage, .enable = max8649_enable, .disable = max8649_disable, Loading @@ -207,12 +193,13 @@ static struct regulator_ops max8649_dcdc_ops = { }; static const struct regulator_desc dcdc_desc = { static struct regulator_desc dcdc_desc = { .name = "max8649", .ops = &max8649_dcdc_ops, .type = REGULATOR_VOLTAGE, .n_voltages = 1 << 6, .owner = THIS_MODULE, .vsel_mask = MAX8649_VOL_MASK, }; static struct regmap_config max8649_regmap_config = { Loading Loading @@ -250,16 +237,16 @@ static int __devinit max8649_regulator_probe(struct i2c_client *client, info->mode = pdata->mode; switch (info->mode) { case 0: info->vol_reg = MAX8649_MODE0; dcdc_desc.vsel_reg = MAX8649_MODE0; break; case 1: info->vol_reg = MAX8649_MODE1; dcdc_desc.vsel_reg = MAX8649_MODE1; break; case 2: info->vol_reg = MAX8649_MODE2; dcdc_desc.vsel_reg = MAX8649_MODE2; break; case 3: info->vol_reg = MAX8649_MODE3; dcdc_desc.vsel_reg = MAX8649_MODE3; break; default: break; Loading @@ -279,7 +266,8 @@ static int __devinit max8649_regulator_probe(struct i2c_client *client, /* enable/disable external clock synchronization */ info->extclk = pdata->extclk; data = (info->extclk) ? MAX8649_SYNC_EXTCLK : 0; regmap_update_bits(info->regmap, info->vol_reg, MAX8649_SYNC_EXTCLK, data); regmap_update_bits(info->regmap, dcdc_desc.vsel_reg, MAX8649_SYNC_EXTCLK, data); if (info->extclk) { /* set external clock frequency */ info->extclk_freq = pdata->extclk_freq; Loading Loading @@ -356,4 +344,3 @@ module_exit(max8649_exit); MODULE_DESCRIPTION("MAXIM 8649 voltage regulator driver"); MODULE_AUTHOR("Haojian Zhuang <haojian.zhuang@marvell.com>"); MODULE_LICENSE("GPL");