diff options
Diffstat (limited to 'arch/arm/mach-netx/time.c')
| -rw-r--r-- | arch/arm/mach-netx/time.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/arm/mach-netx/time.c b/arch/arm/mach-netx/time.c index 6df42e64303..5fb2a590ec1 100644 --- a/arch/arm/mach-netx/time.c +++ b/arch/arm/mach-netx/time.c @@ -28,6 +28,9 @@  #include <asm/mach/time.h>  #include <mach/netx-regs.h> +#define NETX_CLOCK_FREQ 100000000 +#define NETX_LATCH DIV_ROUND_CLOSEST(NETX_CLOCK_FREQ, HZ) +  #define TIMER_CLOCKEVENT 0  #define TIMER_CLOCKSOURCE 1 @@ -41,7 +44,7 @@ static void netx_set_mode(enum clock_event_mode mode,  	switch (mode) {  	case CLOCK_EVT_MODE_PERIODIC: -		writel(LATCH, NETX_GPIO_COUNTER_MAX(TIMER_CLOCKEVENT)); +		writel(NETX_LATCH, NETX_GPIO_COUNTER_MAX(TIMER_CLOCKEVENT));  		tmode = NETX_GPIO_COUNTER_CTRL_RST_EN |  			NETX_GPIO_COUNTER_CTRL_IRQ_EN |  			NETX_GPIO_COUNTER_CTRL_RUN; @@ -99,7 +102,7 @@ netx_timer_interrupt(int irq, void *dev_id)  static struct irqaction netx_timer_irq = {  	.name		= "NetX Timer Tick", -	.flags		= IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, +	.flags		= IRQF_TIMER | IRQF_IRQPOLL,  	.handler	= netx_timer_interrupt,  }; @@ -114,7 +117,7 @@ void __init netx_timer_init(void)  	/* Reset the timer value to zero */  	writel(0, NETX_GPIO_COUNTER_CURRENT(0)); -	writel(LATCH, NETX_GPIO_COUNTER_MAX(0)); +	writel(NETX_LATCH, NETX_GPIO_COUNTER_MAX(0));  	/* acknowledge interrupt */  	writel(COUNTER_BIT(0), NETX_GPIO_IRQ); @@ -137,11 +140,11 @@ void __init netx_timer_init(void)  			NETX_GPIO_COUNTER_CTRL(TIMER_CLOCKSOURCE));  	clocksource_mmio_init(NETX_GPIO_COUNTER_CURRENT(TIMER_CLOCKSOURCE), -		"netx_timer", CLOCK_TICK_RATE, 200, 32, clocksource_mmio_readl_up); +		"netx_timer", NETX_CLOCK_FREQ, 200, 32, clocksource_mmio_readl_up);  	/* with max_delta_ns >= delta2ns(0x800) the system currently runs fine.  	 * Adding some safety ... */  	netx_clockevent.cpumask = cpumask_of(0); -	clockevents_config_and_register(&netx_clockevent, CLOCK_TICK_RATE, +	clockevents_config_and_register(&netx_clockevent, NETX_CLOCK_FREQ,  					0xa00, 0xfffffffe);  }  | 
