aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-12-13 07:30:56 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-12-13 07:30:56 -0500
commite7f5c9a16ea2648a3e85af8e34191026bf3dcb62 (patch)
treead79eb6b57058e69013408d8ae4267ea06536ca6 /arch/arm/mach-omap2
parenta240af2eb24679f4d27d87281b25faee0a25df1a (diff)
parentbd0f5cc3641cb76ae8fa2cc4924c29da157f8b2d (diff)
Merge tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux into for-linus
OMAPDSS changes for 3.8, including: - use dynanic debug prints - OMAP platform dependency removals - Creation of compat-layer, helping us to improve omapdrm - Misc cleanups, aiming to make omadss more in line with the upcoming common display framework * tag 'omapdss-for-3.8' of git://gitorious.org/linux-omap-dss2/linux: (140 commits) OMAPDSS: fix TV-out issue with DSI PLL Revert "OMAPFB: simplify locking" OMAPFB: remove silly loop in fb2display() OMAPFB: fix error handling in omapfb_find_best_mode() OMAPFB: use devm_kzalloc to allocate omapfb2_device OMAPDSS: DISPC: remove dispc fck uses OMAPDSS: DISPC: get dss clock rate from dss driver OMAPDSS: use omapdss_compat_init() in other drivers OMAPDSS: export dispc functions OMAPDSS: export dss_feat functions OMAPDSS: export dss_mgr_ops functions OMAPDSS: separate compat files in the Makefile OMAPDSS: move display sysfs init to compat layer OMAPDSS: DPI: use dispc's check_timings OMAPDSS: DISPC: add dispc_ovl_check() OMAPDSS: move irq handling to dispc-compat OMAPDSS: move omap_dispc_wait_for_irq_interruptible_timeout to dispc-compat.c OMAPDSS: move blocking mgr enable/disable to compat layer OMAPDSS: manage framedone irq with mgr ops OMAPDSS: add manager ops ...
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/board-rx51-video.c14
-rw-r--r--arch/arm/mach-omap2/board-rx51.c3
-rw-r--r--arch/arm/mach-omap2/display.c53
-rw-r--r--arch/arm/mach-omap2/sdrc.c16
4 files changed, 48 insertions, 38 deletions
diff --git a/arch/arm/mach-omap2/board-rx51-video.c b/arch/arm/mach-omap2/board-rx51-video.c
index c22e111bcd00..46f4fc982766 100644
--- a/arch/arm/mach-omap2/board-rx51-video.c
+++ b/arch/arm/mach-omap2/board-rx51-video.c
@@ -16,7 +16,6 @@
16#include <linux/mm.h> 16#include <linux/mm.h>
17#include <asm/mach-types.h> 17#include <asm/mach-types.h>
18#include <video/omapdss.h> 18#include <video/omapdss.h>
19#include <plat/vram.h>
20#include <linux/platform_data/spi-omap2-mcspi.h> 19#include <linux/platform_data/spi-omap2-mcspi.h>
21 20
22#include "board-rx51.h" 21#include "board-rx51.h"
@@ -87,17 +86,4 @@ static int __init rx51_video_init(void)
87} 86}
88 87
89subsys_initcall(rx51_video_init); 88subsys_initcall(rx51_video_init);
90
91void __init rx51_video_mem_init(void)
92{
93 /*
94 * GFX 864x480x32bpp
95 * VID1/2 1280x720x32bpp double buffered
96 */
97 omap_vram_set_sdram_vram(PAGE_ALIGN(864 * 480 * 4) +
98 2 * PAGE_ALIGN(1280 * 720 * 4 * 2), 0);
99}
100
101#else
102void __init rx51_video_mem_init(void) { }
103#endif /* defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) */ 89#endif /* defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) */
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index 7bbb05d9689b..6e0de6f83278 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -34,8 +34,6 @@
34 34
35#define RX51_GPIO_SLEEP_IND 162 35#define RX51_GPIO_SLEEP_IND 162
36 36
37extern void rx51_video_mem_init(void);
38
39static struct gpio_led gpio_leds[] = { 37static struct gpio_led gpio_leds[] = {
40 { 38 {
41 .name = "sleep_ind", 39 .name = "sleep_ind",
@@ -112,7 +110,6 @@ static void __init rx51_init(void)
112 110
113static void __init rx51_reserve(void) 111static void __init rx51_reserve(void)
114{ 112{
115 rx51_video_mem_init();
116 omap_reserve(); 113 omap_reserve();
117} 114}
118 115
diff --git a/arch/arm/mach-omap2/display.c b/arch/arm/mach-omap2/display.c
index 1011995f150a..282c814ea2e2 100644
--- a/arch/arm/mach-omap2/display.c
+++ b/arch/arm/mach-omap2/display.c
@@ -100,17 +100,20 @@ static const struct omap_dss_hwmod_data omap4_dss_hwmod_data[] __initconst = {
100 { "dss_hdmi", "omapdss_hdmi", -1 }, 100 { "dss_hdmi", "omapdss_hdmi", -1 },
101}; 101};
102 102
103static void __init omap4_hdmi_mux_pads(enum omap_hdmi_flags flags) 103static void __init omap4_tpd12s015_mux_pads(void)
104{ 104{
105 u32 reg;
106 u16 control_i2c_1;
107
108 omap_mux_init_signal("hdmi_cec", 105 omap_mux_init_signal("hdmi_cec",
109 OMAP_PIN_INPUT_PULLUP); 106 OMAP_PIN_INPUT_PULLUP);
110 omap_mux_init_signal("hdmi_ddc_scl", 107 omap_mux_init_signal("hdmi_ddc_scl",
111 OMAP_PIN_INPUT_PULLUP); 108 OMAP_PIN_INPUT_PULLUP);
112 omap_mux_init_signal("hdmi_ddc_sda", 109 omap_mux_init_signal("hdmi_ddc_sda",
113 OMAP_PIN_INPUT_PULLUP); 110 OMAP_PIN_INPUT_PULLUP);
111}
112
113static void __init omap4_hdmi_mux_pads(enum omap_hdmi_flags flags)
114{
115 u32 reg;
116 u16 control_i2c_1;
114 117
115 /* 118 /*
116 * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and 119 * CONTROL_I2C_1: HDMI_DDC_SDA_PULLUPRESX (bit 28) and
@@ -161,8 +164,10 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
161 164
162int __init omap_hdmi_init(enum omap_hdmi_flags flags) 165int __init omap_hdmi_init(enum omap_hdmi_flags flags)
163{ 166{
164 if (cpu_is_omap44xx()) 167 if (cpu_is_omap44xx()) {
165 omap4_hdmi_mux_pads(flags); 168 omap4_hdmi_mux_pads(flags);
169 omap4_tpd12s015_mux_pads();
170 }
166 171
167 return 0; 172 return 0;
168} 173}
@@ -284,6 +289,35 @@ err:
284 return ERR_PTR(r); 289 return ERR_PTR(r);
285} 290}
286 291
292static enum omapdss_version __init omap_display_get_version(void)
293{
294 if (cpu_is_omap24xx())
295 return OMAPDSS_VER_OMAP24xx;
296 else if (cpu_is_omap3630())
297 return OMAPDSS_VER_OMAP3630;
298 else if (cpu_is_omap34xx()) {
299 if (soc_is_am35xx()) {
300 return OMAPDSS_VER_AM35xx;
301 } else {
302 if (omap_rev() < OMAP3430_REV_ES3_0)
303 return OMAPDSS_VER_OMAP34xx_ES1;
304 else
305 return OMAPDSS_VER_OMAP34xx_ES3;
306 }
307 } else if (omap_rev() == OMAP4430_REV_ES1_0)
308 return OMAPDSS_VER_OMAP4430_ES1;
309 else if (omap_rev() == OMAP4430_REV_ES2_0 ||
310 omap_rev() == OMAP4430_REV_ES2_1 ||
311 omap_rev() == OMAP4430_REV_ES2_2)
312 return OMAPDSS_VER_OMAP4430_ES2;
313 else if (cpu_is_omap44xx())
314 return OMAPDSS_VER_OMAP4;
315 else if (soc_is_omap54xx())
316 return OMAPDSS_VER_OMAP5;
317 else
318 return OMAPDSS_VER_UNKNOWN;
319}
320
287int __init omap_display_init(struct omap_dss_board_info *board_data) 321int __init omap_display_init(struct omap_dss_board_info *board_data)
288{ 322{
289 int r = 0; 323 int r = 0;
@@ -291,9 +325,18 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
291 int i, oh_count; 325 int i, oh_count;
292 const struct omap_dss_hwmod_data *curr_dss_hwmod; 326 const struct omap_dss_hwmod_data *curr_dss_hwmod;
293 struct platform_device *dss_pdev; 327 struct platform_device *dss_pdev;
328 enum omapdss_version ver;
294 329
295 /* create omapdss device */ 330 /* create omapdss device */
296 331
332 ver = omap_display_get_version();
333
334 if (ver == OMAPDSS_VER_UNKNOWN) {
335 pr_err("DSS not supported on this SoC\n");
336 return -ENODEV;
337 }
338
339 board_data->version = ver;
297 board_data->dsi_enable_pads = omap_dsi_enable_pads; 340 board_data->dsi_enable_pads = omap_dsi_enable_pads;
298 board_data->dsi_disable_pads = omap_dsi_disable_pads; 341 board_data->dsi_disable_pads = omap_dsi_disable_pads;
299 board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count; 342 board_data->get_context_loss_count = omap_pm_get_dev_context_loss_count;
diff --git a/arch/arm/mach-omap2/sdrc.c b/arch/arm/mach-omap2/sdrc.c
index e3d345f46409..4282e6e967d6 100644
--- a/arch/arm/mach-omap2/sdrc.c
+++ b/arch/arm/mach-omap2/sdrc.c
@@ -160,19 +160,3 @@ void __init omap2_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
160 sdrc_write_reg(l, SDRC_POWER); 160 sdrc_write_reg(l, SDRC_POWER);
161 omap2_sms_save_context(); 161 omap2_sms_save_context();
162} 162}
163
164void omap2_sms_write_rot_control(u32 val, unsigned ctx)
165{
166 sms_write_reg(val, SMS_ROT_CONTROL(ctx));
167}
168
169void omap2_sms_write_rot_size(u32 val, unsigned ctx)
170{
171 sms_write_reg(val, SMS_ROT_SIZE(ctx));
172}
173
174void omap2_sms_write_rot_physical_ba(u32 val, unsigned ctx)
175{
176 sms_write_reg(val, SMS_ROT_PHYSICAL_BA(ctx));
177}
178