From a6d21d824242244ec6c02c18a517bf021f1e70cd Mon Sep 17 00:00:00 2001 From: Jacky Cheung Date: Fri, 24 Feb 2012 13:55:11 -0800 Subject: OMAP4: EMIF: Disable EMIF DDR self refresh during EMIF frequency change sequences Errata ID: i728 Description: If during a small window the following three events occur simultaneously: 1) The EMIF_PWR_MGMT_CTRL[7:4] REG_SR_TIM SR_TIMING counter expires 2) Frequency change update is requested CM_SHADOW_FREQ_CONFIG1 FREQ_UPDATE set to 1 3) OCP access is requested There will be clock instability on the DDR interface. Workaround: Prevent event 1) while event 2) is happening: Disable the self-refresh when self-refresh is enabled and a frequency change sequence is requested. Change-Id: I6c216d18f2747dae8a9160669533f0f1582d3301 Signed-off-by: Jacky Cheung --- arch/arm/mach-omap2/include/mach/emif.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'arch/arm/mach-omap2/include/mach') diff --git a/arch/arm/mach-omap2/include/mach/emif.h b/arch/arm/mach-omap2/include/mach/emif.h index 3a65b20..8a3ea34 100644 --- a/arch/arm/mach-omap2/include/mach/emif.h +++ b/arch/arm/mach-omap2/include/mach/emif.h @@ -258,6 +258,8 @@ struct emif_regs { int omap_emif_setup_registers(u32 freq, u32 volt_state); +void omap_emif_frequency_pre_notify(void); +void omap_emif_frequency_post_notify(void); int omap_emif_setup_device_details( const struct emif_device_details *emif1_devices, const struct emif_device_details *emif2_devices); -- cgit v1.1