Re: [PATCH v2 2/2] OMAPDSS: HDMI: Disable HDMI DDC internal pull up

2011-11-13 Thread K, Mythri P
Hi Tony,

On Fri, Nov 11, 2011 at 10:52 PM, Tony Lindgren t...@atomide.com wrote:
 * mythr...@ti.com mythr...@ti.com [11 04:41]:
 From: Mythri P K mythr...@ti.com

 Disables the internal pull resistor for SDA and SCL enabled by
 default as there are expernal pull up's in 4460 and 4430 ES2.3,
 It is done to avoid the EDID read failure.

 Signed-off-by: Ricardo Salveti de Araujo ricardo.salv...@linaro.org
 Signed-off-by: Mythri P K mythr...@ti.com
 ---
  arch/arm/mach-omap2/board-4430sdp.c    |   12 +++-
  arch/arm/mach-omap2/board-omap4panda.c |   13 -
  arch/arm/mach-omap2/display.c          |   17 ++---
  include/video/omapdss.h                |    2 +-
  4 files changed, 38 insertions(+), 6 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-4430sdp.c 
 b/arch/arm/mach-omap2/board-4430sdp.c
 index 4a519a3..91d3742 100644
 --- a/arch/arm/mach-omap2/board-4430sdp.c
 +++ b/arch/arm/mach-omap2/board-4430sdp.c
 @@ -826,7 +826,17 @@ static void omap_4430sdp_display_init(void)
       sdp4430_lcd_init();
       sdp4430_picodlp_init();
       omap_display_init(sdp4430_dss_data);
 -     omap_hdmi_enable_pads();
 +     /*
 +      * 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))
 +             omap_hdmi_enable_pads(1);
 +     else
 +             omap_hdmi_enable_pads(0);
  }

 If you now have omap_hdmi_init(), then you can just pass it board
 specific flags like OMAP_HDMI_EXTERNAL_PULL. The generic init function
 will make it easier to move things over to DT also.

Thanks, sure will take care of this.

Thanks and regards,
Mythri.

 Regards,

 Tony

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/2] OMAPDSS: HDMI: Disable HDMI DDC internal pull up

2011-11-13 Thread Tomi Valkeinen
On Fri, 2011-11-11 at 18:38 +0530, mythr...@ti.com wrote:
 From: Mythri P K mythr...@ti.com
 
 Disables the internal pull resistor for SDA and SCL enabled by
 default as there are expernal pull up's in 4460 and 4430 ES2.3,
 It is done to avoid the EDID read failure.

You told me previously that this problem has nothing to do with OMAP
versions, but the board versions. But this patch only talks about OMAP
versions.

 Tomi



signature.asc
Description: This is a digitally signed message part


[PATCH v2 2/2] OMAPDSS: HDMI: Disable HDMI DDC internal pull up

2011-11-11 Thread mythripk
From: Mythri P K mythr...@ti.com

Disables the internal pull resistor for SDA and SCL enabled by
default as there are expernal pull up's in 4460 and 4430 ES2.3,
It is done to avoid the EDID read failure.

Signed-off-by: Ricardo Salveti de Araujo ricardo.salv...@linaro.org
Signed-off-by: Mythri P K mythr...@ti.com
---
 arch/arm/mach-omap2/board-4430sdp.c|   12 +++-
 arch/arm/mach-omap2/board-omap4panda.c |   13 -
 arch/arm/mach-omap2/display.c  |   17 ++---
 include/video/omapdss.h|2 +-
 4 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-omap2/board-4430sdp.c 
b/arch/arm/mach-omap2/board-4430sdp.c
index 4a519a3..91d3742 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -826,7 +826,17 @@ static void omap_4430sdp_display_init(void)
sdp4430_lcd_init();
sdp4430_picodlp_init();
omap_display_init(sdp4430_dss_data);
-   omap_hdmi_enable_pads();
+   /*
+* 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))
+   omap_hdmi_enable_pads(1);
+   else
+   omap_hdmi_enable_pads(0);
 }
 
 #ifdef CONFIG_OMAP_MUX
diff --git a/arch/arm/mach-omap2/board-omap4panda.c 
b/arch/arm/mach-omap2/board-omap4panda.c
index 26c6440..a4e7bf8 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -541,7 +541,18 @@ void omap4_panda_display_init(void)
pr_err(error initializing panda DVI\n);
 
omap_display_init(omap4_panda_dss_data);
-   omap_hdmi_enable_pads();
+
+   /*
+* 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))
+   omap_hdmi_enable_pads(1);
+   else
+   omap_hdmi_enable_pads(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 ec7ac1b..8af5714 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(void)
+static void omap4_hdmi_mux_pads(int ext_pull_up)
 {
+   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(void)
OMAP_PIN_INPUT_PULLUP);
omap_mux_init_signal(hdmi_ddc_sda,
OMAP_PIN_INPUT_PULLUP);
+
+   if (ext_pull_up) {
+   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 int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
@@ -144,10 +155,10 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
return 0;
 }
 
-int omap_hdmi_enable_pads(void)
+int omap_hdmi_enable_pads(int ext_pull_up)
 {
if (cpu_is_omap44xx())
-   omap4_hdmi_mux_pads();
+   omap4_hdmi_mux_pads(ext_pull_up);
 
return 0;
 }
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index f4913d6..27b71f4 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -310,7 +310,7 @@ struct omap_dss_board_info {
 /* Init with the board info */
 extern int omap_display_init(struct omap_dss_board_info *board_data);
 /* HDMI mux init*/
