public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] regulator: wm8350: Convert wm8350_dcdc_ops to regulator_list_voltage_linear
@ 2012-05-23 14:59 Axel Lin
  2012-05-23 15:01 ` [PATCH 2/2] regulator: wm8350: Convert wm8350_dcdc_ops to set_voltage_sel and regulator_map_voltage_linear Axel Lin
  2012-05-23 17:13 ` [PATCH 1/2] regulator: wm8350: Convert wm8350_dcdc_ops to regulator_list_voltage_linear Mark Brown
  0 siblings, 2 replies; 3+ messages in thread
From: Axel Lin @ 2012-05-23 14:59 UTC (permalink / raw)
  To: linux-kernel; +Cc: Liam Girdwood, Mark Brown

Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
 drivers/regulator/wm8350-regulator.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/drivers/regulator/wm8350-regulator.c b/drivers/regulator/wm8350-regulator.c
index 94e550d..6d143a918 100644
--- a/drivers/regulator/wm8350-regulator.c
+++ b/drivers/regulator/wm8350-regulator.c
@@ -433,14 +433,6 @@ static int wm8350_dcdc_get_voltage_sel(struct regulator_dev *rdev)
 	return wm8350_reg_read(wm8350, volt_reg) & WM8350_DC1_VSEL_MASK;
 }
 
