Commit db13c040 authored by Haojian Zhuang's avatar Haojian Zhuang Committed by Samuel Ortiz

regulator: Enable max8925 i2c sequence for control

Force to enable i2c as power up/down sequence. Otherwise, SD/LDO can't
be enabled or disabled via accessing i2c bus.
Signed-off-by: default avatarHaojian Zhuang <haojian.zhuang@marvell.com>
Cc: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 2402ca5e
...@@ -23,6 +23,10 @@ ...@@ -23,6 +23,10 @@
#define SD1_DVM_SHIFT 5 /* SDCTL1 bit5 */ #define SD1_DVM_SHIFT 5 /* SDCTL1 bit5 */
#define SD1_DVM_EN 6 /* SDV1 bit 6 */ #define SD1_DVM_EN 6 /* SDV1 bit 6 */
/* bit definitions in SD & LDO control registers */
#define OUT_ENABLE 0x1f /* Power U/D sequence as I2C */
#define OUT_DISABLE 0x1e /* Power U/D sequence as I2C */
struct max8925_regulator_info { struct max8925_regulator_info {
struct regulator_desc desc; struct regulator_desc desc;
struct regulator_dev *regulator; struct regulator_dev *regulator;
...@@ -93,8 +97,8 @@ static int max8925_enable(struct regulator_dev *rdev) ...@@ -93,8 +97,8 @@ static int max8925_enable(struct regulator_dev *rdev)
struct max8925_regulator_info *info = rdev_get_drvdata(rdev); struct max8925_regulator_info *info = rdev_get_drvdata(rdev);
return max8925_set_bits(info->i2c, info->enable_reg, return max8925_set_bits(info->i2c, info->enable_reg,
1 << info->enable_bit, OUT_ENABLE << info->enable_bit,
1 << info->enable_bit); OUT_ENABLE << info->enable_bit);
} }
static int max8925_disable(struct regulator_dev *rdev) static int max8925_disable(struct regulator_dev *rdev)
...@@ -102,7 +106,8 @@ static int max8925_disable(struct regulator_dev *rdev) ...@@ -102,7 +106,8 @@ static int max8925_disable(struct regulator_dev *rdev)
struct max8925_regulator_info *info = rdev_get_drvdata(rdev); struct max8925_regulator_info *info = rdev_get_drvdata(rdev);
return max8925_set_bits(info->i2c, info->enable_reg, return max8925_set_bits(info->i2c, info->enable_reg,
1 << info->enable_bit, 0); OUT_ENABLE << info->enable_bit,
OUT_DISABLE << info->enable_bit);
} }
static int max8925_is_enabled(struct regulator_dev *rdev) static int max8925_is_enabled(struct regulator_dev *rdev)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment