aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/mc13xxx-regulator-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/regulator/mc13xxx-regulator-core.c')
-rw-r--r--drivers/regulator/mc13xxx-regulator-core.c37
1 files changed, 8 insertions, 29 deletions
diff --git a/drivers/regulator/mc13xxx-regulator-core.c b/drivers/regulator/mc13xxx-regulator-core.c
index 05b971726ffa..afba024953e1 100644
--- a/drivers/regulator/mc13xxx-regulator-core.c
+++ b/drivers/regulator/mc13xxx-regulator-core.c
@@ -33,17 +33,12 @@ static int mc13xxx_regulator_enable(struct regulator_dev *rdev)
33 struct mc13xxx_regulator_priv *priv = rdev_get_drvdata(rdev); 33 struct mc13xxx_regulator_priv *priv = rdev_get_drvdata(rdev);
34 struct mc13xxx_regulator *mc13xxx_regulators = priv->mc13xxx_regulators; 34 struct mc13xxx_regulator *mc13xxx_regulators = priv->mc13xxx_regulators;
35 int id = rdev_get_id(rdev); 35 int id = rdev_get_id(rdev);
36 int ret;
37 36
38 dev_dbg(rdev_get_dev(rdev), "%s id: %d\n", __func__, id); 37 dev_dbg(rdev_get_dev(rdev), "%s id: %d\n", __func__, id);
39 38
40 mc13xxx_lock(priv->mc13xxx); 39 return mc13xxx_reg_rmw(priv->mc13xxx, mc13xxx_regulators[id].reg,
41 ret = mc13xxx_reg_rmw(priv->mc13xxx, mc13xxx_regulators[id].reg, 40 mc13xxx_regulators[id].enable_bit,
42 mc13xxx_regulators[id].enable_bit, 41 mc13xxx_regulators[id].enable_bit);
43 mc13xxx_regulators[id].enable_bit);
44 mc13xxx_unlock(priv->mc13xxx);
45
46 return ret;
47} 42}
48 43
49static int mc13xxx_regulator_disable(struct regulator_dev *rdev) 44static int mc13xxx_regulator_disable(struct regulator_dev *rdev)
@@ -51,16 +46,11 @@ static int mc13xxx_regulator_disable(struct regulator_dev *rdev)
51 struct mc13xxx_regulator_priv *priv = rdev_get_drvdata(rdev); 46 struct mc13xxx_regulator_priv *priv = rdev_get_drvdata(rdev);
52 struct mc13xxx_regulator *mc13xxx_regulators = priv->mc13xxx_regulators; 47 struct mc13xxx_regulator *mc13xxx_regulators = priv->mc13xxx_regulators;
53 int id = rdev_get_id(rdev); 48 int id = rdev_get_id(rdev);
54 int ret;
55 49
56 dev_dbg(rdev_get_dev(rdev), "%s id: %d\n", __func__, id); 50 dev_dbg(rdev_get_dev(rdev), "%s id: %d\n", __func__, id);
57 51
58 mc13xxx_lock(priv->mc13xxx); 52 return mc13xxx_reg_rmw(priv->mc13xxx, mc13xxx_regulators[id].reg,
59 ret = mc13xxx_reg_rmw(priv->mc13xxx, mc13xxx_regulators[id].reg, 53 mc13xxx_regulators[id].enable_bit, 0);
60 mc13xxx_regulators[id].enable_bit, 0);
61 mc13xxx_unlock(priv->mc13xxx);
62
63 return ret;
64} 54}
65 55
66static int mc13xxx_regulator_is_enabled(struct regulator_dev *rdev) 56static int mc13xxx_regulator_is_enabled(struct regulator_dev *rdev)
@@ -70,10 +60,7 @@ static int mc13xxx_regulator_is_enabled(struct regulator_dev *rdev)
70 int ret, id = rdev_get_id(rdev); 60 int ret, id = rdev_get_id(rdev);
71 unsigned int val; 61 unsigned int val;
72 62
73 mc13xxx_lock(priv->mc13xxx);
74 ret = mc13xxx_reg_read(priv->mc13xxx, mc13xxx_regulators[id].reg, &val); 63 ret = mc13xxx_reg_read(priv->mc13xxx, mc13xxx_regulators[id].reg, &val);
75 mc13xxx_unlock(priv->mc13xxx);
76
77 if (ret) 64 if (ret)
78 return ret; 65 return ret;
79 66
@@ -86,15 +73,10 @@ static int mc13xxx_regulator_set_voltage_sel(struct regulator_dev *rdev,
86 struct mc13xxx_regulator_priv *priv = rdev_get_drvdata(rdev); 73 struct mc13xxx_regulator_priv *priv = rdev_get_drvdata(rdev);
87 struct mc13xxx_regulator *mc13xxx_regulators = priv->mc13xxx_regulators; 74 struct mc13xxx_regulator *mc13xxx_regulators = priv->mc13xxx_regulators;
88 int id = rdev_get_id(rdev); 75 int id = rdev_get_id(rdev);
89 int ret;
90 76
91 mc13xxx_lock(priv->mc13xxx); 77 return mc13xxx_reg_rmw(priv->mc13xxx, mc13xxx_regulators[id].vsel_reg,
92 ret = mc13xxx_reg_rmw(priv->mc13xxx, mc13xxx_regulators[id].vsel_reg, 78 mc13xxx_regulators[id].vsel_mask,
93 mc13xxx_regulators[id].vsel_mask, 79 selector << mc13xxx_regulators[id].vsel_shift);
94 selector << mc13xxx_regulators[id].vsel_shift);
95 mc13xxx_unlock(priv->mc13xxx);
96
97 return ret;
98} 80}
99 81
100static int mc13xxx_regulator_get_voltage(struct regulator_dev *rdev) 82static int mc13xxx_regulator_get_voltage(struct regulator_dev *rdev)
@@ -106,11 +88,8 @@ static int mc13xxx_regulator_get_voltage(struct regulator_dev *rdev)
106 88
107 dev_dbg(rdev_get_dev(rdev), "%s id: %d\n", __func__, id); 89 dev_dbg(rdev_get_dev(rdev), "%s id: %d\n", __func__, id);
108 90
109 mc13xxx_lock(priv->mc13xxx);
110 ret = mc13xxx_reg_read(priv->mc13xxx, 91 ret = mc13xxx_reg_read(priv->mc13xxx,
111 mc13xxx_regulators[id].vsel_reg, &val); 92 mc13xxx_regulators[id].vsel_reg, &val);
112 mc13xxx_unlock(priv->mc13xxx);
113
114 if (ret) 93 if (ret)
115 return ret; 94 return ret;
116 95