Skip to content

Commit

Permalink
regulator: Enable max8925 i2c sequence for control
Browse files Browse the repository at this point in the history
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: Haojian Zhuang <haojian.zhuang@marvell.com>
Cc: Liam Girdwood <lrg@slimlogic.co.uk>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
  • Loading branch information
Haojian Zhuang authored and Samuel Ortiz committed May 26, 2011
1 parent 2402ca5 commit db13c04
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions drivers/regulator/max8925-regulator.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@
#define SD1_DVM_SHIFT 5 /* SDCTL1 bit5 */
#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 regulator_desc desc;
struct regulator_dev *regulator;
Expand Down Expand Up @@ -93,16 +97,17 @@ static int max8925_enable(struct regulator_dev *rdev)
struct max8925_regulator_info *info = rdev_get_drvdata(rdev);

return max8925_set_bits(info->i2c, info->enable_reg,
1 << info->enable_bit,
1 << info->enable_bit);
OUT_ENABLE << info->enable_bit,
OUT_ENABLE << info->enable_bit);
}

static int max8925_disable(struct regulator_dev *rdev)
{
struct max8925_regulator_info *info = rdev_get_drvdata(rdev);

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)
Expand Down

0 comments on commit db13c04

Please sign in to comment.