* [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear()
@ 2012-05-15 13:41 Axel Lin
2012-05-15 13:42 ` [PATCH RFT 2/3] regulator: max8660: Convert to get_voltage_sel Axel Lin
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Axel Lin @ 2012-05-15 13:41 UTC (permalink / raw)
To: linux-kernel; +Cc: Wolfram Sang, Liam Girdwood, Mark Brown
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/regulator/max8660.c | 43 ++++++++++++++++---------------------------
1 files changed, 16 insertions(+), 27 deletions(-)
diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
index 5d56817..67ec6ad 100644
--- a/drivers/regulator/max8660.c
+++ b/drivers/regulator/max8660.c
@@ -126,13 +126,6 @@ static int max8660_dcdc_disable(struct regulator_dev *rdev)
return max8660_write(max8660, MAX8660_OVER1, mask, 0);
}
-static int max8660_dcdc_list(struct regulator_dev *rdev, unsigned selector)
-{
- if (selector > MAX8660_DCDC_MAX_SEL)
- return -EINVAL;
- return MAX8660_DCDC_MIN_UV + selector * MAX8660_DCDC_STEP;
-}
-
static int max8660_dcdc_get(struct regulator_dev *rdev)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
@@ -156,7 +149,7 @@ static int max8660_dcdc_set(struct regulator_dev *rdev, int min_uV, int max_uV,
selector = DIV_ROUND_UP(min_uV - MAX8660_DCDC_MIN_UV,
MAX8660_DCDC_STEP);
- ret = max8660_dcdc_list(rdev, selector);
+ ret = regulator_list_voltage_linear(rdev, selector);
if (ret < 0 || ret > max_uV)
return -EINVAL;
@@ -174,7 +167,7 @@ static int max8660_dcdc_set(struct regulator_dev *rdev, int min_uV, int max_uV,
static struct regulator_ops max8660_dcdc_ops = {
.is_enabled = max8660_dcdc_is_enabled,
- .list_voltage = max8660_dcdc_list,
+ .list_voltage = regulator_list_voltage_linear,
.set_voltage = max8660_dcdc_set,
.get_voltage = max8660_dcdc_get,
};
@@ -184,13 +177,6 @@ static struct regulator_ops max8660_dcdc_ops = {
* LDO5 functions
*/
-static int max8660_ldo5_list(struct regulator_dev *rdev, unsigned selector)
-{
- if (selector > MAX8660_LDO5_MAX_SEL)
- return -EINVAL;
- return MAX8660_LDO5_MIN_UV + selector * MAX8660_LDO5_STEP;
-}
-
static int max8660_ldo5_get(struct regulator_dev *rdev)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
@@ -214,7 +200,7 @@ static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV,
selector = DIV_ROUND_UP(min_uV - MAX8660_LDO5_MIN_UV,
MAX8660_LDO5_STEP);
- ret = max8660_ldo5_list(rdev, selector);
+ ret = regulator_list_voltage_linear(rdev, selector);
if (ret < 0 || ret > max_uV)
return -EINVAL;
@@ -229,7 +215,7 @@ static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV,
}
static struct regulator_ops max8660_ldo5_ops = {
- .list_voltage = max8660_ldo5_list,
+ .list_voltage = regulator_list_voltage_linear,
.set_voltage = max8660_ldo5_set,
.get_voltage = max8660_ldo5_get,
};
@@ -261,13 +247,6 @@ static int max8660_ldo67_disable(struct regulator_dev *rdev)
return max8660_write(max8660, MAX8660_OVER2, mask, 0);
}
-static int max8660_ldo67_list(struct regulator_dev *rdev, unsigned selector)
-{
- if (selector > MAX8660_LDO67_MAX_SEL)
- return -EINVAL;
- return MAX8660_LDO67_MIN_UV + selector * MAX8660_LDO67_STEP;
-}
-
static int max8660_ldo67_get(struct regulator_dev *rdev)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
@@ -292,7 +271,7 @@ static int max8660_ldo67_set(struct regulator_dev *rdev, int min_uV,
selector = DIV_ROUND_UP(min_uV - MAX8660_LDO67_MIN_UV,
MAX8660_LDO67_STEP);
- ret = max8660_ldo67_list(rdev, selector);
+ ret = regulator_list_voltage_linear(rdev, selector);
if (ret < 0 || ret > max_uV)
return -EINVAL;
@@ -308,7 +287,7 @@ static struct regulator_ops max8660_ldo67_ops = {
.is_enabled = max8660_ldo67_is_enabled,
.enable = max8660_ldo67_enable,
.disable = max8660_ldo67_disable,
- .list_voltage = max8660_ldo67_list,
+ .list_voltage = regulator_list_voltage_linear,
.get_voltage = max8660_ldo67_get,
.set_voltage = max8660_ldo67_set,
};
@@ -321,6 +300,8 @@ static const struct regulator_desc max8660_reg[] = {
.type = REGULATOR_VOLTAGE,
.n_voltages = MAX8660_DCDC_MAX_SEL + 1,
.owner = THIS_MODULE,
+ .min_uV = MAX8660_DCDC_MIN_UV,
+ .uV_step = MAX8660_DCDC_STEP,
},
{
.name = "V4(DCDC)",
@@ -329,6 +310,8 @@ static const struct regulator_desc max8660_reg[] = {
.type = REGULATOR_VOLTAGE,
.n_voltages = MAX8660_DCDC_MAX_SEL + 1,
.owner = THIS_MODULE,
+ .min_uV = MAX8660_DCDC_MIN_UV,
+ .uV_step = MAX8660_DCDC_STEP,
},
{
.name = "V5(LDO)",
@@ -337,6 +320,8 @@ static const struct regulator_desc max8660_reg[] = {
.type = REGULATOR_VOLTAGE,
.n_voltages = MAX8660_LDO5_MAX_SEL + 1,
.owner = THIS_MODULE,
+ .min_uV = MAX8660_LDO5_MIN_UV,
+ .uV_step = MAX8660_LDO5_STEP,
},
{
.name = "V6(LDO)",
@@ -345,6 +330,8 @@ static const struct regulator_desc max8660_reg[] = {
.type = REGULATOR_VOLTAGE,
.n_voltages = MAX8660_LDO67_MAX_SEL + 1,
.owner = THIS_MODULE,
+ .min_uV = MAX8660_LDO67_MIN_UV,
+ .uV_step = MAX8660_LDO67_STEP,
},
{
.name = "V7(LDO)",
@@ -353,6 +340,8 @@ static const struct regulator_desc max8660_reg[] = {
.type = REGULATOR_VOLTAGE,
.n_voltages = MAX8660_LDO67_MAX_SEL + 1,
.owner = THIS_MODULE,
+ .min_uV = MAX8660_LDO67_MIN_UV,
+ .uV_step = MAX8660_LDO67_STEP,
},
};
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH RFT 2/3] regulator: max8660: Convert to get_voltage_sel
2012-05-15 13:41 [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear() Axel Lin
@ 2012-05-15 13:42 ` Axel Lin
2012-05-15 13:43 ` [PATCH RFT 3/3] regulator: max8660: Convert to set_voltage_sel and regulator_map_voltage_linear Axel Lin
2012-05-15 17:36 ` [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear() Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Axel Lin @ 2012-05-15 13:42 UTC (permalink / raw)
To: linux-kernel; +Cc: Wolfram Sang, Liam Girdwood, Mark Brown
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/regulator/max8660.c | 23 ++++++++++++-----------
1 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
index 67ec6ad..93bcfc8 100644
--- a/drivers/regulator/max8660.c
+++ b/drivers/regulator/max8660.c
@@ -126,12 +126,13 @@ static int max8660_dcdc_disable(struct regulator_dev *rdev)
return max8660_write(max8660, MAX8660_OVER1, mask, 0);
}
-static int max8660_dcdc_get(struct regulator_dev *rdev)
+static int max8660_dcdc_get_voltage_sel(struct regulator_dev *rdev)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
+
u8 reg = (rdev_get_id(rdev) == MAX8660_V3) ? MAX8660_ADTV2 : MAX8660_SDTV2;
u8 selector = max8660->shadow_regs[reg];
- return MAX8660_DCDC_MIN_UV + selector * MAX8660_DCDC_STEP;
+ return selector;
}
static int max8660_dcdc_set(struct regulator_dev *rdev, int min_uV, int max_uV,
@@ -169,7 +170,7 @@ static struct regulator_ops max8660_dcdc_ops = {
.is_enabled = max8660_dcdc_is_enabled,
.list_voltage = regulator_list_voltage_linear,
.set_voltage = max8660_dcdc_set,
- .get_voltage = max8660_dcdc_get,
+ .get_voltage_sel = max8660_dcdc_get_voltage_sel,
};
@@ -177,12 +178,12 @@ static struct regulator_ops max8660_dcdc_ops = {
* LDO5 functions
*/
-static int max8660_ldo5_get(struct regulator_dev *rdev)
+static int max8660_ldo5_get_voltage_sel(struct regulator_dev *rdev)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
- u8 selector = max8660->shadow_regs[MAX8660_MDTV2];
- return MAX8660_LDO5_MIN_UV + selector * MAX8660_LDO5_STEP;
+ u8 selector = max8660->shadow_regs[MAX8660_MDTV2];
+ return selector;
}
static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV,
@@ -217,7 +218,7 @@ static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV,
static struct regulator_ops max8660_ldo5_ops = {
.list_voltage = regulator_list_voltage_linear,
.set_voltage = max8660_ldo5_set,
- .get_voltage = max8660_ldo5_get,
+ .get_voltage_sel = max8660_ldo5_get_voltage_sel,
};
@@ -247,13 +248,13 @@ static int max8660_ldo67_disable(struct regulator_dev *rdev)
return max8660_write(max8660, MAX8660_OVER2, mask, 0);
}
-static int max8660_ldo67_get(struct regulator_dev *rdev)
+static int max8660_ldo67_get_voltage_sel(struct regulator_dev *rdev)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
+
u8 shift = (rdev_get_id(rdev) == MAX8660_V6) ? 0 : 4;
u8 selector = (max8660->shadow_regs[MAX8660_L12VCR] >> shift) & 0xf;
-
- return MAX8660_LDO67_MIN_UV + selector * MAX8660_LDO67_STEP;
+ return selector;
}
static int max8660_ldo67_set(struct regulator_dev *rdev, int min_uV,
@@ -288,7 +289,7 @@ static struct regulator_ops max8660_ldo67_ops = {
.enable = max8660_ldo67_enable,
.disable = max8660_ldo67_disable,
.list_voltage = regulator_list_voltage_linear,
- .get_voltage = max8660_ldo67_get,
+ .get_voltage_sel = max8660_ldo67_get_voltage_sel,
.set_voltage = max8660_ldo67_set,
};
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH RFT 3/3] regulator: max8660: Convert to set_voltage_sel and regulator_map_voltage_linear
2012-05-15 13:41 [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear() Axel Lin
2012-05-15 13:42 ` [PATCH RFT 2/3] regulator: max8660: Convert to get_voltage_sel Axel Lin
@ 2012-05-15 13:43 ` Axel Lin
2012-05-15 17:36 ` [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear() Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Axel Lin @ 2012-05-15 13:43 UTC (permalink / raw)
To: linux-kernel; +Cc: Wolfram Sang, Liam Girdwood, Mark Brown
Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
drivers/regulator/max8660.c | 71 +++++++++----------------------------------
1 files changed, 15 insertions(+), 56 deletions(-)
diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
index 93bcfc8..8d53174 100644
--- a/drivers/regulator/max8660.c
+++ b/drivers/regulator/max8660.c
@@ -135,27 +135,13 @@ static int max8660_dcdc_get_voltage_sel(struct regulator_dev *rdev)
return selector;
}
-static int max8660_dcdc_set(struct regulator_dev *rdev, int min_uV, int max_uV,
- unsigned int *s)
+static int max8660_dcdc_set_voltage_sel(struct regulator_dev *rdev,
+ unsigned int selector)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
- u8 reg, selector, bits;
+ u8 reg, bits;
int ret;
- if (min_uV < MAX8660_DCDC_MIN_UV || min_uV > MAX8660_DCDC_MAX_UV)
- return -EINVAL;
- if (max_uV < MAX8660_DCDC_MIN_UV || max_uV > MAX8660_DCDC_MAX_UV)
- return -EINVAL;
-
- selector = DIV_ROUND_UP(min_uV - MAX8660_DCDC_MIN_UV,
- MAX8660_DCDC_STEP);
-
- ret = regulator_list_voltage_linear(rdev, selector);
- if (ret < 0 || ret > max_uV)
- return -EINVAL;
-
- *s = selector;
-
reg = (rdev_get_id(rdev) == MAX8660_V3) ? MAX8660_ADTV2 : MAX8660_SDTV2;
ret = max8660_write(max8660, reg, 0, selector);
if (ret)
@@ -169,7 +155,8 @@ static int max8660_dcdc_set(struct regulator_dev *rdev, int min_uV, int max_uV,
static struct regulator_ops max8660_dcdc_ops = {
.is_enabled = max8660_dcdc_is_enabled,
.list_voltage = regulator_list_voltage_linear,
- .set_voltage = max8660_dcdc_set,
+ .map_voltage = regulator_map_voltage_linear,
+ .set_voltage_sel = max8660_dcdc_set_voltage_sel,
.get_voltage_sel = max8660_dcdc_get_voltage_sel,
};
@@ -186,27 +173,12 @@ static int max8660_ldo5_get_voltage_sel(struct regulator_dev *rdev)
return selector;
}
-static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV,
- unsigned int *s)
+static int max8660_ldo5_set_voltage_sel(struct regulator_dev *rdev,
+ unsigned int selector)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
- u8 selector;
int ret;
- if (min_uV < MAX8660_LDO5_MIN_UV || min_uV > MAX8660_LDO5_MAX_UV)
- return -EINVAL;
- if (max_uV < MAX8660_LDO5_MIN_UV || max_uV > MAX8660_LDO5_MAX_UV)
- return -EINVAL;
-
- selector = DIV_ROUND_UP(min_uV - MAX8660_LDO5_MIN_UV,
- MAX8660_LDO5_STEP);
-
- ret = regulator_list_voltage_linear(rdev, selector);
- if (ret < 0 || ret > max_uV)
- return -EINVAL;
-
- *s = selector;
-
ret = max8660_write(max8660, MAX8660_MDTV2, 0, selector);
if (ret)
return ret;
@@ -217,7 +189,8 @@ static int max8660_ldo5_set(struct regulator_dev *rdev, int min_uV, int max_uV,
static struct regulator_ops max8660_ldo5_ops = {
.list_voltage = regulator_list_voltage_linear,
- .set_voltage = max8660_ldo5_set,
+ .map_voltage = regulator_map_voltage_linear,
+ .set_voltage_sel = max8660_ldo5_set_voltage_sel,
.get_voltage_sel = max8660_ldo5_get_voltage_sel,
};
@@ -257,31 +230,16 @@ static int max8660_ldo67_get_voltage_sel(struct regulator_dev *rdev)
return selector;
}
-static int max8660_ldo67_set(struct regulator_dev *rdev, int min_uV,
- int max_uV, unsigned int *s)
+static int max8660_ldo67_set_voltage_sel(struct regulator_dev *rdev,
+ unsigned int selector)
{
struct max8660 *max8660 = rdev_get_drvdata(rdev);
- u8 selector;
- int ret;
-
- if (min_uV < MAX8660_LDO67_MIN_UV || min_uV > MAX8660_LDO67_MAX_UV)
- return -EINVAL;
- if (max_uV < MAX8660_LDO67_MIN_UV || max_uV > MAX8660_LDO67_MAX_UV)
- return -EINVAL;
-
- selector = DIV_ROUND_UP(min_uV - MAX8660_LDO67_MIN_UV,
- MAX8660_LDO67_STEP);
-
- ret = regulator_list_voltage_linear(rdev, selector);
- if (ret < 0 || ret > max_uV)
- return -EINVAL;
-
- *s = selector;
if (rdev_get_id(rdev) == MAX8660_V6)
return max8660_write(max8660, MAX8660_L12VCR, 0xf0, selector);
else
- return max8660_write(max8660, MAX8660_L12VCR, 0x0f, selector << 4);
+ return max8660_write(max8660, MAX8660_L12VCR, 0x0f,
+ selector << 4);
}
static struct regulator_ops max8660_ldo67_ops = {
@@ -289,8 +247,9 @@ static struct regulator_ops max8660_ldo67_ops = {
.enable = max8660_ldo67_enable,
.disable = max8660_ldo67_disable,
.list_voltage = regulator_list_voltage_linear,
+ .map_voltage = regulator_map_voltage_linear,
.get_voltage_sel = max8660_ldo67_get_voltage_sel,
- .set_voltage = max8660_ldo67_set,
+ .set_voltage_sel = max8660_ldo67_set_voltage_sel,
};
static const struct regulator_desc max8660_reg[] = {
--
1.7.5.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear()
2012-05-15 13:41 [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear() Axel Lin
2012-05-15 13:42 ` [PATCH RFT 2/3] regulator: max8660: Convert to get_voltage_sel Axel Lin
2012-05-15 13:43 ` [PATCH RFT 3/3] regulator: max8660: Convert to set_voltage_sel and regulator_map_voltage_linear Axel Lin
@ 2012-05-15 17:36 ` Mark Brown
2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2012-05-15 17:36 UTC (permalink / raw)
To: Axel Lin; +Cc: linux-kernel, Wolfram Sang, Liam Girdwood
[-- Attachment #1: Type: text/plain, Size: 127 bytes --]
On Tue, May 15, 2012 at 09:41:18PM +0800, Axel Lin wrote:
> Signed-off-by: Axel Lin <axel.lin@gmail.com>
Applied all, thanks.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-05-15 17:36 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-15 13:41 [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear() Axel Lin
2012-05-15 13:42 ` [PATCH RFT 2/3] regulator: max8660: Convert to get_voltage_sel Axel Lin
2012-05-15 13:43 ` [PATCH RFT 3/3] regulator: max8660: Convert to set_voltage_sel and regulator_map_voltage_linear Axel Lin
2012-05-15 17:36 ` [PATCH RFT 1/3] regulator: max8660: Convert to regulator_list_voltage_linear() Mark Brown
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox