diff options
Diffstat (limited to 'arch/arm/mach-mmp/mmp2.c')
| -rw-r--r-- | arch/arm/mach-mmp/mmp2.c | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/arch/arm/mach-mmp/mmp2.c b/arch/arm/mach-mmp/mmp2.c index 7f5eb059bb01..daf3993349f8 100644 --- a/arch/arm/mach-mmp/mmp2.c +++ b/arch/arm/mach-mmp/mmp2.c @@ -17,6 +17,7 @@  #include <asm/hardware/cache-tauros2.h> +#include <asm/mach/time.h>  #include <mach/addr-map.h>  #include <mach/regs-apbc.h>  #include <mach/regs-apmu.h> @@ -26,6 +27,7 @@  #include <mach/mfp.h>  #include <mach/gpio.h>  #include <mach/devices.h> +#include <mach/mmp2.h>  #include "common.h"  #include "clock.h" @@ -158,6 +160,26 @@ static int __init mmp2_init(void)  }  postcore_initcall(mmp2_init); +static void __init mmp2_timer_init(void) +{ +	unsigned long clk_rst; + +	__raw_writel(APBC_APBCLK | APBC_RST, APBC_MMP2_TIMERS); + +	/* +	 * enable bus/functional clock, enable 6.5MHz (divider 4), +	 * release reset +	 */ +	clk_rst = APBC_APBCLK | APBC_FNCLK | APBC_FNCLKSEL(1); +	__raw_writel(clk_rst, APBC_MMP2_TIMERS); + +	timer_init(IRQ_MMP2_TIMER1); +} + +struct sys_timer mmp2_timer = { +	.init	= mmp2_timer_init, +}; +  /* on-chip devices */  MMP2_DEVICE(uart1, "pxa2xx-uart", 0, UART1, 0xd4030000, 0x30, 4, 5);  MMP2_DEVICE(uart2, "pxa2xx-uart", 1, UART2, 0xd4017000, 0x30, 20, 21);  |