timers.c (ead5d1f4d877e92c051e1a1ade623d0d30e71619) | timers.c (275e70e4b9dd4d59639e43fb859d0c953a374752) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/***************************************************************************/ 3 4/* 5 * timers.c -- generic ColdFire hardware timer support. 6 * 7 * Copyright (C) 1999-2008, Greg Ungerer <gerg@snapgear.com> 8 */ --- 34 unchanged lines hidden (view full) --- 43#else 44#define __raw_readtrr __raw_readw 45#define __raw_writetrr __raw_writew 46#endif 47 48static u32 mcftmr_cycles_per_jiffy; 49static u32 mcftmr_cnt; 50 | 1// SPDX-License-Identifier: GPL-2.0 2/***************************************************************************/ 3 4/* 5 * timers.c -- generic ColdFire hardware timer support. 6 * 7 * Copyright (C) 1999-2008, Greg Ungerer <gerg@snapgear.com> 8 */ --- 34 unchanged lines hidden (view full) --- 43#else 44#define __raw_readtrr __raw_readw 45#define __raw_writetrr __raw_writew 46#endif 47 48static u32 mcftmr_cycles_per_jiffy; 49static u32 mcftmr_cnt; 50 |
51static irq_handler_t timer_interrupt; 52 | |
53/***************************************************************************/ 54 55static void init_timer_irq(void) 56{ 57#ifdef MCFSIM_ICR_AUTOVEC 58 /* Timer1 is always used as system timer */ 59 writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3, 60 MCFSIM_TIMER1ICR); --- 11 unchanged lines hidden (view full) --- 72/***************************************************************************/ 73 74static irqreturn_t mcftmr_tick(int irq, void *dummy) 75{ 76 /* Reset the ColdFire timer */ 77 __raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, TA(MCFTIMER_TER)); 78 79 mcftmr_cnt += mcftmr_cycles_per_jiffy; | 51/***************************************************************************/ 52 53static void init_timer_irq(void) 54{ 55#ifdef MCFSIM_ICR_AUTOVEC 56 /* Timer1 is always used as system timer */ 57 writeb(MCFSIM_ICR_AUTOVEC | MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI3, 58 MCFSIM_TIMER1ICR); --- 11 unchanged lines hidden (view full) --- 70/***************************************************************************/ 71 72static irqreturn_t mcftmr_tick(int irq, void *dummy) 73{ 74 /* Reset the ColdFire timer */ 75 __raw_writeb(MCFTIMER_TER_CAP | MCFTIMER_TER_REF, TA(MCFTIMER_TER)); 76 77 mcftmr_cnt += mcftmr_cycles_per_jiffy; |
80 return timer_interrupt(irq, dummy); | 78 legacy_timer_tick(1); 79 return IRQ_HANDLED; |
81} 82 83/***************************************************************************/ 84 85static u64 mcftmr_read_clk(struct clocksource *cs) 86{ 87 unsigned long flags; 88 u32 cycles; --- 32 unchanged lines hidden (view full) --- 121 * initialize TRR with n - 1. 122 */ 123 __raw_writetrr(mcftmr_cycles_per_jiffy - 1, TA(MCFTIMER_TRR)); 124 __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | 125 MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); 126 127 clocksource_register_hz(&mcftmr_clk, FREQ); 128 | 80} 81 82/***************************************************************************/ 83 84static u64 mcftmr_read_clk(struct clocksource *cs) 85{ 86 unsigned long flags; 87 u32 cycles; --- 32 unchanged lines hidden (view full) --- 120 * initialize TRR with n - 1. 121 */ 122 __raw_writetrr(mcftmr_cycles_per_jiffy - 1, TA(MCFTIMER_TRR)); 123 __raw_writew(MCFTIMER_TMR_ENORI | MCFTIMER_TMR_CLK16 | 124 MCFTIMER_TMR_RESTART | MCFTIMER_TMR_ENABLE, TA(MCFTIMER_TMR)); 125 126 clocksource_register_hz(&mcftmr_clk, FREQ); 127 |
129 timer_interrupt = handler; | |
130 init_timer_irq(); 131 r = request_irq(MCF_IRQ_TIMER, mcftmr_tick, IRQF_TIMER, "timer", NULL); 132 if (r) { 133 pr_err("Failed to request irq %d (timer): %pe\n", MCF_IRQ_TIMER, 134 ERR_PTR(r)); 135 } 136 137#ifdef CONFIG_HIGHPROFILE --- 58 unchanged lines hidden --- | 128 init_timer_irq(); 129 r = request_irq(MCF_IRQ_TIMER, mcftmr_tick, IRQF_TIMER, "timer", NULL); 130 if (r) { 131 pr_err("Failed to request irq %d (timer): %pe\n", MCF_IRQ_TIMER, 132 ERR_PTR(r)); 133 } 134 135#ifdef CONFIG_HIGHPROFILE --- 58 unchanged lines hidden --- |