summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/armv7/omap-common/clocks-common.c
diff options
context:
space:
mode:
authorLokesh Vutla <lokeshvutla@ti.com>2013-05-30 03:19:29 +0000
committerTom Rini <trini@ti.com>2013-06-10 08:43:09 -0400
commit63fc0c775c1eb86b9a1abb4e37311bbcf1dca008 (patch)
tree363b14b1ee207f2c9644adf366ab15884dbe8819 /arch/arm/cpu/armv7/omap-common/clocks-common.c
parent4de28d7921908d8b222fac331111c94e048ee282 (diff)
ARM: DRA7xx: power Add support for tps659038 PMIC
TPS659038 is the power IC used in DRA7XX boards. Adding support for this and also adding pmic data for DRA7XX boards. Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Diffstat (limited to 'arch/arm/cpu/armv7/omap-common/clocks-common.c')
-rw-r--r--arch/arm/cpu/armv7/omap-common/clocks-common.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/omap-common/clocks-common.c b/arch/arm/cpu/armv7/omap-common/clocks-common.c
index 6c8e0632c1..eda3451e73 100644
--- a/arch/arm/cpu/armv7/omap-common/clocks-common.c
+++ b/arch/arm/cpu/armv7/omap-common/clocks-common.c
@@ -30,6 +30,7 @@
* MA 02111-1307 USA
*/
#include <common.h>
+#include <i2c.h>
#include <asm/omap_common.h>
#include <asm/gpio.h>
#include <asm/arch/clock.h>
@@ -487,6 +488,9 @@ void do_scale_vcore(u32 vcore_reg, u32 volt_mv, struct pmic_data *pmic)
u32 offset = volt_mv;
int ret = 0;
+ if (!volt_mv)
+ return;
+
pmic->pmic_bus_init();
/* See if we can first get the GPIO if needed */
if (pmic->gpio_en)
@@ -543,6 +547,15 @@ void scale_vcores(struct vcores_data const *vcores)
do_scale_vcore(vcores->mm.addr, vcores->mm.value,
vcores->mm.pmic);
+ do_scale_vcore(vcores->gpu.addr, vcores->gpu.value,
+ vcores->gpu.pmic);
+
+ do_scale_vcore(vcores->eve.addr, vcores->eve.value,
+ vcores->eve.pmic);
+
+ do_scale_vcore(vcores->iva.addr, vcores->iva.value,
+ vcores->iva.pmic);
+
if (emif_sdram_type() == EMIF_SDRAM_TYPE_DDR3) {
/* Configure LDO SRAM "magic" bits */
writel(2, (*prcm)->prm_sldo_core_setup);
@@ -732,3 +745,13 @@ void prcm_init(void)
if (OMAP_INIT_CONTEXT_SPL != omap_hw_init_context())
enable_basic_uboot_clocks();
}
+
+void gpi2c_init(void)
+{
+ static int gpi2c = 1;
+
+ if (gpi2c) {
+ i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE);
+ gpi2c = 0;
+ }
+}