[PATCH] API to set twl4030 voltage and dev group

Syed Mohammed Khasim khasim at ti.com
Tue Jan 12 11:49:23 CET 2010


V3:
Incorporated review comments to set voltage first
and then dev group

V2:
Incorporated review comments to split the patch and
add generic API to set the voltage and device group.
http://www.mail-archive.com/u-boot@lists.denx.de/msg27136.html

V1:
Added support for 720 Mhz
http://www.mail-archive.com/u-boot@lists.denx.de/msg27035.html

Signed-off-by: Syed Mohammed Khasim <khasim at ti.com>
---
 drivers/power/twl4030.c |   24 +++++++++++++++---------
 include/twl4030.h       |   16 ++++++++++++++++
 2 files changed, 31 insertions(+), 9 deletions(-)

diff --git a/drivers/power/twl4030.c b/drivers/power/twl4030.c
index eb066cb..f25b58f 100644
--- a/drivers/power/twl4030.c
+++ b/drivers/power/twl4030.c
@@ -59,16 +59,9 @@ void twl4030_power_reset_init(void)
 	}
 }

-
 /*
  * Power Init
  */
-#define DEV_GRP_P1		0x20
-#define VAUX3_VSEL_28		0x03
-#define DEV_GRP_ALL		0xE0
-#define VPLL2_VSEL_18		0x05
-#define VDAC_VSEL_18		0x03
-
 void twl4030_power_init(void)
 {
 	unsigned char byte;
@@ -98,8 +91,6 @@ void twl4030_power_init(void)
 			     TWL4030_PM_RECEIVER_VDAC_DEDICATED);
 }

-#define VMMC1_VSEL_30		0x02
-
 void twl4030_power_mmc_init(void)
 {
 	unsigned char byte;
@@ -113,3 +104,18 @@ void twl4030_power_mmc_init(void)
 	twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, byte,
 			     TWL4030_PM_RECEIVER_VMMC1_DEDICATED);
 }
+
+/*
+ * Generic function to select Device Group and Voltage
+ */
+void twl4030_pmrecv_vsel_cfg(u8 vsel_reg, u8 vsel_val,
+				u8 dev_grp, u8 dev_grp_sel)
+{
+	/* Select the Voltage */
+	twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, vsel_val,
+				vsel_reg);
+
+	/* Select the Device Group */
+	twl4030_i2c_write_u8(TWL4030_CHIP_PM_RECEIVER, dev_grp_sel,
+				dev_grp);
+}
diff --git a/include/twl4030.h b/include/twl4030.h
index f260ecb..b96c96c 100644
--- a/include/twl4030.h
+++ b/include/twl4030.h
@@ -359,6 +359,22 @@
 #define TWL4030_USB_PHY_DPLL_CLK			(1 << 0)

 /*
+ * Voltage Selection in PM Receiver Module
+ */
+#define VAUX2_VSEL_18		0x05
+#define VDD1_VSEL_14		0x40
+#define VAUX3_VSEL_28		0x03
+#define VPLL2_VSEL_18		0x05
+#define VDAC_VSEL_18		0x03
+#define VMMC1_VSEL_30		0x02
+
+/*
+ * Device Selection
+ */
+#define DEV_GRP_P1		0x20
+#define DEV_GRP_ALL		0xE0
+
+/*
  * Convience functions to read and write from TWL4030
  *
  * chip_no is the i2c address, it must be one of the chip addresses
-- 
1.5.6.3


More information about the U-Boot mailing list