|
@@ -742,16 +742,17 @@ EXPORT_SYMBOL_GPL(omap_dm_timers_active);
|
|
|
int __init omap_dm_timer_init(void)
|
|
|
{
|
|
|
struct omap_dm_timer *timer;
|
|
|
- int i;
|
|
|
+ int i, map_size = SZ_8K; /* Module 4KB + L4 4KB except on omap1 */
|
|
|
|
|
|
if (!(cpu_is_omap16xx() || cpu_class_is_omap2()))
|
|
|
return -ENODEV;
|
|
|
|
|
|
spin_lock_init(&dm_timer_lock);
|
|
|
|
|
|
- if (cpu_class_is_omap1())
|
|
|
+ if (cpu_class_is_omap1()) {
|
|
|
dm_timers = omap1_dm_timers;
|
|
|
- else if (cpu_is_omap24xx()) {
|
|
|
+ map_size = SZ_2K;
|
|
|
+ } else if (cpu_is_omap24xx()) {
|
|
|
dm_timers = omap2_dm_timers;
|
|
|
dm_source_names = omap2_dm_source_names;
|
|
|
dm_source_clocks = omap2_dm_source_clocks;
|
|
@@ -774,10 +775,11 @@ int __init omap_dm_timer_init(void)
|
|
|
|
|
|
for (i = 0; i < dm_timer_count; i++) {
|
|
|
timer = &dm_timers[i];
|
|
|
- if (cpu_class_is_omap1())
|
|
|
- timer->io_base = OMAP1_IO_ADDRESS(timer->phys_base);
|
|
|
- else
|
|
|
- timer->io_base = OMAP2_IO_ADDRESS(timer->phys_base);
|
|
|
+
|
|
|
+ /* Static mapping, never released */
|
|
|
+ timer->io_base = ioremap(timer->phys_base, map_size);
|
|
|
+ BUG_ON(!timer->io_base);
|
|
|
+
|
|
|
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \
|
|
|
defined(CONFIG_ARCH_OMAP4)
|
|
|
if (cpu_class_is_omap2()) {
|