diff mbox

[U-Boot,v3,2/5] imx: mx6sabre common: Factorize the Pfuze init function

Message ID 1415262542-31179-2-git-send-email-B37916@freescale.com
State Awaiting Upstream
Delegated to: Stefano Babic
Headers show

Commit Message

Ye.Li Nov. 6, 2014, 8:28 a.m. UTC
Since the Pfuze initializations are similar on various mx6 SABRE
boards. Factorize the initialization to a common function in file
board/freescale/common/pfuze.c. So that all SABRE boards BSP can
share the function.

Signed-off-by: Ye.Li <B37916@freescale.com>
---
Changes since v1:
- Factorize the pfuze init function for sabre boards

Changes since v2:
- Replace the magic value to definitions in pfuze driver.

 board/freescale/common/Makefile |    1 +
 board/freescale/common/pfuze.c  |   54 +++++++++++++++++++++++++++++++++++++++
 board/freescale/common/pfuze.h  |   12 ++++++++
 3 files changed, 67 insertions(+), 0 deletions(-)
 create mode 100644 board/freescale/common/pfuze.c
 create mode 100644 board/freescale/common/pfuze.h

Comments

Stefano Babic Nov. 20, 2014, 10:03 a.m. UTC | #1
On 06/11/2014 09:28, Ye.Li wrote:
> Since the Pfuze initializations are similar on various mx6 SABRE
> boards. Factorize the initialization to a common function in file
> board/freescale/common/pfuze.c. So that all SABRE boards BSP can
> share the function.
> 
> Signed-off-by: Ye.Li <B37916@freescale.com>
> ---

After rebasing on current u-boot-imx and fixing the following checkpatch
errors:

ERROR: "foo * bar" should be "foo *bar"
#182: FILE: board/freescale/common/pfuze.c:11:
+struct pmic * pfuze_common_init(unsigned char i2cbus)

ERROR: "foo * bar" should be "foo *bar"
#241: FILE: board/freescale/common/pfuze.h:10:
+struct pmic * pfuze_common_init(unsigned char i2cbus);

Applied to u-boot-imx, thanks !

Best regards,
Stefano Babic
diff mbox

Patch

diff --git a/board/freescale/common/Makefile b/board/freescale/common/Makefile
index 32b5a3b..25a1bc1 100644
--- a/board/freescale/common/Makefile
+++ b/board/freescale/common/Makefile
@@ -53,6 +53,7 @@  obj-$(CONFIG_P5040DS)		+= ics307_clk.o
 obj-$(CONFIG_VSC_CROSSBAR)    += vsc3316_3308.o
 obj-$(CONFIG_IDT8T49N222A)	+= idt8t49n222a_serdes_clk.o
 obj-$(CONFIG_ZM7300)		+= zm7300.o
+obj-$(CONFIG_POWER_PFUZE100)	+= pfuze.o
 
 # deal with common files for P-series corenet based devices
 obj-$(CONFIG_P2041RDB)	+= p_corenet/
diff --git a/board/freescale/common/pfuze.c b/board/freescale/common/pfuze.c
new file mode 100644
index 0000000..b6893c7
--- /dev/null
+++ b/board/freescale/common/pfuze.c
@@ -0,0 +1,54 @@ 
+/*
+ * Copyright 2014 Freescale Semiconductor, Inc.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#include <common.h>
+#include <power/pmic.h>
+#include <power/pfuze100_pmic.h>
+
+struct pmic * pfuze_common_init(unsigned char i2cbus)
+{
+	struct pmic *p;
+	int ret;
+	unsigned int reg;
+
+	ret = power_pfuze100_init(i2cbus);
+	if (ret)
+		return NULL;
+
+	p = pmic_get("PFUZE100");
+	ret = pmic_probe(p);
+	if (ret)
+		return NULL;
+
+	pmic_reg_read(p, PFUZE100_DEVICEID, &reg);
+	printf("PMIC:  PFUZE100 ID=0x%02x\n", reg);
+
+	/* Set SW1AB stanby volage to 0.975V */
+	pmic_reg_read(p, PFUZE100_SW1ABSTBY, &reg);
+	reg &= ~SW1x_STBY_MASK;
+	reg |= SW1x_0_975V;
+	pmic_reg_write(p, PFUZE100_SW1ABSTBY, reg);
+
+	/* Set SW1AB/VDDARM step ramp up time from 16us to 4us/25mV */
+	pmic_reg_read(p, PUZE_100_SW1ABCONF, &reg);
+	reg &= ~SW1xCONF_DVSSPEED_MASK;
+	reg |= SW1xCONF_DVSSPEED_4US;
+	pmic_reg_write(p, PUZE_100_SW1ABCONF, reg);
+
+	/* Set SW1C standby voltage to 0.975V */
+	pmic_reg_read(p, PFUZE100_SW1CSTBY, &reg);
+	reg &= ~SW1x_STBY_MASK;
+	reg |= SW1x_0_975V;
+	pmic_reg_write(p, PFUZE100_SW1CSTBY, reg);
+
+	/* Set SW1C/VDDSOC step ramp up time from 16us to 4us/25mV */
+	pmic_reg_read(p, PFUZE100_SW1CCONF, &reg);
+	reg &= ~SW1xCONF_DVSSPEED_MASK;
+	reg |= SW1xCONF_DVSSPEED_4US;
+	pmic_reg_write(p, PFUZE100_SW1CCONF, reg);
+
+	return p;
+}
diff --git a/board/freescale/common/pfuze.h b/board/freescale/common/pfuze.h
new file mode 100644
index 0000000..c5d1771
--- /dev/null
+++ b/board/freescale/common/pfuze.h
@@ -0,0 +1,12 @@ 
+/*
+ * Copyright 2014 Freescale Semiconductor, Inc.
+ *
+ * SPDX-License-Identifier:	GPL-2.0+
+ */
+
+#ifndef __PFUZE_BOARD_HELPER__
+#define __PFUZE_BOARD_HELPER__
+
+struct pmic * pfuze_common_init(unsigned char i2cbus);
+
+#endif