i.MXC family: Adding timer support
This patch adds timer support for the i.MX machine family. This code can be used on the following machs: - i.MX1 (tested) - i.MX2 (i.MX21 (to be tested), i.MX27 (tested)) - i.MX3 (i.MX31 (tested)) TODO: It seems impossible to build a kernel for more than one CPU because the timer do not follow the platform device rules. So it does only work if timer 1 can be accessed on all CPUs at the same address. Signed-off-by: Juergen Beisert <j.beisert@pengutronix.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:

committed by
Robert Schwebel

parent
90292ea60f
commit
d0f349fbce
@@ -26,6 +26,7 @@
|
||||
#include <asm/hardware.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/memory.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/arch/common.h>
|
||||
@@ -127,6 +128,16 @@ static void __init mxc_board_init(void)
|
||||
mxc_init_extuart();
|
||||
}
|
||||
|
||||
static void __init mx31ads_timer_init(void)
|
||||
{
|
||||
mxc_clocks_init(26000000);
|
||||
mxc_timer_init("ipg_clk.0");
|
||||
}
|
||||
|
||||
struct sys_timer mx31ads_timer = {
|
||||
.init = mx31ads_timer_init,
|
||||
};
|
||||
|
||||
/*
|
||||
* The following uses standard kernel macros defined in arch.h in order to
|
||||
* initialize __mach_desc_MX31ADS data structure.
|
||||
@@ -139,5 +150,5 @@ MACHINE_START(MX31ADS, "Freescale MX31ADS")
|
||||
.map_io = mx31ads_map_io,
|
||||
.init_irq = mxc_init_irq,
|
||||
.init_machine = mxc_board_init,
|
||||
.timer = &mxc_timer,
|
||||
.timer = &mx31ads_timer,
|
||||
MACHINE_END
|
||||
|
Reference in New Issue
Block a user