diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/board-4430sdp.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-omap4panda.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-omap2/display.c | 22 |
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 | ||
536 | static void __init omap4_panda_init(void) | 544 | static 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 | ||
100 | static void omap4_hdmi_mux_pads() | 100 | static 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 | ||
114 | static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes) | 130 | static 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 | ||
147 | int omap_hdmi_init(void) | 163 | int 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 | } |