aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/vc.c
diff options
context:
space:
mode:
authorNishanth Menon <nm@ti.com>2011-06-06 12:48:03 -0700
committerNishanth Menon <nm@ti.com>2011-06-13 16:44:18 -0500
commitc14bdd6ba36bf830447a7356d018299ecc0eb51b (patch)
tree512e8f20c56c7286f40e64b15619d12f7e9a2538 /arch/arm/mach-omap2/vc.c
parent4bbec562ac0291dd741562c4eef83934c7850047 (diff)
downloadkernel_samsung_tuna-c14bdd6ba36bf830447a7356d018299ecc0eb51b.zip
kernel_samsung_tuna-c14bdd6ba36bf830447a7356d018299ecc0eb51b.tar.gz
kernel_samsung_tuna-c14bdd6ba36bf830447a7356d018299ecc0eb51b.tar.bz2
OMAP4: PM: VC: allow channels use of default channel cmd_reg_addr
OMAP4's PRM_VC_CFG_CHANNEL register allows for flexibility of configuring for various PMIC configurations. In combinations where we'd like to use the default VC channel's cmd_reg address in a particular non-default VC channel, we allow the use of USE_DEFAULT_CHANNEL_I2C_PARAM. Since 0 is a valid register address, we need to increase the size of reg storage for the flag. Depending on the PMIC and platform used, this can be populated on the PMIC's datastructure and percolates to VC's configuration. Signed-off-by: Nishanth Menon <nm@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/vc.c')
-rw-r--r--arch/arm/mach-omap2/vc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c
index 53a16cc..0af99c8 100644
--- a/arch/arm/mach-omap2/vc.c
+++ b/arch/arm/mach-omap2/vc.c
@@ -311,10 +311,12 @@ void __init omap_vc_init_channel(struct voltagedomain *voltdm)
if ((vc->flags & OMAP_VC_CHANNEL_DEFAULT) &&
((vc->i2c_slave_addr == USE_DEFAULT_CHANNEL_I2C_PARAM) ||
+ (vc->cmd_reg_addr == USE_DEFAULT_CHANNEL_I2C_PARAM) ||
(vc->volt_reg_addr == USE_DEFAULT_CHANNEL_I2C_PARAM))) {
pr_err("%s: voltdm %s: default channel "
- "bad config-sa=%2x vol=%2x?\n", __func__, voltdm->name,
- vc->i2c_slave_addr, vc->volt_reg_addr);
+ "bad config-sa=%2x vol=%2x, cmd=%2x?\n", __func__,
+ voltdm->name, vc->i2c_slave_addr, vc->volt_reg_addr,
+ vc->cmd_reg_addr);
return;
}
@@ -336,7 +338,7 @@ void __init omap_vc_init_channel(struct voltagedomain *voltdm)
vc->cfg_channel |= vc_cfg_bits->rav;
}
- if (vc->cmd_reg_addr) {
+ if (vc->cmd_reg_addr != USE_DEFAULT_CHANNEL_I2C_PARAM) {
voltdm->rmw(vc->smps_cmdra_mask,
vc->cmd_reg_addr << __ffs(vc->smps_cmdra_mask),
vc->common->smps_cmdra_reg);