summaryrefslogtreecommitdiffstats
path: root/arch/m68knommu/platform/5272
diff options
context:
space:
mode:
authorGreg Ungerer <gerg@uclinux.org>2009-05-19 06:52:40 +0200
committerGreg Ungerer <gerg@uclinux.org>2009-09-16 01:43:51 +0200
commit04b75b10dceadf937e3707ecc3dfccf6a076fd29 (patch)
tree87965d12b8f7eb622efd1d36bebd2a7b8a26452e /arch/m68knommu/platform/5272
parentm68knommu: support code to mask external interrupts on old ColdFire CPU's (diff)
downloadlinux-04b75b10dceadf937e3707ecc3dfccf6a076fd29.tar.xz
linux-04b75b10dceadf937e3707ecc3dfccf6a076fd29.zip
m68knommu: simplify ColdFire "timers" clock initialization
The ColdFire "timers" clock setup can be simplified. There is really no need for the flexible per-platform setup code. The clock interrupt can be hard defined per CPU platform (in CPU include files). This makes the actual timer code simpler. Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Diffstat (limited to 'arch/m68knommu/platform/5272')
-rw-r--r--arch/m68knommu/platform/5272/config.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/arch/m68knommu/platform/5272/config.c b/arch/m68knommu/platform/5272/config.c
index 94a66c12c96a..b16add9aa4e5 100644
--- a/arch/m68knommu/platform/5272/config.c
+++ b/arch/m68knommu/platform/5272/config.c
@@ -20,12 +20,6 @@
/***************************************************************************/
-extern unsigned int mcf_timervector;
-extern unsigned int mcf_profilevector;
-extern unsigned int mcf_timerlevel;
-
-/***************************************************************************/
-
/*
* Some platforms need software versions of the GPIO data registers.
*/
@@ -148,14 +142,15 @@ void mcf_disableall(void)
/***************************************************************************/
-void mcf_settimericr(int timer, int level)
+static void __init m5272_timers_init(void)
{
- volatile unsigned long *icrp;
+ /* Timer1 @ level6 is always used as system timer */
+ writel((0x8 | 0x6) << ((4 - 1) * 4), MCF_MBAR + MCFSIM_ICR1);
- if ((timer >= 1 ) && (timer <= 4)) {
- icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1);
- *icrp = (0x8 | level) << ((4 - timer) * 4);
- }
+#ifdef CONFIG_HIGHPROFILE
+ /* Timer2 @ level7 is to be used as a high speed profile timer */
+ writel((0x8 | 0x7) << ((4 - 2) * 4), MCF_MBAR + MCFSIM_ICR1);
+#endif
}
/***************************************************************************/
@@ -195,9 +190,8 @@ void __init config_BSP(char *commandp, int size)
commandp[size-1] = 0;
#endif
- mcf_timervector = 69;
- mcf_profilevector = 70;
mach_reset = m5272_cpu_reset;
+ m5272_timers_init();
}
/***************************************************************************/