aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgi Djakov <georgi.djakov@linaro.org>2015-06-01 19:23:00 +0300
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2016-05-17 18:02:42 +0100
commit8b8ef89a960f3567837b5b50c086ba0c1c6f2991 (patch)
treea09120da9684dde398636451f3b56d7537160e76
parentf7db9e57c1eabb7a2501b1d74683f83e06975aa0 (diff)
regulator: smd: Make set_{corner,floor} work with regulator struct
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
-rw-r--r--drivers/regulator/qcom_smd-regulator.c15
-rw-r--r--include/linux/regulator/qcom_smd-regulator.h8
2 files changed, 13 insertions, 10 deletions
diff --git a/drivers/regulator/qcom_smd-regulator.c b/drivers/regulator/qcom_smd-regulator.c
index 3cc8786fe94bc..dc0be23dcd3ac 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -22,6 +22,8 @@
#include <linux/soc/qcom/smd-rpm.h>
#include <linux/regulator/qcom_smd-regulator.h>
+#include "internal.h"
+
struct qcom_rpm_reg {
struct device *dev;
@@ -62,9 +64,9 @@ static int rpm_reg_write_active(struct qcom_rpm_reg *vreg,
req, size);
}
-int qcom_rpm_set_floor(struct regulator_dev *rdev,
- int floor)
+int qcom_rpm_set_floor(struct regulator *regulator, int floor)
{
+ struct regulator_dev *rdev = regulator->rdev;
struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev);
struct rpm_regulator_req req;
int ret;
@@ -77,16 +79,16 @@ int qcom_rpm_set_floor(struct regulator_dev *rdev,
return -EINVAL;
ret = rpm_reg_write_active(vreg, &req, sizeof(req));
- if (!ret)
+ if (ret)
dev_err(rdev_get_dev(rdev), "Failed to set floor %d\n", floor);
return ret;
}
EXPORT_SYMBOL(qcom_rpm_set_floor);
-int qcom_rpm_set_corner(struct regulator_dev *rdev,
- int corner)
+int qcom_rpm_set_corner(struct regulator *regulator, int corner)
{
+ struct regulator_dev *rdev = regulator->rdev;
struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev);
struct rpm_regulator_req req;
int ret;
@@ -98,8 +100,9 @@ int qcom_rpm_set_corner(struct regulator_dev *rdev,
if (corner < RPM_MIN_FLOOR_CORNER || corner > RPM_MAX_FLOOR_CORNER)
return -EINVAL;
+ pr_info("Set corner to %d\n", corner);
ret = rpm_reg_write_active(vreg, &req, sizeof(req));
- if (!ret)
+ if (ret)
dev_err(rdev_get_dev(rdev), "Failed to set corner %d\n", corner);
return ret;
diff --git a/include/linux/regulator/qcom_smd-regulator.h b/include/linux/regulator/qcom_smd-regulator.h
index b1201d7378d77..a71b6adc64ba8 100644
--- a/include/linux/regulator/qcom_smd-regulator.h
+++ b/include/linux/regulator/qcom_smd-regulator.h
@@ -13,15 +13,15 @@
#define __QCOM_SMD_REGULATOR_H_
#ifdef CONFIG_REGULATOR_QCOM_SMD_RPM
-int qcom_rpm_set_floor(struct regulator_dev *rdev, int floor);
-int qcom_rpm_set_corner(struct regulator_dev *rdev, int corner);
+int qcom_rpm_set_floor(struct regulator *regulator, int floor);
+int qcom_rpm_set_corner(struct regulator *regulator, int corner);
#else
-static inline int qcom_rpm_set_floor(struct regulator_dev *rdev, int floor)
+static inline int qcom_rpm_set_floor(struct regulator *regulator, int floor)
{
return -EINVAL;
}
-static inline int qcom_rpm_set_corner(struct regulator_dev *rdev, int floor)
+static inline int qcom_rpm_set_corner(struct regulator *regulator, int corner)
{
return -EINVAL;
}