mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2024-12-29 17:23:36 +00:00
ARM: OMAP2+: Configure voltage controller for retention
Similar to existing omap3_vc_set_pmic_signaling(), let's add omap4 specific omap4_vc_set_pmic_signaling(). This allows the configured devices to enable voltage controller for retention later on during init. Cc: Merlijn Wajer <merlijn@wizzup.org> Cc: Pavel Machek <pavel@ucw.cz> Cc: Sebastian Reichel <sre@kernel.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
This commit is contained in:
parent
821093e1fd
commit
71065d3fe8
@ -36,15 +36,21 @@
|
||||
#define OMAP4430_AUTO_CTRL_VDD_CORE(x) ((x) << 0)
|
||||
#define OMAP4430_AUTO_CTRL_VDD_RET 2
|
||||
|
||||
#define OMAP4_VDD_DEFAULT_VAL \
|
||||
#define OMAP4430_VDD_I2C_DISABLE_MASK \
|
||||
(OMAP4430_VDD_IVA_I2C_DISABLE | \
|
||||
OMAP4430_VDD_MPU_I2C_DISABLE | \
|
||||
OMAP4430_VDD_CORE_I2C_DISABLE | \
|
||||
OMAP4430_VDD_MPU_I2C_DISABLE | \
|
||||
OMAP4430_VDD_CORE_I2C_DISABLE)
|
||||
|
||||
#define OMAP4_VDD_DEFAULT_VAL \
|
||||
(OMAP4430_VDD_I2C_DISABLE_MASK | \
|
||||
OMAP4430_VDD_IVA_PRESENCE | OMAP4430_VDD_MPU_PRESENCE | \
|
||||
OMAP4430_AUTO_CTRL_VDD_IVA(OMAP4430_AUTO_CTRL_VDD_RET) | \
|
||||
OMAP4430_AUTO_CTRL_VDD_MPU(OMAP4430_AUTO_CTRL_VDD_RET) | \
|
||||
OMAP4430_AUTO_CTRL_VDD_CORE(OMAP4430_AUTO_CTRL_VDD_RET))
|
||||
|
||||
#define OMAP4_VDD_RET_VAL \
|
||||
(OMAP4_VDD_DEFAULT_VAL & ~OMAP4430_VDD_I2C_DISABLE_MASK)
|
||||
|
||||
/**
|
||||
* struct omap_vc_channel_cfg - describe the cfg_channel bitfield
|
||||
* @sa: bit for slave address
|
||||
@ -299,6 +305,26 @@ void omap3_vc_set_pmic_signaling(int core_next_state)
|
||||
}
|
||||
}
|
||||
|
||||
void omap4_vc_set_pmic_signaling(int core_next_state)
|
||||
{
|
||||
struct voltagedomain *vd = vc.vd;
|
||||
u32 val;
|
||||
|
||||
if (!vd)
|
||||
return;
|
||||
|
||||
switch (core_next_state) {
|
||||
case PWRDM_POWER_RET:
|
||||
val = OMAP4_VDD_RET_VAL;
|
||||
break;
|
||||
default:
|
||||
val = OMAP4_VDD_DEFAULT_VAL;
|
||||
break;
|
||||
}
|
||||
|
||||
vd->write(val, OMAP4_PRM_VOLTCTRL_OFFSET);
|
||||
}
|
||||
|
||||
/*
|
||||
* Configure signal polarity for sys_clkreq and sys_off_mode pins
|
||||
* as the default values are wrong and can cause the system to hang
|
||||
|
@ -117,7 +117,7 @@ extern struct omap_vc_param omap4_iva_vc_data;
|
||||
extern struct omap_vc_param omap4_core_vc_data;
|
||||
|
||||
void omap3_vc_set_pmic_signaling(int core_next_state);
|
||||
|
||||
void omap4_vc_set_pmic_signaling(int core_next_state);
|
||||
|
||||
void omap_vc_init_channel(struct voltagedomain *voltdm);
|
||||
int omap_vc_pre_scale(struct voltagedomain *voltdm,
|
||||
|
Loading…
Reference in New Issue
Block a user