regulator: cpcap: Add OF mode mapping
authorSebastian Reichel <sebastian.reichel@collabora.co.uk>
Mon, 10 Jul 2017 14:33:40 +0000 (16:33 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 17 Jul 2017 11:12:58 +0000 (12:12 +0100)
Add device tree mode mapping capabilities to the cpcap driver.

Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/cpcap-regulator.c

index ce1cab320f6f418b946faa54d7bf2c3853f8f9f3..f541b80f1b540ae12d47ece8de124b74839b1acf 100644 (file)
@@ -123,6 +123,7 @@ struct cpcap_regulator {
                .enable_val = (mode_val),                               \
                .disable_val = (off_val),                               \
                .ramp_delay = (volt_trans_time),                        \
+               .of_map_mode = cpcap_map_mode,                          \
        },                                                              \
        .assign_reg = (assignment_reg),                                 \
        .assign_mask = (assignment_mask),                               \
@@ -213,6 +214,18 @@ static int cpcap_regulator_disable(struct regulator_dev *rdev)
        return error;
 }
 
+static unsigned int cpcap_map_mode(unsigned int mode)
+{
+       switch (mode) {
+       case CPCAP_BIT_AUDIO_NORMAL_MODE:
+               return REGULATOR_MODE_NORMAL;
+       case CPCAP_BIT_AUDIO_LOW_PWR:
+               return REGULATOR_MODE_STANDBY;
+       default:
+               return -EINVAL;
+       }
+}
+
 static unsigned int cpcap_regulator_get_mode(struct regulator_dev *rdev)
 {
        int value;