summaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dss.c
diff options
context:
space:
mode:
authorSenthilvadivu Guruswamy <svadivu@ti.com>2011-01-24 07:22:04 +0100
committerTomi Valkeinen <tomi.valkeinen@ti.com>2011-03-11 14:46:21 +0100
commitea9da36a304eed585fc5ef89c0f1c460eca61b48 (patch)
treeb1e14d36fc7c25f845677c6d3249311d0304cd09 /drivers/video/omap2/dss/dss.c
parentOMAP2,3: DSS2: replace printk with dev_dbg in init (diff)
downloadlinux-ea9da36a304eed585fc5ef89c0f1c460eca61b48.tar.xz
linux-ea9da36a304eed585fc5ef89c0f1c460eca61b48.zip
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/dss.c')
-rw-r--r--drivers/video/omap2/dss/dss.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/video/omap2/dss/dss.c b/drivers/video/omap2/dss/dss.c
index 72b395d69aae..ee9ce4af58b5 100644
--- a/drivers/video/omap2/dss/dss.c
+++ b/drivers/video/omap2/dss/dss.c
@@ -34,8 +34,6 @@
#include <plat/clock.h>
#include "dss.h"
-#define DSS_BASE 0x48050000
-
#define DSS_SZ_REGS SZ_512
struct dss_reg {
@@ -567,8 +565,15 @@ static int dss_init(bool skip_init)
{
int r;
u32 rev;
+ struct resource *dss_mem;
- dss.base = ioremap(DSS_BASE, DSS_SZ_REGS);
+ dss_mem = platform_get_resource(dss.pdev, IORESOURCE_MEM, 0);
+ if (!dss_mem) {
+ DSSERR("can't get IORESOURCE_MEM DSS\n");
+ r = -EINVAL;
+ goto fail0;
+ }
+ dss.base = ioremap(dss_mem->start, resource_size(dss_mem));
if (!dss.base) {
DSSERR("can't ioremap DSS\n");
r = -ENOMEM;