diff options
Diffstat (limited to 'arch/arm/mach-omap2/am33xx/ddr.c')
| -rw-r--r-- | arch/arm/mach-omap2/am33xx/ddr.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/arch/arm/mach-omap2/am33xx/ddr.c b/arch/arm/mach-omap2/am33xx/ddr.c index be6f4d72ccd..816d4e8e056 100644 --- a/arch/arm/mach-omap2/am33xx/ddr.c +++ b/arch/arm/mach-omap2/am33xx/ddr.c @@ -256,8 +256,16 @@ static void ext_phy_settings_hwlvl(const struct emif_regs *regs, int nr)  	 * Enable hardware leveling on the EMIF.  For details about these  	 * magic values please see the EMIF registers section of the TRM.  	 */ -	writel(0x08020080, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1); -	writel(0x08020080, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1_shdw); +	if (regs->emif_ddr_phy_ctlr_1 & 0x00040000) { +		/* PHY_INVERT_CLKOUT = 1 */ +		writel(0x00040100, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1); +		writel(0x00040100, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1_shdw); +	} else { +		/* PHY_INVERT_CLKOUT = 0 */ +		writel(0x08020080, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1); +		writel(0x08020080, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_1_shdw); +	} +  	writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_22);  	writel(0x00000000, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_22_shdw);  	writel(0x00600020, &emif_reg[nr]->emif_ddr_ext_phy_ctrl_23); | 
