* [PATCH 1/4] regulator: max8649: Convert to get_voltage_sel
@ 2012-05-14 16:12 Axel Lin
2012-05-14 16:13 ` [PATCH 2/4] regulator: max8649: Use regulator_get_voltage_sel_regmap() Axel Lin
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Axel Lin @ 2012-05-14 16:12 UTC (permalink / raw)
To: linux-kernel; +Cc: Jonghwan Choi, Haojian Zhuang, Mark Brown, Liam Girdwood
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/regulator/max8649.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/regulator/max8649.c b/drivers/regulator/max8649.c
index 4ce7208..3b73a7f 100644
--- a/drivers/regulator/max8649.c
+++ b/drivers/regulator/max8649.c
@@ -76,7 +76,7 @@ static int max8649_list_voltage(struct regulator_dev *rdev, unsigned index)
return (MAX8649_DCDC_VMIN + index * MAX8649_DCDC_STEP);
}
-static int max8649_get_voltage(struct regulator_dev *rdev)
+static int max8649_get_voltage_sel(struct regulator_dev *rdev)
{
struct max8649_regulator_info *info = rdev_get_drvdata(rdev);
unsigned int val;
@@ -87,7 +87,7 @@ static int max8649_get_voltage(struct regulator_dev *rdev)
if (ret != 0)
return ret;
data = (unsigned char)val & MAX8649_VOL_MASK;
- return max8649_list_voltage(rdev, data);
+ return data;
}
static int max8649_set_voltage(struct regulator_dev *rdev,
@@ -196,7 +196,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 = max8649_get_voltage,
+ .get_voltage_sel = max8649_get_voltage_sel,
.list_voltage = max8649_list_voltage,
.enable = max8649_enable,
.disable = max8649_disable,
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/4] regulator: max8649: Use regulator_get_voltage_sel_regmap()
2012-05-14 16:12 [PATCH 1/4] regulator: max8649: Convert to get_voltage_sel Axel Lin
@ 2012-05-14 16:13 ` Axel Lin
2012-05-14 16:14 ` [PATCH 3/4] regulator: max8649: Convert to regulator_list_voltage_linear() Axel Lin
2012-05-14 16:15 ` [PATCH 4/4] regulator: max8649: Convert to regulator_set_voltage_sel_regmap and regulator_map_voltage_linear Axel Lin
2 siblings, 0 replies; 4+ messages in thread
From: Axel Lin @ 2012-05-14 16:13 UTC (permalink / raw)
To: linux-kernel; +Cc: Jonghwan Choi, Haojian Zhuang, Mark Brown, Liam Girdwood
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/regulator/max8649.c | 45 +++++++++++++++---------------------------
1 files changed, 16 insertions(+), 29 deletions(-)
diff --git a/drivers/regulator/max8649.c b/drivers/regulator/max8649.c
index 3b73a7f..575cf48 100644
--- a/drivers/regulator/max8649.c
+++ b/drivers/regulator/max8649.c
@@ -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;
@@ -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)
{
@@ -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 */
@@ -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;
@@ -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:
@@ -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)
@@ -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,
@@ -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 = {
@@ -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;
@@ -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;
@@ -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");
-
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/4] regulator: max8649: Convert to regulator_list_voltage_linear()
2012-05-14 16:12 [PATCH 1/4] regulator: max8649: Convert to get_voltage_sel Axel Lin
2012-05-14 16:13 ` [PATCH 2/4] regulator: max8649: Use regulator_get_voltage_sel_regmap() Axel Lin
@ 2012-05-14 16:14 ` Axel Lin
2012-05-14 16:15 ` [PATCH 4/4] regulator: max8649: Convert to regulator_set_voltage_sel_regmap and regulator_map_voltage_linear Axel Lin
2 siblings, 0 replies; 4+ messages in thread
From: Axel Lin @ 2012-05-14 16:14 UTC (permalink / raw)
To: linux-kernel; +Cc: Jonghwan Choi, Haojian Zhuang, Mark Brown, Liam Girdwood
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/regulator/max8649.c | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
diff --git a/drivers/regulator/max8649.c b/drivers/regulator/max8649.c
index 575cf48..0cfd172 100644
--- a/drivers/regulator/max8649.c
+++ b/drivers/regulator/max8649.c
@@ -70,11 +70,6 @@ static inline int check_range(int min_uV, int max_uV)
return 0;
}
-static int max8649_list_voltage(struct regulator_dev *rdev, unsigned index)
-{
- return (MAX8649_DCDC_VMIN + index * MAX8649_DCDC_STEP);
-}
-
static int max8649_set_voltage(struct regulator_dev *rdev,
int min_uV, int max_uV, unsigned *selector)
{
@@ -135,7 +130,7 @@ static int max8649_enable_time(struct regulator_dev *rdev)
if (ret != 0)
return ret;
val &= MAX8649_VOL_MASK;
- voltage = max8649_list_voltage(rdev, (unsigned char)val); /* uV */
+ voltage = regulator_list_voltage_linear(rdev, (unsigned char)val);
/* get rate */
ret = regmap_read(info->regmap, MAX8649_RAMP, &val);
@@ -183,7 +178,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 = regulator_get_voltage_sel_regmap,
- .list_voltage = max8649_list_voltage,
+ .list_voltage = regulator_list_voltage_linear,
.enable = max8649_enable,
.disable = max8649_disable,
.is_enabled = max8649_is_enabled,
@@ -200,6 +195,8 @@ static struct regulator_desc dcdc_desc = {
.n_voltages = 1 << 6,
.owner = THIS_MODULE,
.vsel_mask = MAX8649_VOL_MASK,
+ .min_uV = MAX8649_DCDC_VMIN,
+ .uV_step = MAX8649_DCDC_STEP,
};
static struct regmap_config max8649_regmap_config = {
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 4/4] regulator: max8649: Convert to regulator_set_voltage_sel_regmap and regulator_map_voltage_linear
2012-05-14 16:12 [PATCH 1/4] regulator: max8649: Convert to get_voltage_sel Axel Lin
2012-05-14 16:13 ` [PATCH 2/4] regulator: max8649: Use regulator_get_voltage_sel_regmap() Axel Lin
2012-05-14 16:14 ` [PATCH 3/4] regulator: max8649: Convert to regulator_list_voltage_linear() Axel Lin
@ 2012-05-14 16:15 ` Axel Lin
2 siblings, 0 replies; 4+ messages in thread
From: Axel Lin @ 2012-05-14 16:15 UTC (permalink / raw)
To: linux-kernel; +Cc: Jonghwan Choi, Haojian Zhuang, Mark Brown, Liam Girdwood
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/regulator/max8649.c | 22 ++--------------------
1 files changed, 2 insertions(+), 20 deletions(-)
diff --git a/drivers/regulator/max8649.c b/drivers/regulator/max8649.c
index 0cfd172..39fffb2 100644
--- a/drivers/regulator/max8649.c
+++ b/drivers/regulator/max8649.c
@@ -70,25 +70,6 @@ static inline int check_range(int min_uV, int max_uV)
return 0;
}
-static int max8649_set_voltage(struct regulator_dev *rdev,
- int min_uV, int max_uV, unsigned *selector)
-{
- struct max8649_regulator_info *info = rdev_get_drvdata(rdev);
- unsigned char data, mask;
-
- if (check_range(min_uV, max_uV)) {
- dev_err(info->dev, "invalid voltage range (%d, %d) uV\n",
- min_uV, max_uV);
- return -EINVAL;
- }
- data = DIV_ROUND_UP(min_uV - MAX8649_DCDC_VMIN, MAX8649_DCDC_STEP);
- mask = MAX8649_VOL_MASK;
- *selector = data & mask;
-
- return regmap_update_bits(info->regmap, rdev->desc->vsel_reg, mask,
- data);
-}
-
/* EN_PD means pulldown on EN input */
static int max8649_enable(struct regulator_dev *rdev)
{
@@ -176,9 +157,10 @@ static unsigned int max8649_get_mode(struct regulator_dev *rdev)
}
static struct regulator_ops max8649_dcdc_ops = {
- .set_voltage = max8649_set_voltage,
+ .set_voltage_sel = regulator_set_voltage_sel_regmap,
.get_voltage_sel = regulator_get_voltage_sel_regmap,
.list_voltage = regulator_list_voltage_linear,
+ .map_voltage = regulator_map_voltage_linear,
.enable = max8649_enable,
.disable = max8649_disable,
.is_enabled = max8649_is_enabled,
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-05-14 16:15 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-14 16:12 [PATCH 1/4] regulator: max8649: Convert to get_voltage_sel Axel Lin
2012-05-14 16:13 ` [PATCH 2/4] regulator: max8649: Use regulator_get_voltage_sel_regmap() Axel Lin
2012-05-14 16:14 ` [PATCH 3/4] regulator: max8649: Convert to regulator_list_voltage_linear() Axel Lin
2012-05-14 16:15 ` [PATCH 4/4] regulator: max8649: Convert to regulator_set_voltage_sel_regmap and regulator_map_voltage_linear Axel Lin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox