regulator: s5m8767: Implement voltage setting for BUCK7/8 regulators
authorKrzysztof Kozlowski <k.kozlowski@samsung.com>
Tue, 10 Dec 2013 09:09:43 +0000 (10:09 +0100)
committerMark Brown <broonie@linaro.org>
Wed, 11 Dec 2013 22:48:54 +0000 (22:48 +0000)
Voltage setting for BUCK7 and BUCK8 was not supported by s5m8767 driver.
If they were configured in DTS then the driver probing would fail with
EINVAL:
[    0.288474] VCC_SUB_1.35V: failed to apply 1350000uV constraint
[    0.288671] s5m8767-pmic s5m8767-pmic: regulator init failed for 35
[    0.294931] s5m8767-pmic: probe of s5m8767-pmic failed with error -22

This patch adds support for BUCK7 and BUCK8 regulators using standard
regmap get/set voltage sel functions.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Reviewed-by: Sachin Kamat <sachin.kamat@linaro.org>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/regulator/s5m8767.c

index ef4da44..9b14faa 100644 (file)
@@ -120,8 +120,8 @@ static const struct sec_voltage_desc *reg_voltage_map[] = {
        [S5M8767_BUCK4] = &buck_voltage_val2,
        [S5M8767_BUCK5] = &buck_voltage_val1,
        [S5M8767_BUCK6] = &buck_voltage_val1,
-       [S5M8767_BUCK7] = NULL,
-       [S5M8767_BUCK8] = NULL,
+       [S5M8767_BUCK7] = &buck_voltage_val3,
+       [S5M8767_BUCK8] = &buck_voltage_val3,
        [S5M8767_BUCK9] = &buck_voltage_val3,
 };
 
@@ -418,9 +418,12 @@ static struct regulator_ops s5m8767_ops = {
 };
 
 static struct regulator_ops s5m8767_buck78_ops = {
+       .list_voltage           = regulator_list_voltage_linear,
        .is_enabled             = s5m8767_reg_is_enabled,
        .enable                 = s5m8767_reg_enable,
        .disable                = s5m8767_reg_disable,
+       .get_voltage_sel        = regulator_get_voltage_sel_regmap,
+       .set_voltage_sel        = regulator_set_voltage_sel_regmap,
 };
 
 #define s5m8767_regulator_desc(_name) {                \