Hi, On Fri, Nov 18, 2011 at 1:00 PM, Tomi Valkeinen <tomi.valkeinen@xxxxxx> wrote: > On Tue, 2011-11-15 at 19:20 +0530, mythripk@xxxxxx wrote: >> From: Mythri P K <mythripk@xxxxxx> >> >> Disables the internal pull resistor for SDA and SCL which are enabled by >> default, as there are expernal pull up's in 4460 and 4430 ES2.3 >> SDP, Blaze and Panda Boards, It is done to avoid the EDID read failure. >> >> Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti@xxxxxxxxxx> >> Signed-off-by: Mythri P K <mythripk@xxxxxx> >> --- >> arch/arm/mach-omap2/board-4430sdp.c | 13 ++++++++++++- >> arch/arm/mach-omap2/board-omap4panda.c | 14 +++++++++++++- >> arch/arm/mach-omap2/display.c | 17 ++++++++++++++--- >> include/video/omapdss.h | 4 +++- >> 4 files changed, 42 insertions(+), 6 deletions(-) >> >> diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c >> index c3bd640..d0a82f9 100644 >> --- a/arch/arm/mach-omap2/board-4430sdp.c >> +++ b/arch/arm/mach-omap2/board-4430sdp.c >> @@ -826,7 +826,18 @@ static void omap_4430sdp_display_init(void) >> sdp4430_lcd_init(); >> sdp4430_picodlp_init(); >> omap_display_init(&sdp4430_dss_data); >> - omap_hdmi_init(); >> + /* >> + * 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 SDP, Blaze and Panda as the >> + * external pull up are present. This is needed to avoid >> + * EDID read failure. >> + */ > > I don't think this comment makes sense here. The register and bit > details are not seen here, they are handled in the display.c. > > Also, the comment is still speaking of OMAP versions. This is about > board revisions. And this is SDP board file, no need to talk about > Panda. > > So the text should be something like "44xxSDP rev XYZ and later have > external HDMI I2C line pull up. We detect the board revision with the > OMAP revision." I shall update the comment and re-post. > >> + if (cpu_is_omap446x() || (omap_rev() > OMAP4430_REV_ES2_2)) > > If you compare omap_rev() you should also use cpu_is_omap at the same > time. In this case (cpu_is_omap443x() && omap_rev() > > OMAP4430_REV_ES2_2). Otherwise the omap_rev check could match, say, > omap3 or omap5 boards. Hmmm I am not really sure if that is needed, I dont think omap3 or omap5 boards would be named with rev "OMAP4430"_REV_ES2_2 ??? Thanks and regards, Mythri. > >> + omap_hdmi_init(OMAP_HDMI_EXTERNAL_PULLUP); >> + else >> + omap_hdmi_init(0); >> } >> >> #ifdef CONFIG_OMAP_MUX >> diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c >> index d95df2e..44ff8e0 100644 >> --- a/arch/arm/mach-omap2/board-omap4panda.c >> +++ b/arch/arm/mach-omap2/board-omap4panda.c >> @@ -541,7 +541,19 @@ void omap4_panda_display_init(void) >> pr_err("error initializing panda DVI\n"); >> >> omap_display_init(&omap4_panda_dss_data); >> - omap_hdmi_init(); >> + >> + /* >> + * 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 SDP, Blaze and Panda 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)) >> + omap_hdmi_init(OMAP_HDMI_EXTERNAL_PULLUP); >> + else >> + omap_hdmi_init(0); >> } >> >> static void __init omap4_panda_init(void) >> diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c >> index 8436088..a75e179 100644 >> --- a/arch/arm/mach-omap2/display.c >> +++ b/arch/arm/mach-omap2/display.c >> @@ -97,8 +97,11 @@ static const struct omap_dss_hwmod_data omap4_dss_hwmod_data[] __initdata = { >> { "dss_hdmi", "omapdss_hdmi", -1 }, >> }; >> >> -static void omap4_hdmi_mux_pads() >> +static void omap4_hdmi_mux_pads(int flags) >> { >> + u32 reg; >> + u16 control_i2c_1; >> + >> /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */ >> omap_mux_init_signal("hdmi_hpd", >> OMAP_PIN_INPUT_PULLUP); >> @@ -109,6 +112,14 @@ static void omap4_hdmi_mux_pads() >> OMAP_PIN_INPUT_PULLUP); >> omap_mux_init_signal("hdmi_ddc_sda", >> OMAP_PIN_INPUT_PULLUP); >> + >> + if (flags & OMAP_HDMI_EXTERNAL_PULLUP) { >> + 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); > > Indent is wrong here, and the parenthesis are extra. > > Tomi > > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html