-extern int omap_hdmi_enable_pads(void);
+extern int omap_hdmi_enable_pads(int ext_pull_up);
 
 struct omap_display_platform_data {
struct omap_dss_board_info *board_data;
-- 
1.7.5.4

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 2/2] OMAPDSS: HDMI: Disable HDMI DDC internal pull up

2011-11-11 Thread mythripk
From: Mythri P K mythr...@ti.com

Disables the internal pull resistor for SDA and SCL enabled by
default as there are expernal pull up's in 4460 and 4430 ES2.3,
It is done to avoid the EDID read failure.

Signed-off-by: Ricardo Salveti de Araujo ricardo.salv...@linaro.org
Signed-off-by: Mythri P K mythr...@ti.com
---
 arch/arm/mach-omap2/board-4430sdp.c|   12 +++-
 arch/arm/mach-omap2/board-omap4panda.c |   13 -
 arch/arm/mach-omap2/display.c  |   17 ++---
 include/video/omapdss.h|2 +-
 4 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/arch/arm/mach-omap2/board-4430sdp.c 
b/arch/arm/mach-omap2/board-4430sdp.c
index 4a519a3..91d3742 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -826,7 +826,17 @@ static void omap_4430sdp_display_init(void)
sdp4430_lcd_init();
sdp4430_picodlp_init();
omap_display_init(sdp4430_dss_data);
-   omap_hdmi_enable_pads();
+   /*
+* 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))
+   omap_hdmi_enable_pads(1);
+   else
+   omap_hdmi_enable_pads(0);
 }
 
 #ifdef CONFIG_OMAP_MUX
diff --git a/arch/arm/mach-omap2/board-omap4panda.c 
b/arch/arm/mach-omap2/board-omap4panda.c
index 26c6440..a4e7bf8 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -541,7 +541,18 @@ void omap4_panda_display_init(void)
pr_err(error initializing panda DVI\n);
 
omap_display_init(omap4_panda_dss_data);
-   omap_hdmi_enable_pads();
+
+   /*
+* 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))
+   omap_hdmi_enable_pads(1);
+   else
+   omap_hdmi_enable_pads(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 ec7ac1b..8af5714 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(void)
+static void omap4_hdmi_mux_pads(int ext_pull_up)
 {
+   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(void)
OMAP_PIN_INPUT_PULLUP);
omap_mux_init_signal(hdmi_ddc_sda,
OMAP_PIN_INPUT_PULLUP);
+
+   if (ext_pull_up) {
+   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 int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
@@ -144,10 +155,10 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
return 0;
 }
 
-int omap_hdmi_enable_pads(void)
+int omap_hdmi_enable_pads(int ext_pull_up)
 {
if (cpu_is_omap44xx())
-   omap4_hdmi_mux_pads();
+   omap4_hdmi_mux_pads(ext_pull_up);
 
return 0;
 }
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index f4913d6..27b71f4 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -310,7 +310,7 @@ struct omap_dss_board_info {
 /* Init with the board info */
 extern int omap_display_init(struct omap_dss_board_info *board_data);
 /* HDMI mux init*/
-extern int omap_hdmi_enable_pads(void);
+extern int omap_hdmi_enable_pads(int ext_pull_up);
 
 struct omap_display_platform_data {
struct omap_dss_board_info *board_data;
-- 
1.7.5.4

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/2] OMAPDSS: HDMI: Disable HDMI DDC internal pull up

2011-11-11 Thread Tony Lindgren
* mythr...@ti.com mythr...@ti.com [11 04:41]:
 From: Mythri P K mythr...@ti.com
 
 Disables the internal pull resistor for SDA and SCL enabled by
 default as there are expernal pull up's in 4460 and 4430 ES2.3,
 It is done to avoid the EDID read failure.
 
 Signed-off-by: Ricardo Salveti de Araujo ricardo.salv...@linaro.org
 Signed-off-by: Mythri P K mythr...@ti.com
 ---
  arch/arm/mach-omap2/board-4430sdp.c|   12 +++-
  arch/arm/mach-omap2/board-omap4panda.c |   13 -
  arch/arm/mach-omap2/display.c  |   17 ++---
  include/video/omapdss.h|2 +-
  4 files changed, 38 insertions(+), 6 deletions(-)
 
 diff --git a/arch/arm/mach-omap2/board-4430sdp.c 
 b/arch/arm/mach-omap2/board-4430sdp.c
 index 4a519a3..91d3742 100644
 --- a/arch/arm/mach-omap2/board-4430sdp.c
 +++ b/arch/arm/mach-omap2/board-4430sdp.c
 @@ -826,7 +826,17 @@ static void omap_4430sdp_display_init(void)
   sdp4430_lcd_init();
   sdp4430_picodlp_init();
   omap_display_init(sdp4430_dss_data);
 - omap_hdmi_enable_pads();
 + /*
 +  * 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))
 + omap_hdmi_enable_pads(1);
 + else
 + omap_hdmi_enable_pads(0);
  }

If you now have omap_hdmi_init(), then you can just pass it board
specific flags like OMAP_HDMI_EXTERNAL_PULL. The generic init function
will make it easier to move things over to DT also.

Regards,

Tony
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html