Add SDTI device for OMAP3 and unify address definitions for OMAP1 and OMAP2.
authorRoman Tereshonkov <roman.tereshonkov@nokia.com>
Wed, 28 May 2008 16:05:58 +0000 (19:05 +0300)
committerTony Lindgren <tony@atomide.com>
Wed, 28 May 2008 20:33:05 +0000 (13:33 -0700)
Signed-off-by: Roman Tereshonkov <roman.tereshonkov@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap1/devices.c
arch/arm/mach-omap2/devices.c
drivers/misc/sti/sti.c

index da8a3ac..15ab43c 100644 (file)
@@ -102,7 +102,7 @@ static inline void omap_init_mbox(void) { }
 
 #if defined(CONFIG_OMAP_STI)
 
-#define OMAP1_STI_BASE         IO_ADDRESS(0xfffea000)
+#define OMAP1_STI_BASE         0xfffea000
 #define OMAP1_STI_CHANNEL_BASE (OMAP1_STI_BASE + 0x400)
 
 static struct resource sti_resources[] = {
index d02e9e5..d8fb3f8 100644 (file)
@@ -92,7 +92,9 @@ static inline void omap_init_mbox(void) { }
 
 #if defined(CONFIG_OMAP_STI)
 
-#define OMAP2_STI_BASE         IO_ADDRESS(0x48068000)
+#if defined(CONFIG_ARCH_OMAP2)
+
+#define OMAP2_STI_BASE         0x48068000
 #define OMAP2_STI_CHANNEL_BASE 0x54000000
 #define OMAP2_STI_IRQ          4
 
@@ -112,6 +114,25 @@ static struct resource sti_resources[] = {
                .flags          = IORESOURCE_IRQ,
        }
 };
+#elif defined(CONFIG_ARCH_OMAP3)
+
+#define OMAP3_SDTI_BASE                0x54500000
+#define OMAP3_SDTI_CHANNEL_BASE        0x54600000
+
+static struct resource sti_resources[] = {
+       {
+               .start          = OMAP3_SDTI_BASE,
+               .end            = OMAP3_SDTI_BASE + 0xFFF,
+               .flags          = IORESOURCE_MEM,
+       },
+       {
+               .start          = OMAP3_SDTI_CHANNEL_BASE,
+               .end            = OMAP3_SDTI_CHANNEL_BASE + SZ_1M - 1,
+               .flags          = IORESOURCE_MEM,
+       }
+};
+
+#endif
 
 static struct platform_device sti_device = {
        .name           = "sti",
index e828860..1140fed 100644 (file)
@@ -356,7 +356,7 @@ static int __devinit sti_probe(struct platform_device *pdev)
        if (unlikely(ret != 0))
                goto err;
 
-       sti_base = res->start;
+       sti_base = io_p2v(res->start);
 
        /*
         * OMAP 16xx keeps channels in a relatively sane location,
@@ -364,7 +364,7 @@ static int __devinit sti_probe(struct platform_device *pdev)
         * remapped.
         */
        if (cpu_is_omap16xx())
-               sti_channel_base = cres->start;
+               sti_channel_base = io_p2v(cres->start);
        else if (cpu_is_omap24xx()) {
                unsigned int size = cres->end - cres->start;