diff options
author | Senthilvadivu Guruswamy <svadivu@ti.com> | 2011-01-24 01:22:04 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2011-03-11 08:46:21 -0500 |
commit | ea9da36a304eed585fc5ef89c0f1c460eca61b48 (patch) | |
tree | b1e14d36fc7c25f845677c6d3249311d0304cd09 /drivers/video/omap2/dss/dispc.c | |
parent | a06b62f8004bd95c132fa312e8593c9a10f466ec (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.c | 11 |
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 | ||
49 | struct dispc_reg { u16 idx; }; | 47 | struct dispc_reg { u16 idx; }; |
@@ -3324,6 +3322,8 @@ int dispc_setup_plane(enum omap_plane plane, | |||
3324 | static int omap_dispchw_probe(struct platform_device *pdev) | 3322 | static 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; |