All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Babic <sbabic@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 4/4] [PATCH] ventana: Add support for the LTC3676 PMIC
Date: Thu, 24 Apr 2014 10:08:25 +0200	[thread overview]
Message-ID: <5358C679.2060300@denx.de> (raw)
In-Reply-To: <1398228839-29780-5-git-send-email-tharvey@gateworks.com>

On 23/04/2014 06:53, Tim Harvey wrote:
> The LTC3676 PMIC is used instead of the PFUZE100 PMIC on the
> GW51xx/GW52xx/GW53xx Ventana baseboards. In order to support the IMX6Q SoC
> at 1GHz on those baseboards, we need to adjust the voltage scaling for the SW1
> and SW3 DC/DC converters on the LTC3676 for 1225mV. Note that the scalar
> values for the LTC3676 are board-specific as they relate to a resistor devider
> chosen by the board design.
> 
> Signed-off-by: Tim Harvey <tharvey@gateworks.com>
> ---
>  board/gateworks/gw_ventana/gw_ventana.c | 79 ++++++++++++++++++++++++---------
>  include/configs/gw_ventana.h            |  2 +
>  2 files changed, 59 insertions(+), 22 deletions(-)
> 
> diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c
> index 48e90e0..29fcebe 100644
> --- a/board/gateworks/gw_ventana/gw_ventana.c
> +++ b/board/gateworks/gw_ventana/gw_ventana.c
> @@ -30,6 +30,7 @@
>  #include <mtd_node.h>
>  #include <netdev.h>
>  #include <power/pmic.h>
> +#include <power/ltc3676_pmic.h>
>  #include <power/pfuze100_pmic.h>
>  #include <i2c.h>
>  #include <fdt_support.h>
> @@ -733,6 +734,60 @@ struct ventana gpio_cfg[] = {
>  	},
>  };
>  
> +/* setup board specific PMIC */
> +static void setup_board_pmic(int board)
> +{
> +	struct pmic *p;
> +	u32 reg;
> +
> +	/* configure PFUZE100 PMIC */
> +	if (board_type == GW54xx || board_type == GW54proto) {
> +		power_pfuze100_init(I2C_PMIC);
> +		p = pmic_get("PFUZE100_PMIC");
> +		if (p && !pmic_probe(p)) {
> +			pmic_reg_read(p, PFUZE100_DEVICEID, &reg);
> +			printf("PMIC:  PFUZE100 ID=0x%02x\n", reg);
> +
> +			/* Set VGEN1 to 1.5V and enable */
> +			pmic_reg_read(p, PFUZE100_VGEN1VOL, &reg);
> +			reg &= ~(LDO_VOL_MASK);
> +			reg |= (LDOA_1_50V | LDO_EN);
> +			pmic_reg_write(p, PFUZE100_VGEN1VOL, reg);
> +
> +			/* Set SWBST to 5.0V and enable */
> +			pmic_reg_read(p, PFUZE100_SWBSTCON1, &reg);
> +			reg &= ~(SWBST_MODE_MASK | SWBST_VOL_MASK);
> +			reg |= (SWBST_5_00V | SWBST_MODE_AUTO);
> +			pmic_reg_write(p, PFUZE100_SWBSTCON1, reg);
> +		}
> +	}
> +
> +	/* configure LTC3676 PMIC */
> +	else {
> +		power_ltc3676_init(I2C_PMIC);
> +		p = pmic_get("LTC3676_PMIC");
> +		if (p && !pmic_probe(p)) {
> +			puts("PMIC:  LTC3676\n");
> +			/* set board-specific scalar to 1225mV for IMX6Q at 1GHz */
> +			if (is_cpu_type(MXC_CPU_MX6Q)) {
> +				/* mask PGOOD during SW1 transition */
> +				reg = 0x1d | LTC3676_PGOOD_MASK;
> +				pmic_reg_write(p, LTC3676_DVB1B, reg);
> +				/* set SW1 (VDD_SOC) to 1259mV */
> +				reg = 0x1d;
> +				pmic_reg_write(p, LTC3676_DVB1A, reg);
> +
> +				/* mask PGOOD during SW3 transition */
> +				reg = 0x1d | LTC3676_PGOOD_MASK;
> +				pmic_reg_write(p, LTC3676_DVB3B, reg);
> +				/*set SW3 (VDD_ARM) to 1259mV */
> +				reg = 0x1d;
> +				pmic_reg_write(p, LTC3676_DVB3A, reg);
> +			}
> +		}
> +	}
> +}

