regulator: mt6397: Implement of_map_mode
authorAnand K Mistry <amistry@google.com>
Thu, 2 Jul 2020 06:23:19 +0000 (16:23 +1000)
committerMark Brown <broonie@kernel.org>
Thu, 2 Jul 2020 14:25:45 +0000 (15:25 +0100)
Implementing of_map_mode is necessary to be able to specify operating
modes in the devicetree using 'regulator-allowed-modes', and to change
regulator modes.

Signed-off-by: Anand K Mistry <amistry@google.com>
Link: https://lore.kernel.org/r/20200702162231.v2.3.I7acfb591bfacf3b1b04a3d388385098bfcc9fecd@changeid
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/mt6397-regulator.c

index d51e98ce1138a7466b52a873af2bf73ebc82da37..0a30df5e414fc5677627490d787e60dac771e426 100644 (file)
@@ -53,6 +53,7 @@ struct mt6397_regulator_info {
                .vsel_mask = vosel_mask,                                \
                .enable_reg = enreg,                                    \
                .enable_mask = BIT(0),                                  \
+               .of_map_mode = mt6397_map_mode,                         \
        },                                                              \
        .qi = BIT(13),                                                  \
        .vselon_reg = voselon,                                          \
@@ -144,6 +145,18 @@ static const unsigned int ldo_volt_table7[] = {
        1300000, 1500000, 1800000, 2000000, 2500000, 2800000, 3000000, 3300000,
 };
 
+static unsigned int mt6397_map_mode(unsigned int mode)
+{
+       switch (mode) {
+       case MT6397_BUCK_MODE_AUTO:
+               return REGULATOR_MODE_NORMAL;
+       case MT6397_BUCK_MODE_FORCE_PWM:
+               return REGULATOR_MODE_FAST;
+       default:
+               return REGULATOR_MODE_INVALID;
+       }
+}
+
 static int mt6397_regulator_set_mode(struct regulator_dev *rdev,
                                     unsigned int mode)
 {