From 31193e7de11e7f0c6726b7948d4afef32eb3b636 Mon Sep 17 00:00:00 2001 From: Sebastien Jan Date: Fri, 14 Oct 2011 16:54:52 +0200 Subject: 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 Signed-off-by: Ricardo Salveti de Araujo Signed-off-by: Sebastien Jan --- arch/arm/mach-omap2/board-4430sdp.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'arch') 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[] = { -- cgit v1.2.3