There is already a power_init_board(), defined as __weak, that you can
use here.

> +
>  /* setup GPIO pinmux and default configuration per baseboard */
>  static void setup_board_gpio(int board)
>  {
> @@ -1076,29 +1131,9 @@ int misc_init_r(void)
>  		setenv("serial#", str);
>  	}
>  
> -	/* configure PFUZE100 PMIC (not used on all Ventana baseboards) */
> -	power_pfuze100_init(I2C_PMIC);
> -	if (board_type == GW54xx || board_type == GW54proto) {
> -		struct pmic *p = pmic_get("PFUZE100_PMIC");
> -		u32 reg;
> -
> -		if (p && !pmic_probe(p)) {
> -			pmic_reg_read(p, PFUZE100_DEVICEID, &reg);
> -			printf("PMIC:  PFUZE100 ID=0x%02x\n", reg);
> -
> -			/* Set VGEN1 to 1.5V and enable */
> -			pmic_reg_read(p, PFUZE100_VGEN1VOL, &reg);
> -			reg &= ~(LDO_VOL_MASK);
> -			reg |= (LDOA_1_50V | LDO_EN);
> -			pmic_reg_write(p, PFUZE100_VGEN1VOL, reg);
>  
> -			/* Set SWBST to 5.0V and enable */
> -			pmic_reg_read(p, PFUZE100_SWBSTCON1, &reg);
> -			reg &= ~(SWBST_MODE_MASK | SWBST_VOL_MASK);
> -			reg |= (SWBST_5_00V | SWBST_MODE_AUTO);
> -			pmic_reg_write(p, PFUZE100_SWBSTCON1, reg);
> -		}
> -	}
> +	/* setup pmic */
> +	setup_board_pmic(board_type);
>  
>  	/* setup baseboard specific GPIO pinmux and config */
>  	setup_board_gpio(board_type);
> diff --git a/include/configs/gw_ventana.h b/include/configs/gw_ventana.h
> index 3398390..b984f27 100644
> --- a/include/configs/gw_ventana.h
> +++ b/include/configs/gw_ventana.h
> @@ -136,6 +136,8 @@
>  #define CONFIG_POWER_I2C
>  #define CONFIG_POWER_PFUZE100
>  #define CONFIG_POWER_PFUZE100_I2C_ADDR	0x08
> +#define CONFIG_POWER_LTC3676
> +#define CONFIG_POWER_LTC3676_I2C_ADDR  0x3c
>  
>  /* Various command support */
>  #include <config_cmd_default.h>
> 

Best regards,
Stefano Babic

-- 
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================

  reply	other threads:[~2014-04-24  8:08 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-23  4:53 [U-Boot] [PATCH 0/4] ventana: Add LTC3676 PMIC support Tim Harvey
2014-04-23  4:53 ` [U-Boot] [PATCH 1/4] power: make pfuze100 be able to coexist with other pmics Tim Harvey
2014-04-24  8:03   ` Stefano Babic
2014-04-24  8:19     ` Tim Harvey
2014-04-24  8:30       ` Stefano Babic
2014-05-09 12:44   ` Stefano Babic
2014-04-23  4:53 ` [U-Boot] [PATCH 2/4] ventana: use non-generic pfuze100 init Tim Harvey
2014-05-09 12:44   ` Stefano Babic
2014-04-23  4:53 ` [U-Boot] [PATCH 3/4] power: Add support for LTC3676 PMIC Tim Harvey
2014-04-24  8:05   ` Stefano Babic
2014-05-09 12:43   ` Stefano Babic
2014-04-23  4:53 ` [U-Boot] [PATCH 4/4] [PATCH] ventana: Add support for the " Tim Harvey
2014-04-24  8:08   ` Stefano Babic [this message]
2014-05-05 15:22     ` Tim Harvey
2014-05-09 12:42       ` Stefano Babic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5358C679.2060300@denx.de \
    --to=sbabic@denx.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.