Skip to content

Commit

Permalink
regulator: lp872x: set the default DVS mode
Browse files Browse the repository at this point in the history
 The lp872x driver has the DVS platform data which select the register address
 of the BUCK voltage.
 This patch enables updating the default DVS mode when the DVS platform data
 is not defined.

Signed-off-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Kim, Milo authored and Mark Brown committed Sep 5, 2012
1 parent 9ffaa86 commit b158fba
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion drivers/regulator/lp872x.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@
#define EXTERN_DVS_USED 0
#define MAX_DELAY 6

/* Default DVS Mode */
#define LP8720_DEFAULT_DVS 0
#define LP8725_DEFAULT_DVS BIT(2)

/* dump registers in regmap-debugfs */
#define MAX_REGISTERS 0x0F

Expand Down Expand Up @@ -750,8 +754,13 @@ static int lp872x_check_dvs_validity(struct lp872x *lp)
static int lp872x_init_dvs(struct lp872x *lp)
{
int ret, gpio;
struct lp872x_dvs *dvs = lp->pdata->dvs;
struct lp872x_dvs *dvs = lp->pdata ? lp->pdata->dvs : NULL;
enum lp872x_dvs_state pinstate;
u8 mask[] = { LP8720_EXT_DVS_M, LP8725_DVS1_M | LP8725_DVS2_M };
u8 default_dvs_mode[] = { LP8720_DEFAULT_DVS, LP8725_DEFAULT_DVS };

if (!dvs)
goto set_default_dvs_mode;

ret = lp872x_check_dvs_validity(lp);
if (ret) {
Expand All @@ -776,6 +785,10 @@ static int lp872x_init_dvs(struct lp872x *lp)
lp->dvs_gpio = gpio;

return 0;

set_default_dvs_mode:
return lp872x_update_bits(lp, LP872X_GENERAL_CFG, mask[lp->chipid],
default_dvs_mode[lp->chipid]);
}

static int lp872x_config(struct lp872x *lp)
Expand Down

0 comments on commit b158fba

Please sign in to comment.