| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- /*
 
-  *  linux/arch/arm/kernel/arch_timer.c
 
-  *
 
-  *  Copyright (C) 2011 ARM Ltd.
 
-  *  All Rights Reserved
 
-  *
 
-  * This program is free software; you can redistribute it and/or modify
 
-  * it under the terms of the GNU General Public License version 2 as
 
-  * published by the Free Software Foundation.
 
-  */
 
- #include <linux/init.h>
 
- #include <linux/kernel.h>
 
- #include <linux/delay.h>
 
- #include <linux/device.h>
 
- #include <linux/smp.h>
 
- #include <linux/cpu.h>
 
- #include <linux/jiffies.h>
 
- #include <linux/clockchips.h>
 
- #include <linux/interrupt.h>
 
- #include <linux/of_irq.h>
 
- #include <linux/io.h>
 
- #include <asm/cputype.h>
 
- #include <asm/delay.h>
 
- #include <asm/localtimer.h>
 
- #include <asm/arch_timer.h>
 
- #include <asm/system_info.h>
 
- #include <asm/sched_clock.h>
 
- static unsigned long arch_timer_rate;
 
- enum ppi_nr {
 
- 	PHYS_SECURE_PPI,
 
- 	PHYS_NONSECURE_PPI,
 
- 	VIRT_PPI,
 
- 	HYP_PPI,
 
- 	MAX_TIMER_PPI
 
- };
 
- static int arch_timer_ppi[MAX_TIMER_PPI];
 
- static struct clock_event_device __percpu **arch_timer_evt;
 
- static struct delay_timer arch_delay_timer;
 
- static bool arch_timer_use_virtual = true;
 
- /*
 
-  * Architected system timer support.
 
-  */
 
- #define ARCH_TIMER_CTRL_ENABLE		(1 << 0)
 
- #define ARCH_TIMER_CTRL_IT_MASK		(1 << 1)
 
- #define ARCH_TIMER_CTRL_IT_STAT		(1 << 2)
 
- #define ARCH_TIMER_REG_CTRL		0
 
- #define ARCH_TIMER_REG_FREQ		1
 
 
  |