aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dispc.c
diff options
context:
space:
mode:
authorSenthilvadivu Guruswamy <svadivu@ti.com>2011-01-24 01:22:04 -0500
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-03-11 08:46:21 -0500
commitea9da36a304eed585fc5ef89c0f1c460eca61b48 (patch)
treeb1e14d36fc7c25f845677c6d3249311d0304cd09 /drivers/video/omap2/dss/dispc.c
parenta06b62f8004bd95c132fa312e8593c9a10f466ec (diff)
OMAP2,3: DSS2: Use platform device to get baseaddr
DSS, DISPC, DSI, RFBI, VENC baseaddr can be obtained from platform_get_resource(). This API in turn picks the right silicon baseaddr from the hwmod database. So hardcoding of base addr could be removed. Reviewed-by: Paul Walmsley <paul@pwsan.com> Reviewed-by: Kevin Hilman <khilman@ti.com> Tested-by: Kevin Hilman <khilman@ti.com> Signed-off-by: Sumit Semwal <sumit.semwal@ti.com> Signed-off-by: Senthilvadivu Guruswamy <svadivu@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/dispc.c')
-rw-r--r--drivers/video/omap2/dss/dispc.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/video/omap2/dss/dispc.c b/drivers/video/omap2/dss/dispc.c
index 032e5dd19e09..96e37f8e75dc 100644
--- a/drivers/video/omap2/dss/dispc.c
+++ b/drivers/video/omap2/dss/dispc.c
@@ -42,8 +42,6 @@
42#include "dss_features.h" 42#include "dss_features.h"
43 43
44/* DISPC */ 44/* DISPC */
45#define DISPC_BASE 0x48050400
46
47#define DISPC_SZ_REGS SZ_4K 45#define DISPC_SZ_REGS SZ_4K
48 46
49struct dispc_reg { u16 idx; }; 47struct dispc_reg { u16 idx; };
@@ -3324,6 +3322,8 @@ int dispc_setup_plane(enum omap_plane plane,
3324static int omap_dispchw_probe(struct platform_device *pdev) 3322static int omap_dispchw_probe(struct platform_device *pdev)
3325{ 3323{
3326 u32 rev; 3324 u32 rev;
3325 struct resource *dispc_mem;
3326
3327 dispc.pdev = pdev; 3327 dispc.pdev = pdev;
3328 3328
3329 spin_lock_init(&dispc.irq_lock); 3329 spin_lock_init(&dispc.irq_lock);
@@ -3335,7 +3335,12 @@ static int omap_dispchw_probe(struct platform_device *pdev)
3335 3335
3336 INIT_WORK(&dispc.error_work, dispc_error_worker); 3336 INIT_WORK(&dispc.error_work, dispc_error_worker);
3337 3337
3338 dispc.base = ioremap(DISPC_BASE, DISPC_SZ_REGS); 3338 dispc_mem = platform_get_resource(dispc.pdev, IORESOURCE_MEM, 0);
3339 if (!dispc_mem) {
3340 DSSERR("can't get IORESOURCE_MEM DISPC\n");
3341 return -EINVAL;
3342 }
3343 dispc.base = ioremap(dispc_mem->start, resource_size(dispc_mem));
3339 if (!dispc.base) { 3344 if (!dispc.base) {
3340 DSSERR("can't ioremap DISPC\n"); 3345 DSSERR("can't ioremap DISPC\n");
3341 return -ENOMEM; 3346 return -ENOMEM;