-static int wm8350_dcdc_list_voltage(struct regulator_dev *rdev,
-				    unsigned selector)
-{
-	if (selector > WM8350_DCDC_MAX_VSEL)
-		return -EINVAL;
-	return wm8350_dcdc_val_to_mvolts(selector) * 1000;
-}
-
 static int wm8350_dcdc_set_suspend_voltage(struct regulator_dev *rdev, int uV)
 {
 	struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
@@ -1226,7 +1218,7 @@ static int wm8350_ldo_is_enabled(struct regulator_dev *rdev)
 static struct regulator_ops wm8350_dcdc_ops = {
 	.set_voltage = wm8350_dcdc_set_voltage,
 	.get_voltage_sel = wm8350_dcdc_get_voltage_sel,
-	.list_voltage = wm8350_dcdc_list_voltage,
+	.list_voltage = regulator_list_voltage_linear,
 	.enable = wm8350_dcdc_enable,
 	.disable = wm8350_dcdc_disable,
 	.get_mode = wm8350_dcdc_get_mode,
@@ -1277,6 +1269,8 @@ static const struct regulator_desc wm8350_reg[NUM_WM8350_REGULATORS] = {
 		.irq = WM8350_IRQ_UV_DC1,
 		.type = REGULATOR_VOLTAGE,
 		.n_voltages = WM8350_DCDC_MAX_VSEL + 1,
+		.min_uV = 850000,
+		.uV_step = 25000,
 		.owner = THIS_MODULE,
 	},
 	{
@@ -1294,6 +1288,8 @@ static const struct regulator_desc wm8350_reg[NUM_WM8350_REGULATORS] = {
 		.irq = WM8350_IRQ_UV_DC3,
 		.type = REGULATOR_VOLTAGE,
 		.n_voltages = WM8350_DCDC_MAX_VSEL + 1,
+		.min_uV = 850000,
+		.uV_step = 25000,
 		.owner = THIS_MODULE,
 	},
 	{
@@ -1303,6 +1299,8 @@ static const struct regulator_desc wm8350_reg[NUM_WM8350_REGULATORS] = {
 		.irq = WM8350_IRQ_UV_DC4,
 		.type = REGULATOR_VOLTAGE,
 		.n_voltages = WM8350_DCDC_MAX_VSEL + 1,
+		.min_uV = 850000,
+		.uV_step = 25000,
 		.owner = THIS_MODULE,
 	},
 	{
@@ -1320,6 +1318,8 @@ static const struct regulator_desc wm8350_reg[NUM_WM8350_REGULATORS] = {
 		.irq = WM8350_IRQ_UV_DC6,
 		.type = REGULATOR_VOLTAGE,
 		.n_voltages = WM8350_DCDC_MAX_VSEL + 1,
+		.min_uV = 850000,
+		.uV_step = 25000,
 		.owner = THIS_MODULE,
 	},
 	{
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] regulator: wm8350: Convert wm8350_dcdc_ops to set_voltage_sel and regulator_map_voltage_linear
  2012-05-23 14:59 [PATCH 1/2] regulator: wm8350: Convert wm8350_dcdc_ops to regulator_list_voltage_linear Axel Lin
@ 2012-05-23 15:01 ` Axel Lin
  2012-05-23 17:13 ` [PATCH 1/2] regulator: wm8350: Convert wm8350_dcdc_ops to regulator_list_voltage_linear Mark Brown
  1 sibling, 0 replies; 3+ messages in thread
From: Axel Lin @ 2012-05-23 15:01 UTC (permalink / raw)
  To: linux-kernel; +Cc: Liam Girdwood, Mark Brown

Signed-off-by: Axel Lin <axel.lin@gmail.com>
---
 drivers/regulator/wm8350-regulator.c |   30 ++++++------------------------
 1 files changed, 6 insertions(+), 24 deletions(-)

diff --git a/drivers/regulator/wm8350-regulator.c b/drivers/regulator/wm8350-regulator.c
index 6d143a918..3f451e8 100644
--- a/drivers/regulator/wm8350-regulator.c
+++ b/drivers/regulator/wm8350-regulator.c
@@ -125,11 +125,6 @@ static inline unsigned int wm8350_ldo_mvolts_to_val(int mV)
 		return ((mV - 1800) / 100) + 16;
 }
 
-static inline int wm8350_dcdc_val_to_mvolts(unsigned int val)
-{
-	return (val * 25) + 850;
-}
-
 static inline unsigned int wm8350_dcdc_mvolts_to_val(int mV)
 {
 	return (mV - 850) / 25;
@@ -359,25 +354,13 @@ int wm8350_isink_set_flash(struct wm8350 *wm8350, int isink, u16 mode,
 }
 EXPORT_SYMBOL_GPL(wm8350_isink_set_flash);
 
-static int wm8350_dcdc_set_voltage(struct regulator_dev *rdev, int min_uV,
-				   int max_uV, unsigned *selector)
+static int wm8350_dcdc_set_voltage_sel(struct regulator_dev *rdev,
+				       unsigned selector)
 {
 	struct wm8350 *wm8350 = rdev_get_drvdata(rdev);
-	int volt_reg, dcdc = rdev_get_id(rdev), mV,
-		min_mV = min_uV / 1000, max_mV = max_uV / 1000;
+	int volt_reg, dcdc = rdev_get_id(rdev);
 	u16 val;
 
-	if (min_mV < 850 || min_mV > 4025)
-		return -EINVAL;
-	if (max_mV < 850 || max_mV > 4025)
-		return -EINVAL;
-
-	/* step size is 25mV */
-	mV = (min_mV - 826) / 25;
-	if (wm8350_dcdc_val_to_mvolts(mV) > max_mV)
-		return -EINVAL;
-	BUG_ON(wm8350_dcdc_val_to_mvolts(mV) < min_mV);
-
 	switch (dcdc) {
 	case WM8350_DCDC_1:
 		volt_reg = WM8350_DCDC1_CONTROL;
@@ -397,11 +380,9 @@ static int wm8350_dcdc_set_voltage(struct regulator_dev *rdev, int min_uV,
 		return -EINVAL;
 	}
 
-	*selector = mV;
-
 	/* all DCDCs have same mV bits */
 	val = wm8350_reg_read(wm8350, volt_reg) & ~WM8350_DC1_VSEL_MASK;
-	wm8350_reg_write(wm8350, volt_reg, val | mV);
+	wm8350_reg_write(wm8350, volt_reg, val | selector);
 	return 0;
 }
 
@@ -1216,9 +1197,10 @@ static int wm8350_ldo_is_enabled(struct regulator_dev *rdev)
 }
 
 static struct regulator_ops wm8350_dcdc_ops = {
-	.set_voltage = wm8350_dcdc_set_voltage,
+	.set_voltage_sel = wm8350_dcdc_set_voltage_sel,
 	.get_voltage_sel = wm8350_dcdc_get_voltage_sel,
 	.list_voltage = regulator_list_voltage_linear,
+	.map_voltage = regulator_map_voltage_linear,
 	.enable = wm8350_dcdc_enable,
 	.disable = wm8350_dcdc_disable,
 	.get_mode = wm8350_dcdc_get_mode,
-- 
1.7.5.4




^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH 1/2] regulator: wm8350: Convert wm8350_dcdc_ops to regulator_list_voltage_linear
  2012-05-23 14:59 [PATCH 1/2] regulator: wm8350: Convert wm8350_dcdc_ops to regulator_list_voltage_linear Axel Lin
  2012-05-23 15:01 ` [PATCH 2/2] regulator: wm8350: Convert wm8350_dcdc_ops to set_voltage_sel and regulator_map_voltage_linear Axel Lin
@ 2012-05-23 17:13 ` Mark Brown
  1 sibling, 0 replies; 3+ messages in thread
From: Mark Brown @ 2012-05-23 17:13 UTC (permalink / raw)
  To: Axel Lin; +Cc: linux-kernel, Liam Girdwood

[-- Attachment #1: Type: text/plain, Size: 382 bytes --]

On Wed, May 23, 2012 at 10:59:26PM +0800, Axel Lin wrote:

> Signed-off-by: Axel Lin <axel.lin@gmail.com>

Versions of both of these are already queued for 3.6 as part of a series
of changes converting the driver to use the new regmap helpers.  They're
not in yet as the core driver conversion to regmap is only going in this
merge window, once mfd is merged in -rc1 they'll go in.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-05-23 17:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-23 14:59 [PATCH 1/2] regulator: wm8350: Convert wm8350_dcdc_ops to regulator_list_voltage_linear Axel Lin
2012-05-23 15:01 ` [PATCH 2/2] regulator: wm8350: Convert wm8350_dcdc_ops to set_voltage_sel and regulator_map_voltage_linear Axel Lin
2012-05-23 17:13 ` [PATCH 1/2] regulator: wm8350: Convert wm8350_dcdc_ops 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