aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c9
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c10
-rw-r--r--arch/arm/mach-omap2/display.c22
3 files changed, 36 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index 312b158240ed..e1fe304ce361 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -814,7 +814,14 @@ static void omap_4430sdp_display_init(void)
814 sdp4430_lcd_init(); 814 sdp4430_lcd_init();
815 sdp4430_picodlp_init(); 815 sdp4430_picodlp_init();
816 omap_display_init(&sdp4430_dss_data); 816 omap_display_init(&sdp4430_dss_data);
817 omap_hdmi_init(); 817 /*
818 * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and
819 * later have external pull up on the HDMI I2C lines
820 */
821 if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2)
822 omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP);
823 else
824 omap_hdmi_init(0);
818} 825}
819 826
820#ifdef CONFIG_OMAP_MUX 827#ifdef CONFIG_OMAP_MUX
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
index 9cc41ce29dab..3e1c507fb01f 100644
--- a/arch/arm/mach-omap2/board-omap4panda.c
+++ b/arch/arm/mach-omap2/board-omap4panda.c
@@ -530,7 +530,15 @@ void omap4_panda_display_init(void)
530 pr_err("error initializing panda DVI\n"); 530 pr_err("error initializing panda DVI\n");
531 531
532 omap_display_init(&omap4_panda_dss_data); 532 omap_display_init(&omap4_panda_dss_data);
533 omap_hdmi_init(); 533
534 /*
535 * OMAP4460SDP/Blaze and OMAP4430 ES2.3 SDP/Blaze boards and
536 * later have external pull up on the HDMI I2C lines
537 */
538 if (cpu_is_omap446x() || omap_rev() > OMAP4430_REV_ES2_2)
539 omap_hdmi_init(OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP);
540 else
541 omap_hdmi_init(0);
534} 542}
535 543
536static void __init omap4_panda_init(void) 544static void __init omap4_panda_init(void)
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}