You are right. OMAP1 device.c has been forgotten. I will fix that. Roman -----Original Message----- From: ext Tony Lindgren [mailto:tony@xxxxxxxxxxx] Sent: 28 May, 2008 18:23 To: Tereshonkov Roman (Nokia-D/Helsinki) Cc: linux-omap@xxxxxxxxxxxxxxx Subject: Re: [PATCH] Add SDTI device for the OMAP3 and unify addressdefinitions. * Roman Tereshonkov <roman.tereshonkov@xxxxxxxxx> [080528 05:17]: > > Signed-off-by: Roman Tereshonkov <roman.tereshonkov@xxxxxxxxx> > --- > arch/arm/mach-omap2/devices.c | 23 ++++++++++++++++++++++- > drivers/misc/sti/sti.c | 2 +- > 2 files changed, 23 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c > index d02e9e5..d8fb3f8 100644 > --- a/arch/arm/mach-omap2/devices.c > +++ b/arch/arm/mach-omap2/devices.c > @@ -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", > diff --git a/drivers/misc/sti/sti.c b/drivers/misc/sti/sti.c > index e828860..880c34b 100644 > --- a/drivers/misc/sti/sti.c > +++ b/drivers/misc/sti/sti.c > @@ -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, Hmm, so does this still work for 16xx and 24xx? To me it looks like mach-omap1/devices.c mach-omap2/devices.c are both passing a virtual address? So maybe change mach-omap1/devices.c to pass physical address for both STI_BASE and CHANNEL_BASE, and then change mach-omap2/devices.c to pass physical address for OMAP2_STI_BASE. Looks like OMAP2_STI_CHANNEL_BASE is already a physical address as it needs to be ioremapped. To add to the confusion, Regards, Tony -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html