Commit 889cd5a6 authored by Lukasz Majewski's avatar Lukasz Majewski Committed by Samuel Ortiz

regulator: max8998 BUCK1/2 internal voltages and indexes defined

BUCK1/2 internal voltages and indexes defined in the struct max8998_data
max_get_voltage_register now uses index values to chose proper register
More generic BUCK1/2 registers names provided
Signed-off-by: default avatarLukasz Majewski <l.majewski@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarSamuel Ortiz <sameo@linux.intel.com>
parent 509bd476
...@@ -39,6 +39,11 @@ struct max8998_data { ...@@ -39,6 +39,11 @@ struct max8998_data {
struct max8998_dev *iodev; struct max8998_dev *iodev;
int num_regulators; int num_regulators;
struct regulator_dev **rdev; struct regulator_dev **rdev;
u8 buck1_vol[4]; /* voltages for selection */
u8 buck2_vol[2];
unsigned int buck1_idx; /* index to last changed voltage */
/* value in a set */
unsigned int buck2_idx;
}; };
struct voltage_map_desc { struct voltage_map_desc {
...@@ -218,6 +223,7 @@ static int max8998_get_voltage_register(struct regulator_dev *rdev, ...@@ -218,6 +223,7 @@ static int max8998_get_voltage_register(struct regulator_dev *rdev,
int *_reg, int *_shift, int *_mask) int *_reg, int *_shift, int *_mask)
{ {
int ldo = max8998_get_ldo(rdev); int ldo = max8998_get_ldo(rdev);
struct max8998_data *max8998 = rdev_get_drvdata(rdev);
int reg, shift = 0, mask = 0xff; int reg, shift = 0, mask = 0xff;
switch (ldo) { switch (ldo) {
...@@ -254,10 +260,10 @@ static int max8998_get_voltage_register(struct regulator_dev *rdev, ...@@ -254,10 +260,10 @@ static int max8998_get_voltage_register(struct regulator_dev *rdev,
reg = MAX8998_REG_LDO12 + (ldo - MAX8998_LDO12); reg = MAX8998_REG_LDO12 + (ldo - MAX8998_LDO12);
break; break;
case MAX8998_BUCK1: case MAX8998_BUCK1:
reg = MAX8998_REG_BUCK1_DVSARM1; reg = MAX8998_REG_BUCK1_VOLTAGE1 + max8998->buck1_idx;
break; break;
case MAX8998_BUCK2: case MAX8998_BUCK2:
reg = MAX8998_REG_BUCK2_DVSINT1; reg = MAX8998_REG_BUCK2_VOLTAGE1 + max8998->buck2_idx;
break; break;
case MAX8998_BUCK3: case MAX8998_BUCK3:
reg = MAX8998_REG_BUCK3; reg = MAX8998_REG_BUCK3;
......
...@@ -48,12 +48,12 @@ enum { ...@@ -48,12 +48,12 @@ enum {
MAX8998_REG_ONOFF2, MAX8998_REG_ONOFF2,
MAX8998_REG_ONOFF3, MAX8998_REG_ONOFF3,
MAX8998_REG_ONOFF4, MAX8998_REG_ONOFF4,
MAX8998_REG_BUCK1_DVSARM1, MAX8998_REG_BUCK1_VOLTAGE1,
MAX8998_REG_BUCK1_DVSARM2, MAX8998_REG_BUCK1_VOLTAGE2,
MAX8998_REG_BUCK1_DVSARM3, MAX8998_REG_BUCK1_VOLTAGE3,
MAX8998_REG_BUCK1_DVSARM4, MAX8998_REG_BUCK1_VOLTAGE4,
MAX8998_REG_BUCK2_DVSINT1, MAX8998_REG_BUCK2_VOLTAGE1,
MAX8998_REG_BUCK2_DVSINT2, MAX8998_REG_BUCK2_VOLTAGE2,
MAX8998_REG_BUCK3, MAX8998_REG_BUCK3,
MAX8998_REG_BUCK4, MAX8998_REG_BUCK4,
MAX8998_REG_LDO2_LDO3, MAX8998_REG_LDO2_LDO3,
......
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