aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorRicardo Salveti de Araujo <ricardo.salveti@linaro.org>2011-09-23 13:31:27 -0400
committerPaolo Pisati <paolo.pisati@canonical.com>2012-08-17 04:19:24 -0400
commitcc4a0ce0e260f9dc4ada43f3720b87ab77604365 (patch)
tree632a20e69354aa0f920dc6271439c6811aa48409 /arch/arm
parente60eaf5b766a5cca8e42ba309363767e049d9838 (diff)
OMAP4460: HDMI: Disable HDMI DDC internal pull up resistor
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>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 097b0d3a354..ecb59588e47 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -565,12 +565,33 @@ int __init omap4_panda_dvi_init(void)
565 565
566static void omap4_panda_hdmi_mux_init(void) 566static void omap4_panda_hdmi_mux_init(void)
567{ 567{
568 u32 reg;
569 u16 control_i2c_1;
570
571 /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
572 omap_mux_init_signal("hdmi_hpd",
573 OMAP_PIN_INPUT_PULLUP);
568 omap_mux_init_signal("hdmi_cec", 574 omap_mux_init_signal("hdmi_cec",
569 OMAP_PIN_INPUT_PULLUP); 575 OMAP_PIN_INPUT_PULLUP);
570 omap_mux_init_signal("hdmi_ddc_scl", 576 omap_mux_init_signal("hdmi_ddc_scl",
571 OMAP_PIN_INPUT_PULLUP); 577 OMAP_PIN_INPUT_PULLUP);
572 omap_mux_init_signal("hdmi_ddc_sda", 578 omap_mux_init_signal("hdmi_ddc_sda",
573 OMAP_PIN_INPUT_PULLUP); 579 OMAP_PIN_INPUT_PULLUP);
580
581 /*
582 * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and
583 * HDMI_DDC_SCL_PULLUPRESX (bit 24) are set to disable
584 * internal pull up resistor - This is a change needed in
585 * OMAP4460 and OMAP4430 ES2.3 as the external pull up
586 * are present. This is needed to avoid EDID read failure.
587 */
588 if (cpu_is_omap446x() || (omap_rev() > OMAP4430_REV_ES2_2)) {
589 control_i2c_1 = OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_I2C_1;
590 reg = omap4_ctrl_pad_readl(control_i2c_1);
591 reg |= (OMAP4_HDMI_DDC_SDA_PULLUPRESX_MASK |
592 OMAP4_HDMI_DDC_SCL_PULLUPRESX_MASK);
593 omap4_ctrl_pad_writel(reg, control_i2c_1);
594 }
574} 595}
575 596
576static struct gpio panda_hdmi_gpios[] = { 597static struct gpio panda_hdmi_gpios[] = {