void coldfire_timer_init(void (*handler)(int, void *, struct pt_regs *)) { volatile unsigned short *timerp; volatile unsigned char *icrp; /* Set up TIMER 1 as poll clock */ timerp = (volatile unsigned short *) (MCF_MBAR + MCFTIMER_BASE1); timerp[MCFTIMER_TMR] = MCFTIMER_TMR_DISABLE; timerp[MCFTIMER_TRR] = (unsigned short) ((MCF_CLK / 16) / HZ); timerp[MCFTIMER_TMR] = MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE; icrp = (volatile unsigned char *) (MCF_MBAR + MCFSIM_TIMER1ICR); #ifdef CONFIG_NETtel *icrp = MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3; request_irq(30, handler, SA_INTERRUPT, "ColdFire Timer", NULL); reset_setupbutton(); #else *icrp = MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL5 | MCFSIM_ICR_PRI3; request_irq(29, handler, SA_INTERRUPT, "ColdFire Timer", NULL); #endif mcf_setimr(mcf_getimr() & ~MCFSIM_IMR_TIMER1); }
void coldfire_timer_init(void (*handler)(int, void *, struct pt_regs *)) { volatile unsigned short *timerp; volatile unsigned char *icrp; /* Set up TIMER 1 as poll clock */ timerp = (volatile unsigned short *) (MCF_MBAR + MCFTIMER_BASE1); timerp[MCFTIMER_TMR] = MCFTIMER_TMR_DISABLE; timerp[MCFTIMER_TRR] = (unsigned short) ((MCF_BUSCLK / 16) / HZ); timerp[MCFTIMER_TMR] = MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE; icrp = (volatile unsigned char *) (MCF_MBAR + MCFSIM_TIMER1ICR); #if defined(CONFIG_FLASH_SNAPGEAR) || defined(CONFIG_CLEOPATRA) *icrp = MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3; request_irq(30, handler, SA_INTERRUPT, "ColdFire Timer", NULL); #else *icrp = MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL5 | MCFSIM_ICR_PRI3; request_irq(29, handler, SA_INTERRUPT, "ColdFire Timer", NULL); #endif #ifdef CONFIG_RESETSWITCH /* This is not really the right place to do this... */ reset_setupbutton(); #endif #ifdef CONFIG_HIGHPROFILE coldfire_profile_init(); #endif mcf_setimr(mcf_getimr() & ~MCFSIM_IMR_TIMER1); }
void coldfire_timer_init(void (*handler)(int, void *, struct pt_regs *)) { volatile unsigned short *timerp; volatile unsigned long *icrp; /* Set up TIMER 4 as poll clock */ timerp = (volatile unsigned short *) (MCF_MBAR + MCFTIMER_BASE4); timerp[MCFTIMER_TMR] = MCFTIMER_TMR_DISABLE; timerp[MCFTIMER_TRR] = (unsigned short) ((MCF_CLK / 16) / HZ); timerp[MCFTIMER_TMR] = MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE; icrp = (volatile unsigned long *) (MCF_MBAR + MCFSIM_ICR1); *icrp = 0x0000000d; /* TMR4 with priority 5 */ request_irq(72, handler, SA_INTERRUPT, "ColdFire Timer", NULL); #if defined(CONFIG_RESETSWITCH) && !defined(CONFIG_BOARD_UC5272) /* This is not really the right place to do this... */ reset_setupbutton(); #endif }