static void h8300h_disable_irq(struct irq_data *data) { int bit; int irq = data->irq - 12; bit = ipr_bit[irq]; if (bit >= 0) { if (bit < 8) ctrl_bclr(bit & 7, IPR); else ctrl_bclr(bit & 7, (IPR+1)); } }
void __init h8300_timer_setup(void) { unsigned int cnt; unsigned int div; calc_param(cnt, div, divide_rate, 0x10000); setup_irq(TPUIRQ, &tpu_irq); /* TPU module enabled */ ctrl_bclr(3, MSTPCRH); ctrl_outb(0, TSTR); ctrl_outb(CCLR0 | div, TPUBASE + _TCR); ctrl_outb(0, TPUBASE + _TMDR); ctrl_outw(0, TPUBASE + _TIOR); ctrl_outb(0x01, TPUBASE + _TIER); ctrl_outw(cnt, TPUBASE + _GRA); ctrl_bset(CONFIG_H8300_TPU_CH, TSTR); }
void __init h8300_timer_setup(void) { unsigned int div; unsigned int cnt; calc_param(cnt, div, divide_rate, 0x10000); div++; setup_irq(_8IRQ, &timer8_irq); #if defined(CONFIG_CPU_H8S) /* Timer module enable */ ctrl_bclr(0, MSTPCRL) #endif /* initalize timer */ ctrl_outw(cnt, _8BASE + TCORA); ctrl_outw(0x0000, _8BASE + _8TCSR); ctrl_outw((CMIEA|CCLR_CMA|CKS2) << 8 | div, _8BASE + _8TCR); }
static irqreturn_t timer_interrupt(int irq, void *dev_id) { h8300_timer_tick(); ctrl_bclr(0, TPUBASE + _TSR); return IRQ_HANDLED; }
static irqreturn_t timer_interrupt(int irq, void *dev_id) { h8300_timer_tick(); ctrl_bclr(CMFA, _8BASE + _8TCSR); return IRQ_HANDLED; }
static irqreturn_t timer_interrupt(int irq, void *dev_id) { h8300_timer_tick(); ctrl_bclr(CONFIG_H8300_TIMER16_CH, TISRA); return IRQ_HANDLED; }