diff options
author | Lokesh Vutla <lokeshvutla@ti.com> | 2013-05-30 02:54:33 +0000 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2013-06-10 08:43:09 -0400 |
commit | 4ca94d81869f8c9ba3e72eac3a99d3eef29df991 (patch) | |
tree | f20dc62eadba270614f604fef91f0219936998d7 /arch/arm/cpu/armv7/omap-common/clocks-common.c | |
parent | af1d002f896e7f9cda47c384db31349cf923e95c (diff) | |
download | u-boot-imx-4ca94d81869f8c9ba3e72eac3a99d3eef29df991.zip u-boot-imx-4ca94d81869f8c9ba3e72eac3a99d3eef29df991.tar.gz u-boot-imx-4ca94d81869f8c9ba3e72eac3a99d3eef29df991.tar.bz2 |
ARM: OMAP4+: pmic: Make generic bus init and write functions
Voltage scaling can be done in two ways:
-> Using SR I2C
-> Using GP I2C
In order to support both, have a function pointer in pmic_data
so that we can call as per our requirement.
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.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/arm/cpu/armv7/omap-common/clocks-common.c b/arch/arm/cpu/armv7/omap-common/clocks-common.c index 403b672..6c8e063 100644 --- a/arch/arm/cpu/armv7/omap-common/clocks-common.c +++ b/arch/arm/cpu/armv7/omap-common/clocks-common.c @@ -487,6 +487,7 @@ void do_scale_vcore(u32 vcore_reg, u32 volt_mv, struct pmic_data *pmic) u32 offset = volt_mv; int ret = 0; + pmic->pmic_bus_init(); /* See if we can first get the GPIO if needed */ if (pmic->gpio_en) ret = gpio_request(pmic->gpio, "PMIC_GPIO"); @@ -509,8 +510,7 @@ void do_scale_vcore(u32 vcore_reg, u32 volt_mv, struct pmic_data *pmic) debug("do_scale_vcore: volt - %d offset_code - 0x%x\n", volt_mv, offset_code); - if (omap_vc_bypass_send_value(SMPS_I2C_SLAVE_ADDR, - vcore_reg, offset_code)) + if (pmic->pmic_write(pmic->i2c_slave_addr, vcore_reg, offset_code)) printf("Scaling voltage failed for 0x%x\n", vcore_reg); if (pmic->gpio_en) @@ -525,8 +525,6 @@ void do_scale_vcore(u32 vcore_reg, u32 volt_mv, struct pmic_data *pmic) */ void scale_vcores(struct vcores_data const *vcores) { - omap_vc_init(PRM_VC_I2C_CHANNEL_FREQ_KHZ); - do_scale_vcore(vcores->core.addr, vcores->core.value, vcores->core.pmic); |