summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSebastien Jan <s-jan@ti.com>2011-10-14 16:54:52 +0200
committerSebastien Jan <s-jan@ti.com>2011-10-14 16:55:32 +0200
commit31193e7de11e7f0c6726b7948d4afef32eb3b636 (patch)
tree016eb033b97de8defc3f10bc64356f6852cb9d28 /arch
parentc4dfa6b5e262e173293030ce7bae6d7f9ee59943 (diff)
OMAP4460: HDMI: Disable HDMI DDC internal pull up resistor
Port from same patch from Ricardo in pandaboard file. Disables the internal pull resistor for SDA and SCL enabled by default as there are expernal pull up's to avoid the EDID read failure. Patch done mainly by Mythri P K <mythripk@ti.com> Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti@linaro.org> Signed-off-by: Sebastien Jan <s-jan@ti.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 30904856bd0d..1d8f6ffd666b 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -42,6 +42,7 @@
#include "board-blaze.h"
#include "mux.h"
+#include "control.h"
#include "hsmmc.h"
#include "timer-gp.h"
#include "common-board-devices.h"
@@ -581,6 +582,9 @@ static void sdp4430_lcd2_init(void)
static void sdp4430_hdmi_mux_init(void)
{
+ u32 reg;
+ u16 control_i2c_1;
+
/* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
omap_mux_init_signal("hdmi_hpd",
OMAP_PIN_INPUT_PULLUP);
@@ -591,6 +595,21 @@ static void sdp4430_hdmi_mux_init(void)
OMAP_PIN_INPUT_PULLUP);
omap_mux_init_signal("hdmi_ddc_sda",
OMAP_PIN_INPUT_PULLUP);
+
+ /*
+ * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and
+ * HDMI_DDC_SCL_PULLUPRESX (bit 24) are set to disable
+ * internal pull up resistor - This is a change needed in
+ * OMAP4460 and OMAP4430 ES2.3 as the external pull up
+ * are present. This is needed to avoid EDID read failure.
+ */
+ if (cpu_is_omap446x() || (omap_rev() > OMAP4430_REV_ES2_2)) {
+ control_i2c_1 = OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_I2C_1;
+ reg = omap4_ctrl_pad_readl(control_i2c_1);
+ reg |= (OMAP4_HDMI_DDC_SDA_PULLUPRESX_MASK |
+ OMAP4_HDMI_DDC_SCL_PULLUPRESX_MASK);
+ omap4_ctrl_pad_writel(reg, control_i2c_1);
+ }
}
static struct gpio sdp4430_hdmi_gpios[] = {