From: Axel Lin <axel.lin@ingics.com>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Anuj Aggarwal <anuj.aggarwal@ti.com>,
Liam Girdwood <lgirdwood@gmail.com>,
linux-kernel@vger.kernel.org,
Marcus Folkesson <marcus.folkesson@gmail.com>,
Marek Vasut <marek.vasut@gmail.com>
Subject: [PATCH] regulator: tps65023: Use [set|get]_voltage_sel_regmap instead of open coded
Date: Tue, 23 Apr 2013 11:54:48 +0800 [thread overview]
Message-ID: <1366689288.25625.3.camel@phoenix> (raw)
Simply the [get|set]_voltage_sel implementation by using
regulator_[set|get]_voltage_sel_regmap instead of open coded.
Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
drivers/regulator/tps65023-regulator.c | 31 +++++++++----------------------
1 file changed, 9 insertions(+), 22 deletions(-)
diff --git a/drivers/regulator/tps65023-regulator.c b/drivers/regulator/tps65023-regulator.c
index 9b9af6d..d91e230 100644
--- a/drivers/regulator/tps65023-regulator.c
+++ b/drivers/regulator/tps65023-regulator.c
@@ -154,20 +154,15 @@ struct tps_driver_data {
static int tps65023_dcdc_get_voltage_sel(struct regulator_dev *dev)
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
- int ret;
- int data, dcdc = rdev_get_id(dev);
+ int dcdc = rdev_get_id(dev);
if (dcdc < TPS65023_DCDC_1 || dcdc > TPS65023_DCDC_3)
return -EINVAL;
- if (dcdc == tps->core_regulator) {
- ret = regmap_read(tps->regmap, TPS65023_REG_DEF_CORE, &data);
- if (ret != 0)
- return ret;
- data &= (tps->info[dcdc]->table_len - 1);
- return data;
- } else
+ if (dcdc != tps->core_regulator)
return 0;
+
+ return regulator_get_voltage_sel_regmap(dev);
}
static int tps65023_dcdc_set_voltage_sel(struct regulator_dev *dev,
@@ -175,23 +170,11 @@ static int tps65023_dcdc_set_voltage_sel(struct regulator_dev *dev,
{
struct tps_pmic *tps = rdev_get_drvdata(dev);
int dcdc = rdev_get_id(dev);
- int ret;
if (dcdc != tps->core_regulator)
return -EINVAL;
- ret = regmap_write(tps->regmap, TPS65023_REG_DEF_CORE, selector);
- if (ret)
- goto out;
-
- /* Tell the chip that we have changed the value in DEFCORE
- * and its time to update the core voltage
- */
- ret = regmap_update_bits(tps->regmap, TPS65023_REG_CON_CTRL2,
- TPS65023_REG_CTRL2_GO, TPS65023_REG_CTRL2_GO);
-
-out:
- return ret;
+ return regulator_set_voltage_sel_regmap(dev, selector);
}
/* Operations permitted on VDCDCx */
@@ -285,6 +268,10 @@ static int tps_65023_probe(struct i2c_client *client,
default: /* DCDCx */
tps->desc[i].enable_mask =
1 << (TPS65023_NUM_REGULATOR - i);
+ tps->desc[i].vsel_reg = TPS65023_REG_DEF_CORE;
+ tps->desc[i].vsel_mask = info->table_len - 1;
+ tps->desc[i].apply_reg = TPS65023_REG_CON_CTRL2;
+ tps->desc[i].apply_bit = TPS65023_REG_CTRL2_GO;
}
config.dev = &client->dev;
--
1.7.10.4
reply other threads:[~2013-04-23 3:54 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1366689288.25625.3.camel@phoenix \
--to=axel.lin@ingics.com \
--cc=anuj.aggarwal@ti.com \
--cc=broonie@opensource.wolfsonmicro.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=marcus.folkesson@gmail.com \
--cc=marek.vasut@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.