summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgi Djakov <georgi.djakov@linaro.org>2015-06-01 19:23:00 +0300
committerSrinivas Kandagatla <srinivas.kandagatla@linaro.org>2015-09-01 09:22:09 +0100
commit6b1f3530ab09928ad7f09219b9e3861f455a4c92 (patch)
tree0ad84ac39218b3e777ec03841bbe5bf3d574a71c
parentfe23b1fd3f3b7ae59ec7169afe9b8a27fb84e63b (diff)
downloadlinux-6b1f3530ab09928ad7f09219b9e3861f455a4c92.tar.gz
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 fe4d4c05c3c1..0c085b71f279 100644
--- a/drivers/regulator/qcom_smd-regulator.c
+++ b/drivers/regulator/qcom_smd-regulator.c
@@ -22,6 +22,8 @@
#include <linux/regulator/qcom_smd-regulator.h>
#include <linux/mfd/qcom-smd-rpm.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 b1201d7378d7..a71b6adc64ba 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;
}