aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/display.c
diff options
context:
space:
mode:
authorMythri P K <mythripk@ti.com>2012-01-02 03:32:38 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-01-05 03:34:50 -0500
commit9a9016832d2601a290db4dce6dd55552bdae5b1a (patch)
tree4b21ff53e9308f7258512c0ced048e99687e2d63 /arch/arm/mach-omap2/display.c
parentee9dfd82ff1317ac5c0147fe21508ad6d7df4cff (diff)
OMAPDSS: HDMI: Disable DDC internal pull up
Disables the internal pull resistor for SDA and SCL which are enabled by default, as there are external 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@linaro.org> Signed-off-by: Mythri P K <mythripk@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/display.c')
-rw-r--r--arch/arm/mach-omap2/display.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index 8436088ffe13..ffd9bd983023 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 = {
97 { "dss_hdmi", "omapdss_hdmi", -1 }, 97 { "dss_hdmi", "omapdss_hdmi", -1 },
98}; 98};
99 99
100static void omap4_hdmi_mux_pads() 100static void omap4_hdmi_mux_pads(enum omap_hdmi_flags flags)
101{ 101{
102 u32 reg;
103 u16 control_i2c_1;
104
102 /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */ 105 /* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
103 omap_mux_init_signal("hdmi_hpd", 106 omap_mux_init_signal("hdmi_hpd",
104 OMAP_PIN_INPUT_PULLUP); 107 OMAP_PIN_INPUT_PULLUP);
@@ -109,6 +112,19 @@ static void omap4_hdmi_mux_pads()
109 OMAP_PIN_INPUT_PULLUP); 112 OMAP_PIN_INPUT_PULLUP);
110 omap_mux_init_signal("hdmi_ddc_sda", 113 omap_mux_init_signal("hdmi_ddc_sda",
111 OMAP_PIN_INPUT_PULLUP); 114 OMAP_PIN_INPUT_PULLUP);
115
116 /*
117 * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and
118 * HDMI_DDC_SCL_PULLUPRESX (bit 24) are set to disable
119 * internal pull up resistor.
120 */
121 if (flags & OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP) {
122 control_i2c_1 = OMAP4_CTRL_MODULE_PAD_CORE_CONTROL_I2C_1;
123 reg = omap4_ctrl_pad_readl(control_i2c_1);
124 reg |= (OMAP4_HDMI_DDC_SDA_PULLUPRESX_MASK |
125 OMAP4_HDMI_DDC_SCL_PULLUPRESX_MASK);
126 omap4_ctrl_pad_writel(reg, control_i2c_1);
127 }
112} 128}
113 129
114static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) 130static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
@@ -144,10 +160,10 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
144 return 0; 160 return 0;
145} 161}
146 162
147int omap_hdmi_init(void) 163int omap_hdmi_init(enum omap_hdmi_flags flags)
148{ 164{
149 if (cpu_is_omap44xx()) 165 if (cpu_is_omap44xx())
150 omap4_hdmi_mux_pads(); 166 omap4_hdmi_mux_pads(flags);
151 167
152 return 0; 168 return 0;
153} 169}