aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/regulator/core.c')
-rw-r--r--drivers/regulator/core.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index 432faa5cb8af..58452ac0f165 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -724,6 +724,10 @@ static void print_constraints(struct regulator_dev *rdev)
724 count += sprintf(buf + count, "at %d mV ", ret / 1000); 724 count += sprintf(buf + count, "at %d mV ", ret / 1000);
725 } 725 }
726 726
727 if (constraints->uV_offset)
728 count += sprintf(buf, "%dmV offset ",
729 constraints->uV_offset / 1000);
730
727 if (constraints->min_uA && constraints->max_uA) { 731 if (constraints->min_uA && constraints->max_uA) {
728 if (constraints->min_uA == constraints->max_uA) 732 if (constraints->min_uA == constraints->max_uA)
729 count += sprintf(buf + count, "%d mA ", 733 count += sprintf(buf + count, "%d mA ",
@@ -1641,6 +1645,9 @@ static int _regulator_do_set_voltage(struct regulator_dev *rdev,
1641 1645
1642 trace_regulator_set_voltage(rdev_get_name(rdev), min_uV, max_uV); 1646 trace_regulator_set_voltage(rdev_get_name(rdev), min_uV, max_uV);
1643 1647
1648 min_uV += rdev->constraints->uV_offset;
1649 max_uV += rdev->constraints->uV_offset;
1650
1644 if (rdev->desc->ops->set_voltage) { 1651 if (rdev->desc->ops->set_voltage) {
1645 ret = rdev->desc->ops->set_voltage(rdev, min_uV, max_uV, 1652 ret = rdev->desc->ops->set_voltage(rdev, min_uV, max_uV,
1646 &selector); 1653 &selector);
@@ -1865,18 +1872,20 @@ EXPORT_SYMBOL_GPL(regulator_sync_voltage);
1865 1872
1866static int _regulator_get_voltage(struct regulator_dev *rdev) 1873static int _regulator_get_voltage(struct regulator_dev *rdev)
1867{ 1874{
1868 int sel; 1875 int sel, ret;
1869 1876
1870 if (rdev->desc->ops->get_voltage_sel) { 1877 if (rdev->desc->ops->get_voltage_sel) {
1871 sel = rdev->desc->ops->get_voltage_sel(rdev); 1878 sel = rdev->desc->ops->get_voltage_sel(rdev);
1872 if (sel < 0) 1879 if (sel < 0)
1873 return sel; 1880 return sel;
1874 return rdev->desc->ops->list_voltage(rdev, sel); 1881 ret = rdev->desc->ops->list_voltage(rdev, sel);
1875 } 1882 }
1876 if (rdev->desc->ops->get_voltage) 1883 if (rdev->desc->ops->get_voltage)
1877 return rdev->desc->ops->get_voltage(rdev); 1884 ret = rdev->desc->ops->get_voltage(rdev);
1878 else 1885 else
1879 return -EINVAL; 1886 return -EINVAL;
1887
1888 return ret - rdev->constraints->uV_offset;
1880} 1889}
1881 1890
1882/** 1891/**