All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabio Estevam <festevam@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 4/6] mx6: soc: Introduce set_ldo_voltage()
Date: Thu, 26 Dec 2013 14:51:33 -0200	[thread overview]
Message-ID: <1388076695-28174-4-git-send-email-festevam@gmail.com> (raw)
In-Reply-To: <1388076695-28174-1-git-send-email-festevam@gmail.com>

From: Fabio Estevam <fabio.estevam@freescale.com>

Introduce set_ldo_voltage() so that all three LDO regulators can be configured.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
---
Changes since v1:
- None

 arch/arm/cpu/armv7/mx6/soc.c | 33 ++++++++++++++++++++++++++-------
 1 file changed, 26 insertions(+), 7 deletions(-)

diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c
index 0136eb0..ee888ce 100644
--- a/arch/arm/cpu/armv7/mx6/soc.c
+++ b/arch/arm/cpu/armv7/mx6/soc.c
@@ -19,6 +19,12 @@
 #include <asm/arch/mxc_hdmi.h>
 #include <asm/arch/crm_regs.h>
 
+enum ldo_reg {
+	LDO_ARM,
+	LDO_SOC,
+	LDO_PU,
+};
+
 struct scu_regs {
 	u32	ctrl;
 	u32	config;
@@ -115,10 +121,11 @@ static void clear_ldo_ramp(void)
  * Possible values are from 0.725V to 1.450V in steps of
  * 0.025V (25mV).
  */
-static void set_vddsoc(u32 mv)
+static int set_ldo_voltage(enum ldo_reg ldo, u32 mv)
 {
 	struct anatop_regs *anatop = (struct anatop_regs *)ANATOP_BASE_ADDR;
 	u32 val, reg = readl(&anatop->reg_core);
+	u8 shift;
 
 	if (mv < 725)
 		val = 0x00;	/* Power gated off */
@@ -129,12 +136,24 @@ static void set_vddsoc(u32 mv)
 
 	clear_ldo_ramp();
 
-	/*
-	 * Mask out the REG_CORE[22:18] bits (REG2_TRIG)
-	 * and set them to the calculated value (0.7V + val * 0.25V)
-	 */
-	reg = (reg & ~(0x1F << 18)) | (val << 18);
+	switch (ldo) {
+	case LDO_SOC:
+		shift = 18;
+		break;
+	case LDO_PU:
+		shift = 9;
+		break;
+	case LDO_ARM:
+		shift = 0;
+		break;
+	default:
+		return -EINVAL;
+	}
+
+	reg = (reg & ~(0x1F << shift)) | (val << shift);
 	writel(reg, &anatop->reg_core);
+
+	return 0;
 }
 
 static void imx_set_wdog_powerdown(bool enable)
@@ -151,7 +170,7 @@ int arch_cpu_init(void)
 {
 	init_aips();
 
-	set_vddsoc(1175);	/* Set VDDSOC to 1.175V */
+	set_ldo_voltage(LDO_SOC, 1175);	/* Set VDDSOC to 1.175V */
 
 	imx_set_wdog_powerdown(false); /* Disable PDE bit of WMCR register */
 
-- 
1.8.1.2

  parent reply	other threads:[~2013-12-26 16:51 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-26 16:51 [U-Boot] [PATCH v2 1/6] mx6: soc: Staticize set_vddsoc() Fabio Estevam
2013-12-26 16:51 ` [U-Boot] [PATCH v2 2/6] mx6: soc: Clear the LDO ramp values up prior to setting the LDO voltages Fabio Estevam
2014-01-02 16:18   ` Stefano Babic
2013-12-26 16:51 ` [U-Boot] [PATCH v2 3/6] mx6: soc: Set the VDDSOC at 1.175 V Fabio Estevam
2014-01-02 16:19   ` Stefano Babic
2013-12-26 16:51 ` Fabio Estevam [this message]
2014-01-02 16:20   ` [U-Boot] [PATCH v2 4/6] mx6: soc: Introduce set_ldo_voltage() Stefano Babic
2013-12-26 16:51 ` [U-Boot] [PATCH v2 5/6] mx6: soc: Add the required LDO ramp up delay Fabio Estevam
2014-01-02 16:20   ` Stefano Babic
2013-12-26 16:51 ` [U-Boot] [PATCH v2 6/6] mx6: soc: Disable VDDPU regulator Fabio Estevam
2014-01-02 16:21   ` Stefano Babic
2014-01-09 17:50   ` Otavio Salvador
2014-01-09 19:06     ` Fabio Estevam
2014-01-09 19:11       ` Otavio Salvador
2014-01-09 19:13         ` Fabio Estevam
2014-01-09 19:30           ` Fabio Estevam
2014-01-09 19:39             ` Otavio Salvador
2014-01-09 20:34               ` Fabio Estevam
2014-01-09 21:31         ` Stefano Babic
2014-01-15 17:12           ` Otavio Salvador
2014-01-15 17:33             ` Stefano Babic
2014-01-16  8:40     ` Pierre Aubert
2014-01-16 11:19       ` Fabio Estevam
2014-01-16 11:25         ` Pierre AUBERT
2014-01-02 16:21 ` [U-Boot] [PATCH v2 1/6] mx6: soc: Staticize set_vddsoc() 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=1388076695-28174-4-git-send-email-festevam@gmail.com \
    --to=festevam@gmail.com \
    --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.