diff options
author | Sebastien Jan <s-jan@ti.com> | 2011-10-14 16:54:52 +0200 |
---|---|---|
committer | Sebastien Jan <s-jan@ti.com> | 2011-10-14 16:55:32 +0200 |
commit | 31193e7de11e7f0c6726b7948d4afef32eb3b636 (patch) | |
tree | 016eb033b97de8defc3f10bc64356f6852cb9d28 /arch | |
parent | c4dfa6b5e262e173293030ce7bae6d7f9ee59943 (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.c | 19 |
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[] = { |