dm: power: max77686: Correct BUCK register access
Some regulators use the wrong voltage register and thus it is not possible to control them. Fix this. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Przemyslaw Marczak <p.marczak@samsung.com>
This commit is contained in:
parent
cd367d8997
commit
8c4287090c
|
@ -61,10 +61,14 @@ static struct dm_regulator_mode max77686_buck_mode_onoff[] = {
|
||||||
MODE(OPMODE_ON, MAX77686_BUCK_MODE_ON, "ON"),
|
MODE(OPMODE_ON, MAX77686_BUCK_MODE_ON, "ON"),
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char max77686_buck_addr[] = {
|
static const char max77686_buck_ctrl[] = {
|
||||||
0xff, 0x10, 0x12, 0x1c, 0x26, 0x30, 0x32, 0x34, 0x36, 0x38
|
0xff, 0x10, 0x12, 0x1c, 0x26, 0x30, 0x32, 0x34, 0x36, 0x38
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const char max77686_buck_out[] = {
|
||||||
|
0xff, 0x11, 0x14, 0x1e, 0x28, 0x31, 0x33, 0x35, 0x37, 0x39
|
||||||
|
};
|
||||||
|
|
||||||
static int max77686_buck_volt2hex(int buck, int uV)
|
static int max77686_buck_volt2hex(int buck, int uV)
|
||||||
{
|
{
|
||||||
unsigned int hex = 0;
|
unsigned int hex = 0;
|
||||||
|
@ -368,7 +372,7 @@ static int max77686_buck_val(struct udevice *dev, int op, int *uV)
|
||||||
*uV = 0;
|
*uV = 0;
|
||||||
|
|
||||||
/* &buck_out = ctrl + 1 */
|
/* &buck_out = ctrl + 1 */
|
||||||
adr = max77686_buck_addr[buck] + 1;
|
adr = max77686_buck_out[buck];
|
||||||
|
|
||||||
/* mask */
|
/* mask */
|
||||||
switch (buck) {
|
switch (buck) {
|
||||||
|
@ -549,7 +553,7 @@ static int max77686_buck_mode(struct udevice *dev, int op, int *opmode)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
adr = max77686_buck_addr[buck];
|
adr = max77686_buck_ctrl[buck];
|
||||||
|
|
||||||
/* mask */
|
/* mask */
|
||||||
switch (buck) {
|
switch (buck) {
|
||||||
|
|
Loading…
Reference in New Issue