|
@@ -20,12 +20,6 @@
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
-extern unsigned int mcf_timervector;
|
|
|
-extern unsigned int mcf_profilevector;
|
|
|
-extern unsigned int mcf_timerlevel;
|
|
|
-
|
|
|
-/***************************************************************************/
|
|
|
-
|
|
|
static struct mcf_platform_uart m5407_uart_platform[] = {
|
|
|
{
|
|
|
.mapbase = MCF_MBAR + MCFUART_BASE1,
|
|
@@ -59,6 +53,7 @@ static void __init m5407_uart_init_line(int line, int irq)
|
|
|
} else if (line == 1) {
|
|
|
writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR);
|
|
|
writeb(irq, MCF_MBAR + MCFUART_BASE2 + MCFUART_UIVR);
|
|
|
+ mcf_setimr(mcf_getimr() & ~MCFSIM_IMR_UART2);
|
|
|
mcf_clrimr(MCFINTC_UART1);
|
|
|
}
|
|
|
}
|
|
@@ -74,21 +69,17 @@ static void __init m5407_uarts_init(void)
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
-void mcf_settimericr(unsigned int timer, unsigned int level)
|
|
|
+static void __init m5407_timers_init(void)
|
|
|
{
|
|
|
- volatile unsigned char *icrp;
|
|
|
- unsigned int icr, imr;
|
|
|
-
|
|
|
- if (timer <= 2) {
|
|
|
- switch (timer) {
|
|
|
- case 2: icr = MCFSIM_TIMER2ICR; imr = MCFINTC_TIMER2; break;
|
|
|
- default: icr = MCFSIM_TIMER1ICR; imr = MCFINTC_TIMER1; break;
|
|
|
- }
|
|
|
-
|
|
|
- icrp = (volatile unsigned char *) (MCF_MBAR + icr);
|
|
|
- *icrp = MCFSIM_ICR_AUTOVEC | (level << 2) | MCFSIM_ICR_PRI3;
|
|
|
- mcf_clrimr(imr);
|
|
|
- }
|
|
|
+ /* Timer1 is always used as system timer */
|
|
|
+ writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3,
|
|
|
+ MCF_MBAR + MCFSIM_TIMER1ICR);
|
|
|
+
|
|
|
+#ifdef CONFIG_HIGHPROFILE
|
|
|
+ /* Timer2 is to be used as a high speed profile timer */
|
|
|
+ writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL7 | MCFSIM_ICR_PRI3,
|
|
|
+ MCF_MBAR + MCFSIM_TIMER2ICR);
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
/***************************************************************************/
|
|
@@ -106,14 +97,8 @@ void m5407_cpu_reset(void)
|
|
|
|
|
|
void __init config_BSP(char *commandp, int size)
|
|
|
{
|
|
|
-#if defined(CONFIG_CLEOPATRA)
|
|
|
- /* Different timer setup - to prevent device clash */
|
|
|
- mcf_timervector = 30;
|
|
|
- mcf_profilevector = 31;
|
|
|
- mcf_timerlevel = 6;
|
|
|
-#endif
|
|
|
-
|
|
|
mach_reset = m5407_cpu_reset;
|
|
|
+ m5407_timers_init();
|
|
|
}
|
|
|
|
|
|
/***************************************************************************/
|