Without a of_map_mode implementation, the regulator-allowed-modes
devicetree field is skipped, and attempting to change the regulator mode
results in an error:
[    1.439165] vpca15: mode operation not allowed

Signed-off-by: Anand K Mistry <[email protected]>

---

 drivers/regulator/mt6397-regulator.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/regulator/mt6397-regulator.c 
b/drivers/regulator/mt6397-regulator.c
index 269c2a6028e8..5c60b52addf1 100644
--- a/drivers/regulator/mt6397-regulator.c
+++ b/drivers/regulator/mt6397-regulator.c
@@ -55,6 +55,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,                                          \
@@ -146,6 +147,12 @@ static const unsigned int ldo_volt_table7[] = {
        1300000, 1500000, 1800000, 2000000, 2500000, 2800000, 3000000, 3300000,
 };
 
+static unsigned int mt6397_map_mode(unsigned int mode)
+{
+       return mode == MT6397_BUCK_MODE_AUTO ?
+               REGULATOR_MODE_NORMAL : REGULATOR_MODE_FAST;
+}
+
 static int mt6397_regulator_set_mode(struct regulator_dev *rdev,
                                     unsigned int mode)
 {
-- 
2.27.0.212.ge8ba1cc988-goog

Reply via email to