[U-Boot] [PATCH 27/55] dm: power: max77686: Correct BUCK register access

Przemyslaw Marczak p.marczak at samsung.com
Fri Jul 10 13:53:26 CEST 2015


Hello Simon,

On 07/03/2015 02:16 AM, Simon Glass wrote:
> Some regulators use the wrong voltage register and thus it is not possible
> to control them. Fix this.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>   drivers/power/regulator/max77686.c | 10 +++++++---
>   1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/power/regulator/max77686.c b/drivers/power/regulator/max77686.c
> index 37ebe94..21173fc 100644
> --- a/drivers/power/regulator/max77686.c
> +++ b/drivers/power/regulator/max77686.c
> @@ -61,10 +61,14 @@ static struct dm_regulator_mode max77686_buck_mode_onoff[] = {
>   	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
>   };
>
> +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)
>   {
>   	unsigned int hex = 0;
> @@ -368,7 +372,7 @@ static int max77686_buck_val(struct udevice *dev, int op, int *uV)
>   		*uV = 0;
>
>   	/* &buck_out = ctrl + 1 */
> -	adr = max77686_buck_addr[buck] + 1;
> +	adr = max77686_buck_out[buck];
>
>   	/* mask */
>   	switch (buck) {
> @@ -549,7 +553,7 @@ static int max77686_buck_mode(struct udevice *dev, int op, int *opmode)
>   		return -EINVAL;
>   	}
>
> -	adr = max77686_buck_addr[buck];
> +	adr = max77686_buck_ctrl[buck];
>
>   	/* mask */
>   	switch (buck) {
>

Acked-by: Przemyslaw Marczak <p.marczak at samsung.com>

Regards
-- 
Przemyslaw Marczak
Samsung R&D Institute Poland
Samsung Electronics
p.marczak at samsung.com


More information about the U-Boot mailing list