Browse Source

omap4: fix IO setting

The value from TRIM is not working for some 4430 silicons.
So, override with hw team recommended value. However, for
4460 TRIM value shall be used as long as the part is trimmed

This fixes boot problem on some OMAP4430 ES2.0 Panda boards
out there.

Cc: Steve Sakoman <sakoman@gmail.com>
Signed-off-by: Aneesh V <aneesh@ti.com>
Aneesh V 13 years ago
parent
commit
23e9f0723e
1 changed files with 6 additions and 1 deletions
  1. 6 1
      arch/arm/cpu/armv7/omap4/hwinit.c

+ 6 - 1
arch/arm/cpu/armv7/omap4/hwinit.c

@@ -105,7 +105,12 @@ void do_io_settings(void)
 			&ctrl->control_ldosram_core_voltage_ctrl);
 			&ctrl->control_ldosram_core_voltage_ctrl);
 	}
 	}
 
 
-	if (!readl(&ctrl->control_efuse_1))
+	/*
+	 * Over-ride the register
+	 *	i. unconditionally for all 4430
+	 *	ii. only if un-trimmed for 4460
+	 */
+	if ((omap4_rev < OMAP4460_ES1_0) || !readl(&ctrl->control_efuse_1))
 		writel(CONTROL_EFUSE_1_OVERRIDE, &ctrl->control_efuse_1);
 		writel(CONTROL_EFUSE_1_OVERRIDE, &ctrl->control_efuse_1);
 
 
 	if (!readl(&ctrl->control_efuse_2))
 	if (!readl(&ctrl->control_efuse_2))