Merge branch 'depends/cleanup' into next/virt
This commit is contained in:
commit
5f48a29f17
|
@ -12,7 +12,6 @@
|
||||||
|
|
||||||
struct tag;
|
struct tag;
|
||||||
struct meminfo;
|
struct meminfo;
|
||||||
struct sys_timer;
|
|
||||||
struct pt_regs;
|
struct pt_regs;
|
||||||
struct smp_operations;
|
struct smp_operations;
|
||||||
#ifdef CONFIG_SMP
|
#ifdef CONFIG_SMP
|
||||||
|
@ -48,7 +47,7 @@ struct machine_desc {
|
||||||
void (*map_io)(void);/* IO mapping function */
|
void (*map_io)(void);/* IO mapping function */
|
||||||
void (*init_early)(void);
|
void (*init_early)(void);
|
||||||
void (*init_irq)(void);
|
void (*init_irq)(void);
|
||||||
struct sys_timer *timer; /* system tick timer */
|
void (*init_time)(void);
|
||||||
void (*init_machine)(void);
|
void (*init_machine)(void);
|
||||||
void (*init_late)(void);
|
void (*init_late)(void);
|
||||||
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
||||||
|
|
|
@ -10,36 +10,6 @@
|
||||||
#ifndef __ASM_ARM_MACH_TIME_H
|
#ifndef __ASM_ARM_MACH_TIME_H
|
||||||
#define __ASM_ARM_MACH_TIME_H
|
#define __ASM_ARM_MACH_TIME_H
|
||||||
|
|
||||||
/*
|
|
||||||
* This is our kernel timer structure.
|
|
||||||
*
|
|
||||||
* - init
|
|
||||||
* Initialise the kernels jiffy timer source, claim interrupt
|
|
||||||
* using setup_irq. This is called early on during initialisation
|
|
||||||
* while interrupts are still disabled on the local CPU.
|
|
||||||
* - suspend
|
|
||||||
* Suspend the kernel jiffy timer source, if necessary. This
|
|
||||||
* is called with interrupts disabled, after all normal devices
|
|
||||||
* have been suspended. If no action is required, set this to
|
|
||||||
* NULL.
|
|
||||||
* - resume
|
|
||||||
* Resume the kernel jiffy timer source, if necessary. This
|
|
||||||
* is called with interrupts disabled before any normal devices
|
|
||||||
* are resumed. If no action is required, set this to NULL.
|
|
||||||
* - offset
|
|
||||||
* Return the timer offset in microseconds since the last timer
|
|
||||||
* interrupt. Note: this must take account of any unprocessed
|
|
||||||
* timer interrupt which may be pending.
|
|
||||||
*/
|
|
||||||
struct sys_timer {
|
|
||||||
void (*init)(void);
|
|
||||||
void (*suspend)(void);
|
|
||||||
void (*resume)(void);
|
|
||||||
#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET
|
|
||||||
unsigned long (*offset)(void);
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
extern void timer_tick(void);
|
extern void timer_tick(void);
|
||||||
|
|
||||||
struct timespec;
|
struct timespec;
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#include <linux/timex.h>
|
#include <linux/timex.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/profile.h>
|
#include <linux/profile.h>
|
||||||
#include <linux/syscore_ops.h>
|
|
||||||
#include <linux/timer.h>
|
#include <linux/timer.h>
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
|
|
||||||
|
@ -31,11 +30,6 @@
|
||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
#include <asm/mach/time.h>
|
#include <asm/mach/time.h>
|
||||||
|
|
||||||
/*
|
|
||||||
* Our system timer.
|
|
||||||
*/
|
|
||||||
static struct sys_timer *system_timer;
|
|
||||||
|
|
||||||
#if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE) || \
|
#if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE) || \
|
||||||
defined(CONFIG_NVRAM) || defined(CONFIG_NVRAM_MODULE)
|
defined(CONFIG_NVRAM) || defined(CONFIG_NVRAM_MODULE)
|
||||||
/* this needs a better home */
|
/* this needs a better home */
|
||||||
|
@ -69,16 +63,6 @@ unsigned long profile_pc(struct pt_regs *regs)
|
||||||
EXPORT_SYMBOL(profile_pc);
|
EXPORT_SYMBOL(profile_pc);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_USES_GETTIMEOFFSET
|
|
||||||
u32 arch_gettimeoffset(void)
|
|
||||||
{
|
|
||||||
if (system_timer->offset != NULL)
|
|
||||||
return system_timer->offset() * 1000;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif /* CONFIG_ARCH_USES_GETTIMEOFFSET */
|
|
||||||
|
|
||||||
#ifndef CONFIG_GENERIC_CLOCKEVENTS
|
#ifndef CONFIG_GENERIC_CLOCKEVENTS
|
||||||
/*
|
/*
|
||||||
* Kernel system timer support.
|
* Kernel system timer support.
|
||||||
|
@ -129,43 +113,8 @@ int __init register_persistent_clock(clock_access_fn read_boot,
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_PM) && !defined(CONFIG_GENERIC_CLOCKEVENTS)
|
|
||||||
static int timer_suspend(void)
|
|
||||||
{
|
|
||||||
if (system_timer->suspend)
|
|
||||||
system_timer->suspend();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void timer_resume(void)
|
|
||||||
{
|
|
||||||
if (system_timer->resume)
|
|
||||||
system_timer->resume();
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
#define timer_suspend NULL
|
|
||||||
#define timer_resume NULL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static struct syscore_ops timer_syscore_ops = {
|
|
||||||
.suspend = timer_suspend,
|
|
||||||
.resume = timer_resume,
|
|
||||||
};
|
|
||||||
|
|
||||||
static int __init timer_init_syscore_ops(void)
|
|
||||||
{
|
|
||||||
register_syscore_ops(&timer_syscore_ops);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
device_initcall(timer_init_syscore_ops);
|
|
||||||
|
|
||||||
void __init time_init(void)
|
void __init time_init(void)
|
||||||
{
|
{
|
||||||
system_timer = machine_desc->timer;
|
machine_desc->init_time();
|
||||||
system_timer->init();
|
|
||||||
sched_clock_postinit();
|
sched_clock_postinit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -174,7 +174,6 @@ clkevt32k_next_event(unsigned long delta, struct clock_event_device *dev)
|
||||||
static struct clock_event_device clkevt = {
|
static struct clock_event_device clkevt = {
|
||||||
.name = "at91_tick",
|
.name = "at91_tick",
|
||||||
.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
|
.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
|
||||||
.shift = 32,
|
|
||||||
.rating = 150,
|
.rating = 150,
|
||||||
.set_next_event = clkevt32k_next_event,
|
.set_next_event = clkevt32k_next_event,
|
||||||
.set_mode = clkevt32k_mode,
|
.set_mode = clkevt32k_mode,
|
||||||
|
@ -265,17 +264,10 @@ void __init at91rm9200_timer_init(void)
|
||||||
at91_st_write(AT91_ST_RTMR, 1);
|
at91_st_write(AT91_ST_RTMR, 1);
|
||||||
|
|
||||||
/* Setup timer clockevent, with minimum of two ticks (important!!) */
|
/* Setup timer clockevent, with minimum of two ticks (important!!) */
|
||||||
clkevt.mult = div_sc(AT91_SLOW_CLOCK, NSEC_PER_SEC, clkevt.shift);
|
|
||||||
clkevt.max_delta_ns = clockevent_delta2ns(AT91_ST_ALMV, &clkevt);
|
|
||||||
clkevt.min_delta_ns = clockevent_delta2ns(2, &clkevt) + 1;
|
|
||||||
clkevt.cpumask = cpumask_of(0);
|
clkevt.cpumask = cpumask_of(0);
|
||||||
clockevents_register_device(&clkevt);
|
clockevents_config_and_register(&clkevt, AT91_SLOW_CLOCK,
|
||||||
|
2, AT91_ST_ALMV);
|
||||||
|
|
||||||
/* register clocksource */
|
/* register clocksource */
|
||||||
clocksource_register_hz(&clk32k, AT91_SLOW_CLOCK);
|
clocksource_register_hz(&clk32k, AT91_SLOW_CLOCK);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer at91rm9200_timer = {
|
|
||||||
.init = at91rm9200_timer_init,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
|
@ -104,12 +104,38 @@ pit_clkevt_mode(enum clock_event_mode mode, struct clock_event_device *dev)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void at91sam926x_pit_suspend(struct clock_event_device *cedev)
|
||||||
|
{
|
||||||
|
/* Disable timer */
|
||||||
|
pit_write(AT91_PIT_MR, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void at91sam926x_pit_reset(void)
|
||||||
|
{
|
||||||
|
/* Disable timer and irqs */
|
||||||
|
pit_write(AT91_PIT_MR, 0);
|
||||||
|
|
||||||
|
/* Clear any pending interrupts, wait for PIT to stop counting */
|
||||||
|
while (PIT_CPIV(pit_read(AT91_PIT_PIVR)) != 0)
|
||||||
|
cpu_relax();
|
||||||
|
|
||||||
|
/* Start PIT but don't enable IRQ */
|
||||||
|
pit_write(AT91_PIT_MR, (pit_cycle - 1) | AT91_PIT_PITEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void at91sam926x_pit_resume(struct clock_event_device *cedev)
|
||||||
|
{
|
||||||
|
at91sam926x_pit_reset();
|
||||||
|
}
|
||||||
|
|
||||||
static struct clock_event_device pit_clkevt = {
|
static struct clock_event_device pit_clkevt = {
|
||||||
.name = "pit",
|
.name = "pit",
|
||||||
.features = CLOCK_EVT_FEAT_PERIODIC,
|
.features = CLOCK_EVT_FEAT_PERIODIC,
|
||||||
.shift = 32,
|
.shift = 32,
|
||||||
.rating = 100,
|
.rating = 100,
|
||||||
.set_mode = pit_clkevt_mode,
|
.set_mode = pit_clkevt_mode,
|
||||||
|
.suspend = at91sam926x_pit_suspend,
|
||||||
|
.resume = at91sam926x_pit_resume,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -150,19 +176,6 @@ static struct irqaction at91sam926x_pit_irq = {
|
||||||
.irq = NR_IRQS_LEGACY + AT91_ID_SYS,
|
.irq = NR_IRQS_LEGACY + AT91_ID_SYS,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void at91sam926x_pit_reset(void)
|
|
||||||
{
|
|
||||||
/* Disable timer and irqs */
|
|
||||||
pit_write(AT91_PIT_MR, 0);
|
|
||||||
|
|
||||||
/* Clear any pending interrupts, wait for PIT to stop counting */
|
|
||||||
while (PIT_CPIV(pit_read(AT91_PIT_PIVR)) != 0)
|
|
||||||
cpu_relax();
|
|
||||||
|
|
||||||
/* Start PIT but don't enable IRQ */
|
|
||||||
pit_write(AT91_PIT_MR, (pit_cycle - 1) | AT91_PIT_PITEN);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef CONFIG_OF
|
#ifdef CONFIG_OF
|
||||||
static struct of_device_id pit_timer_ids[] = {
|
static struct of_device_id pit_timer_ids[] = {
|
||||||
{ .compatible = "atmel,at91sam9260-pit" },
|
{ .compatible = "atmel,at91sam9260-pit" },
|
||||||
|
@ -211,7 +224,7 @@ static int __init of_at91sam926x_pit_init(void)
|
||||||
/*
|
/*
|
||||||
* Set up both clocksource and clockevent support.
|
* Set up both clocksource and clockevent support.
|
||||||
*/
|
*/
|
||||||
static void __init at91sam926x_pit_init(void)
|
void __init at91sam926x_pit_init(void)
|
||||||
{
|
{
|
||||||
unsigned long pit_rate;
|
unsigned long pit_rate;
|
||||||
unsigned bits;
|
unsigned bits;
|
||||||
|
@ -250,12 +263,6 @@ static void __init at91sam926x_pit_init(void)
|
||||||
clockevents_register_device(&pit_clkevt);
|
clockevents_register_device(&pit_clkevt);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void at91sam926x_pit_suspend(void)
|
|
||||||
{
|
|
||||||
/* Disable timer */
|
|
||||||
pit_write(AT91_PIT_MR, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
void __init at91sam926x_ioremap_pit(u32 addr)
|
void __init at91sam926x_ioremap_pit(u32 addr)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_OF)
|
#if defined(CONFIG_OF)
|
||||||
|
@ -272,9 +279,3 @@ void __init at91sam926x_ioremap_pit(u32 addr)
|
||||||
if (!pit_base_addr)
|
if (!pit_base_addr)
|
||||||
panic("Impossible to ioremap PIT\n");
|
panic("Impossible to ioremap PIT\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer at91sam926x_timer = {
|
|
||||||
.init = at91sam926x_pit_init,
|
|
||||||
.suspend = at91sam926x_pit_suspend,
|
|
||||||
.resume = at91sam926x_pit_reset,
|
|
||||||
};
|
|
||||||
|
|
|
@ -42,9 +42,10 @@
|
||||||
#define AT91_TC_CLK1BASE 0x40
|
#define AT91_TC_CLK1BASE 0x40
|
||||||
#define AT91_TC_CLK2BASE 0x80
|
#define AT91_TC_CLK2BASE 0x80
|
||||||
|
|
||||||
static unsigned long at91x40_gettimeoffset(void)
|
static u32 at91x40_gettimeoffset(void)
|
||||||
{
|
{
|
||||||
return (at91_tc_read(AT91_TC_CLK1BASE + AT91_TC_CV) * 1000000 / (AT91X40_MASTER_CLOCK / 128));
|
return (at91_tc_read(AT91_TC_CLK1BASE + AT91_TC_CV) * 1000000 /
|
||||||
|
(AT91X40_MASTER_CLOCK / 128)) * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
static irqreturn_t at91x40_timer_interrupt(int irq, void *dev_id)
|
static irqreturn_t at91x40_timer_interrupt(int irq, void *dev_id)
|
||||||
|
@ -64,6 +65,8 @@ void __init at91x40_timer_init(void)
|
||||||
{
|
{
|
||||||
unsigned int v;
|
unsigned int v;
|
||||||
|
|
||||||
|
arch_gettimeoffset = at91x40_gettimeoffset;
|
||||||
|
|
||||||
at91_tc_write(AT91_TC_BCR, 0);
|
at91_tc_write(AT91_TC_BCR, 0);
|
||||||
v = at91_tc_read(AT91_TC_BMR);
|
v = at91_tc_read(AT91_TC_BMR);
|
||||||
v = (v & ~AT91_TC_TC1XC1S) | AT91_TC_TC1XC1S_NONE;
|
v = (v & ~AT91_TC_TC1XC1S) | AT91_TC_TC1XC1S_NONE;
|
||||||
|
@ -79,9 +82,3 @@ void __init at91x40_timer_init(void)
|
||||||
|
|
||||||
at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_CCR, (AT91_TC_SWTRG | AT91_TC_CLKEN));
|
at91_tc_write(AT91_TC_CLK1BASE + AT91_TC_CCR, (AT91_TC_SWTRG | AT91_TC_CLKEN));
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer at91x40_timer = {
|
|
||||||
.init = at91x40_timer_init,
|
|
||||||
.offset = at91x40_gettimeoffset,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
|
@ -90,7 +90,7 @@ static void __init onearm_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(ONEARM, "Ajeco 1ARM single board computer")
|
MACHINE_START(ONEARM, "Ajeco 1ARM single board computer")
|
||||||
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
|
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = onearm_init_early,
|
.init_early = onearm_init_early,
|
||||||
|
|
|
@ -210,7 +210,7 @@ static void __init afeb9260_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(AFEB9260, "Custom afeb9260 board")
|
MACHINE_START(AFEB9260, "Custom afeb9260 board")
|
||||||
/* Maintainer: Sergey Lapin <slapin@ossfans.org> */
|
/* Maintainer: Sergey Lapin <slapin@ossfans.org> */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = afeb9260_init_early,
|
.init_early = afeb9260_init_early,
|
||||||
|
|
|
@ -187,7 +187,7 @@ static void __init cam60_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(CAM60, "KwikByte CAM60")
|
MACHINE_START(CAM60, "KwikByte CAM60")
|
||||||
/* Maintainer: KwikByte */
|
/* Maintainer: KwikByte */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = cam60_init_early,
|
.init_early = cam60_init_early,
|
||||||
|
|
|
@ -157,7 +157,7 @@ static void __init carmeva_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(CARMEVA, "Carmeva")
|
MACHINE_START(CARMEVA, "Carmeva")
|
||||||
/* Maintainer: Conitec Datasystems */
|
/* Maintainer: Conitec Datasystems */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = carmeva_init_early,
|
.init_early = carmeva_init_early,
|
||||||
|
|
|
@ -374,7 +374,7 @@ MACHINE_START(CPUAT9260, "Eukrea CPU9260")
|
||||||
MACHINE_START(CPUAT9G20, "Eukrea CPU9G20")
|
MACHINE_START(CPUAT9G20, "Eukrea CPU9G20")
|
||||||
#endif
|
#endif
|
||||||
/* Maintainer: Eric Benard - EUKREA Electromatique */
|
/* Maintainer: Eric Benard - EUKREA Electromatique */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = cpu9krea_init_early,
|
.init_early = cpu9krea_init_early,
|
||||||
|
|
|
@ -178,7 +178,7 @@ static void __init cpuat91_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(CPUAT91, "Eukrea")
|
MACHINE_START(CPUAT91, "Eukrea")
|
||||||
/* Maintainer: Eric Benard - EUKREA Electromatique */
|
/* Maintainer: Eric Benard - EUKREA Electromatique */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = cpuat91_init_early,
|
.init_early = cpuat91_init_early,
|
||||||
|
|
|
@ -251,7 +251,7 @@ static void __init csb337_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(CSB337, "Cogent CSB337")
|
MACHINE_START(CSB337, "Cogent CSB337")
|
||||||
/* Maintainer: Bill Gatliff */
|
/* Maintainer: Bill Gatliff */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = csb337_init_early,
|
.init_early = csb337_init_early,
|
||||||
|
|
|
@ -132,7 +132,7 @@ static void __init csb637_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(CSB637, "Cogent CSB637")
|
MACHINE_START(CSB637, "Cogent CSB637")
|
||||||
/* Maintainer: Bill Gatliff */
|
/* Maintainer: Bill Gatliff */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = csb637_init_early,
|
.init_early = csb637_init_early,
|
||||||
|
|
|
@ -49,7 +49,7 @@ static const char *at91_dt_board_compat[] __initdata = {
|
||||||
|
|
||||||
DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM (Device Tree)")
|
DT_MACHINE_START(at91sam_dt, "Atmel AT91SAM (Device Tree)")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = at91_dt_initialize,
|
.init_early = at91_dt_initialize,
|
||||||
|
|
|
@ -44,7 +44,7 @@ static void __init at91eb01_init_early(void)
|
||||||
|
|
||||||
MACHINE_START(AT91EB01, "Atmel AT91 EB01")
|
MACHINE_START(AT91EB01, "Atmel AT91 EB01")
|
||||||
/* Maintainer: Greg Ungerer <gerg@snapgear.com> */
|
/* Maintainer: Greg Ungerer <gerg@snapgear.com> */
|
||||||
.timer = &at91x40_timer,
|
.init_time = at91x40_timer_init,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = at91eb01_init_early,
|
.init_early = at91eb01_init_early,
|
||||||
.init_irq = at91eb01_init_irq,
|
.init_irq = at91eb01_init_irq,
|
||||||
|
|
|
@ -116,7 +116,7 @@ static void __init eb9200_board_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
MACHINE_START(ATEB9200, "Embest ATEB9200")
|
MACHINE_START(ATEB9200, "Embest ATEB9200")
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = eb9200_init_early,
|
.init_early = eb9200_init_early,
|
||||||
|
|
|
@ -181,7 +181,7 @@ static void __init ecb_at91board_init(void)
|
||||||
|
|
||||||
MACHINE_START(ECBAT91, "emQbit's ECB_AT91")
|
MACHINE_START(ECBAT91, "emQbit's ECB_AT91")
|
||||||
/* Maintainer: emQbit.com */
|
/* Maintainer: emQbit.com */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ecb_at91init_early,
|
.init_early = ecb_at91init_early,
|
||||||
|
|
|
@ -149,7 +149,7 @@ static void __init eco920_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(ECO920, "eco920")
|
MACHINE_START(ECO920, "eco920")
|
||||||
/* Maintainer: Sascha Hauer */
|
/* Maintainer: Sascha Hauer */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = eco920_init_early,
|
.init_early = eco920_init_early,
|
||||||
|
|
|
@ -159,7 +159,7 @@ static void __init flexibity_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(FLEXIBITY, "Flexibity Connect")
|
MACHINE_START(FLEXIBITY, "Flexibity Connect")
|
||||||
/* Maintainer: Maxim Osipov */
|
/* Maintainer: Maxim Osipov */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = flexibity_init_early,
|
.init_early = flexibity_init_early,
|
||||||
|
|
|
@ -261,7 +261,7 @@ static void __init foxg20_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(ACMENETUSFOXG20, "Acme Systems srl FOX Board G20")
|
MACHINE_START(ACMENETUSFOXG20, "Acme Systems srl FOX Board G20")
|
||||||
/* Maintainer: Sergio Tanzilli */
|
/* Maintainer: Sergio Tanzilli */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = foxg20_init_early,
|
.init_early = foxg20_init_early,
|
||||||
|
|
|
@ -574,7 +574,7 @@ static void __init gsia18s_board_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
MACHINE_START(GSIA18S, "GS_IA18_S")
|
MACHINE_START(GSIA18S, "GS_IA18_S")
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = gsia18s_init_early,
|
.init_early = gsia18s_init_early,
|
||||||
|
|
|
@ -103,7 +103,7 @@ static void __init kafa_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(KAFA, "Sperry-Sun KAFA")
|
MACHINE_START(KAFA, "Sperry-Sun KAFA")
|
||||||
/* Maintainer: Sergei Sharonov */
|
/* Maintainer: Sergei Sharonov */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = kafa_init_early,
|
.init_early = kafa_init_early,
|
||||||
|
|
|
@ -149,7 +149,7 @@ static void __init kb9202_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(KB9200, "KB920x")
|
MACHINE_START(KB9200, "KB920x")
|
||||||
/* Maintainer: KwikByte, Inc. */
|
/* Maintainer: KwikByte, Inc. */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = kb9202_init_early,
|
.init_early = kb9202_init_early,
|
||||||
|
|
|
@ -378,7 +378,7 @@ static void __init neocore926_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(NEOCORE926, "ADENEO NEOCORE 926")
|
MACHINE_START(NEOCORE926, "ADENEO NEOCORE 926")
|
||||||
/* Maintainer: ADENEO */
|
/* Maintainer: ADENEO */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = neocore926_init_early,
|
.init_early = neocore926_init_early,
|
||||||
|
|
|
@ -217,7 +217,7 @@ static void __init pcontrol_g20_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(PCONTROL_G20, "PControl G20")
|
MACHINE_START(PCONTROL_G20, "PControl G20")
|
||||||
/* Maintainer: pgsellmann@portner-elektronik.at */
|
/* Maintainer: pgsellmann@portner-elektronik.at */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = pcontrol_g20_init_early,
|
.init_early = pcontrol_g20_init_early,
|
||||||
|
|
|
@ -119,7 +119,7 @@ static void __init picotux200_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(PICOTUX2XX, "picotux 200")
|
MACHINE_START(PICOTUX2XX, "picotux 200")
|
||||||
/* Maintainer: Kleinhenz Elektronik GmbH */
|
/* Maintainer: Kleinhenz Elektronik GmbH */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = picotux200_init_early,
|
.init_early = picotux200_init_early,
|
||||||
|
|
|
@ -257,7 +257,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(QIL_A9260, "CALAO QIL_A9260")
|
MACHINE_START(QIL_A9260, "CALAO QIL_A9260")
|
||||||
/* Maintainer: calao-systems */
|
/* Maintainer: calao-systems */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -47,7 +47,7 @@ static const char *at91rm9200_dt_board_compat[] __initdata = {
|
||||||
};
|
};
|
||||||
|
|
||||||
DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200 (Device Tree)")
|
DT_MACHINE_START(at91rm9200_dt, "Atmel AT91RM9200 (Device Tree)")
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = at91rm9200_dt_initialize,
|
.init_early = at91rm9200_dt_initialize,
|
||||||
|
|
|
@ -219,7 +219,7 @@ static void __init dk_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK")
|
MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK")
|
||||||
/* Maintainer: SAN People/Atmel */
|
/* Maintainer: SAN People/Atmel */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = dk_init_early,
|
.init_early = dk_init_early,
|
||||||
|
|
|
@ -186,7 +186,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK")
|
MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK")
|
||||||
/* Maintainer: SAN People/Atmel */
|
/* Maintainer: SAN People/Atmel */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -222,7 +222,7 @@ static void __init rsi_ews_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(RSI_EWS, "RSI EWS")
|
MACHINE_START(RSI_EWS, "RSI EWS")
|
||||||
/* Maintainer: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de> */
|
/* Maintainer: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de> */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = rsi_ews_init_early,
|
.init_early = rsi_ews_init_early,
|
||||||
|
|
|
@ -218,7 +218,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(SAM9_L9260, "Olimex SAM9-L9260")
|
MACHINE_START(SAM9_L9260, "Olimex SAM9-L9260")
|
||||||
/* Maintainer: Olimex */
|
/* Maintainer: Olimex */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -343,7 +343,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK")
|
MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -612,7 +612,7 @@ MACHINE_START(AT91SAM9261EK, "Atmel AT91SAM9261-EK")
|
||||||
MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK")
|
MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK")
|
||||||
#endif
|
#endif
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -443,7 +443,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK")
|
MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -409,7 +409,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(AT91SAM9G20EK, "Atmel AT91SAM9G20-EK")
|
MACHINE_START(AT91SAM9G20EK, "Atmel AT91SAM9G20-EK")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
@ -419,7 +419,7 @@ MACHINE_END
|
||||||
|
|
||||||
MACHINE_START(AT91SAM9G20EK_2MMC, "Atmel AT91SAM9G20-EK 2 MMC Slot Mod")
|
MACHINE_START(AT91SAM9G20EK_2MMC, "Atmel AT91SAM9G20-EK 2 MMC Slot Mod")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -502,7 +502,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(AT91SAM9M10G45EK, "Atmel AT91SAM9M10G45-EK")
|
MACHINE_START(AT91SAM9M10G45EK, "Atmel AT91SAM9M10G45-EK")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -320,7 +320,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK")
|
MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK")
|
||||||
/* Maintainer: Atmel */
|
/* Maintainer: Atmel */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -177,7 +177,7 @@ static void __init snapper9260_board_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
MACHINE_START(SNAPPER_9260, "Bluewater Systems Snapper 9260/9G20 module")
|
MACHINE_START(SNAPPER_9260, "Bluewater Systems Snapper 9260/9G20 module")
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = snapper9260_init_early,
|
.init_early = snapper9260_init_early,
|
||||||
|
|
|
@ -272,7 +272,7 @@ static void __init stamp9g20evb_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(PORTUXG20, "taskit PortuxG20")
|
MACHINE_START(PORTUXG20, "taskit PortuxG20")
|
||||||
/* Maintainer: taskit GmbH */
|
/* Maintainer: taskit GmbH */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = stamp9g20_init_early,
|
.init_early = stamp9g20_init_early,
|
||||||
|
@ -282,7 +282,7 @@ MACHINE_END
|
||||||
|
|
||||||
MACHINE_START(STAMP9G20, "taskit Stamp9G20")
|
MACHINE_START(STAMP9G20, "taskit Stamp9G20")
|
||||||
/* Maintainer: taskit GmbH */
|
/* Maintainer: taskit GmbH */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = stamp9g20_init_early,
|
.init_early = stamp9g20_init_early,
|
||||||
|
|
|
@ -355,7 +355,7 @@ static void __init ek_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(USB_A9263, "CALAO USB_A9263")
|
MACHINE_START(USB_A9263, "CALAO USB_A9263")
|
||||||
/* Maintainer: calao-systems */
|
/* Maintainer: calao-systems */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
@ -365,7 +365,7 @@ MACHINE_END
|
||||||
|
|
||||||
MACHINE_START(USB_A9260, "CALAO USB_A9260")
|
MACHINE_START(USB_A9260, "CALAO USB_A9260")
|
||||||
/* Maintainer: calao-systems */
|
/* Maintainer: calao-systems */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
@ -375,7 +375,7 @@ MACHINE_END
|
||||||
|
|
||||||
MACHINE_START(USB_A9G20, "CALAO USB_A92G0")
|
MACHINE_START(USB_A9G20, "CALAO USB_A92G0")
|
||||||
/* Maintainer: Jean-Christophe PLAGNIOL-VILLARD */
|
/* Maintainer: Jean-Christophe PLAGNIOL-VILLARD */
|
||||||
.timer = &at91sam926x_timer,
|
.init_time = at91sam926x_pit_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = ek_init_early,
|
.init_early = ek_init_early,
|
||||||
|
|
|
@ -587,7 +587,7 @@ static void __init yl9200_board_init(void)
|
||||||
|
|
||||||
MACHINE_START(YL9200, "uCdragon YL-9200")
|
MACHINE_START(YL9200, "uCdragon YL-9200")
|
||||||
/* Maintainer: S.Birtles */
|
/* Maintainer: S.Birtles */
|
||||||
.timer = &at91rm9200_timer,
|
.init_time = at91rm9200_timer_init,
|
||||||
.map_io = at91_map_io,
|
.map_io = at91_map_io,
|
||||||
.handle_irq = at91_aic_handle_irq,
|
.handle_irq = at91_aic_handle_irq,
|
||||||
.init_early = yl9200_init_early,
|
.init_early = yl9200_init_early,
|
||||||
|
|
|
@ -36,12 +36,11 @@ extern int __init at91_aic5_of_init(struct device_node *node,
|
||||||
|
|
||||||
|
|
||||||
/* Timer */
|
/* Timer */
|
||||||
struct sys_timer;
|
|
||||||
extern void at91rm9200_ioremap_st(u32 addr);
|
extern void at91rm9200_ioremap_st(u32 addr);
|
||||||
extern struct sys_timer at91rm9200_timer;
|
extern void at91rm9200_timer_init(void);
|
||||||
extern void at91sam926x_ioremap_pit(u32 addr);
|
extern void at91sam926x_ioremap_pit(u32 addr);
|
||||||
extern struct sys_timer at91sam926x_timer;
|
extern void at91sam926x_pit_init(void);
|
||||||
extern struct sys_timer at91x40_timer;
|
extern void at91x40_timer_init(void);
|
||||||
|
|
||||||
/* Clocks */
|
/* Clocks */
|
||||||
#ifdef CONFIG_AT91_PMC_UNIT
|
#ifdef CONFIG_AT91_PMC_UNIT
|
||||||
|
|
|
@ -24,9 +24,6 @@ static void timer_init(void)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sys_timer timer = {
|
|
||||||
.init = timer_init,
|
|
||||||
};
|
|
||||||
|
|
||||||
static void __init board_init(void)
|
static void __init board_init(void)
|
||||||
{
|
{
|
||||||
|
@ -38,7 +35,7 @@ static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, };
|
||||||
|
|
||||||
DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor")
|
DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor")
|
||||||
.init_irq = irqchip_init,
|
.init_irq = irqchip_init,
|
||||||
.timer = &timer,
|
.init_time = timer_init,
|
||||||
.init_machine = board_init,
|
.init_machine = board_init,
|
||||||
.dt_compat = bcm11351_dt_compat,
|
.dt_compat = bcm11351_dt_compat,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -104,7 +104,7 @@ DT_MACHINE_START(BCM2835, "BCM2835")
|
||||||
.init_irq = bcm2835_init_irq,
|
.init_irq = bcm2835_init_irq,
|
||||||
.handle_irq = bcm2835_handle_irq,
|
.handle_irq = bcm2835_handle_irq,
|
||||||
.init_machine = bcm2835_init,
|
.init_machine = bcm2835_init,
|
||||||
.timer = &bcm2835_timer,
|
.init_time = bcm2835_timer_init,
|
||||||
.restart = bcm2835_restart,
|
.restart = bcm2835_restart,
|
||||||
.dt_compat = bcm2835_compat
|
.dt_compat = bcm2835_compat
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -170,7 +170,7 @@ MACHINE_START(AUTCPU12, "autronix autcpu12")
|
||||||
.nr_irqs = CLPS711X_NR_IRQS,
|
.nr_irqs = CLPS711X_NR_IRQS,
|
||||||
.map_io = clps711x_map_io,
|
.map_io = clps711x_map_io,
|
||||||
.init_irq = clps711x_init_irq,
|
.init_irq = clps711x_init_irq,
|
||||||
.timer = &clps711x_timer,
|
.init_time = clps711x_timer_init,
|
||||||
.init_machine = autcpu12_init,
|
.init_machine = autcpu12_init,
|
||||||
.init_late = autcpu12_init_late,
|
.init_late = autcpu12_init_late,
|
||||||
.handle_irq = clps711x_handle_irq,
|
.handle_irq = clps711x_handle_irq,
|
||||||
|
|
|
@ -140,7 +140,7 @@ MACHINE_START(CDB89712, "Cirrus-CDB89712")
|
||||||
.nr_irqs = CLPS711X_NR_IRQS,
|
.nr_irqs = CLPS711X_NR_IRQS,
|
||||||
.map_io = clps711x_map_io,
|
.map_io = clps711x_map_io,
|
||||||
.init_irq = clps711x_init_irq,
|
.init_irq = clps711x_init_irq,
|
||||||
.timer = &clps711x_timer,
|
.init_time = clps711x_timer_init,
|
||||||
.init_machine = cdb89712_init,
|
.init_machine = cdb89712_init,
|
||||||
.handle_irq = clps711x_handle_irq,
|
.handle_irq = clps711x_handle_irq,
|
||||||
.restart = clps711x_restart,
|
.restart = clps711x_restart,
|
||||||
|
|
|
@ -40,7 +40,7 @@ MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312")
|
||||||
.fixup = fixup_clep7312,
|
.fixup = fixup_clep7312,
|
||||||
.map_io = clps711x_map_io,
|
.map_io = clps711x_map_io,
|
||||||
.init_irq = clps711x_init_irq,
|
.init_irq = clps711x_init_irq,
|
||||||
.timer = &clps711x_timer,
|
.init_time = clps711x_timer_init,
|
||||||
.handle_irq = clps711x_handle_irq,
|
.handle_irq = clps711x_handle_irq,
|
||||||
.restart = clps711x_restart,
|
.restart = clps711x_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -173,7 +173,7 @@ MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)")
|
||||||
.reserve = edb7211_reserve,
|
.reserve = edb7211_reserve,
|
||||||
.map_io = edb7211_map_io,
|
.map_io = edb7211_map_io,
|
||||||
.init_irq = clps711x_init_irq,
|
.init_irq = clps711x_init_irq,
|
||||||
.timer = &clps711x_timer,
|
.init_time = clps711x_timer_init,
|
||||||
.init_machine = edb7211_init,
|
.init_machine = edb7211_init,
|
||||||
.handle_irq = clps711x_handle_irq,
|
.handle_irq = clps711x_handle_irq,
|
||||||
.restart = clps711x_restart,
|
.restart = clps711x_restart,
|
||||||
|
|
|
@ -78,7 +78,7 @@ MACHINE_START(FORTUNET, "ARM-FortuNet")
|
||||||
.fixup = fortunet_fixup,
|
.fixup = fortunet_fixup,
|
||||||
.map_io = clps711x_map_io,
|
.map_io = clps711x_map_io,
|
||||||
.init_irq = clps711x_init_irq,
|
.init_irq = clps711x_init_irq,
|
||||||
.timer = &clps711x_timer,
|
.init_time = clps711x_timer_init,
|
||||||
.handle_irq = clps711x_handle_irq,
|
.handle_irq = clps711x_handle_irq,
|
||||||
.restart = clps711x_restart,
|
.restart = clps711x_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -224,7 +224,7 @@ MACHINE_START(P720T, "ARM-Prospector720T")
|
||||||
.map_io = p720t_map_io,
|
.map_io = p720t_map_io,
|
||||||
.init_early = p720t_init_early,
|
.init_early = p720t_init_early,
|
||||||
.init_irq = clps711x_init_irq,
|
.init_irq = clps711x_init_irq,
|
||||||
.timer = &clps711x_timer,
|
.init_time = clps711x_timer_init,
|
||||||
.init_machine = p720t_init,
|
.init_machine = p720t_init,
|
||||||
.init_late = p720t_init_late,
|
.init_late = p720t_init_late,
|
||||||
.handle_irq = clps711x_handle_irq,
|
.handle_irq = clps711x_handle_irq,
|
||||||
|
|
|
@ -282,7 +282,7 @@ static void add_fixed_clk(struct clk *clk, const char *name, int rate)
|
||||||
clk_register_clkdev(clk, name, NULL);
|
clk_register_clkdev(clk, name, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init clps711x_timer_init(void)
|
void __init clps711x_timer_init(void)
|
||||||
{
|
{
|
||||||
int osc, ext, pll, cpu, bus, timl, timh, uart, spi;
|
int osc, ext, pll, cpu, bus, timl, timh, uart, spi;
|
||||||
u32 tmp;
|
u32 tmp;
|
||||||
|
@ -345,10 +345,6 @@ static void __init clps711x_timer_init(void)
|
||||||
setup_irq(IRQ_TC2OI, &clps711x_timer_irq);
|
setup_irq(IRQ_TC2OI, &clps711x_timer_irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer clps711x_timer = {
|
|
||||||
.init = clps711x_timer_init,
|
|
||||||
};
|
|
||||||
|
|
||||||
void clps711x_restart(char mode, const char *cmd)
|
void clps711x_restart(char mode, const char *cmd)
|
||||||
{
|
{
|
||||||
soft_restart(0);
|
soft_restart(0);
|
||||||
|
|
|
@ -8,10 +8,8 @@
|
||||||
#define CLPS711X_NR_GPIO (4 * 8 + 3)
|
#define CLPS711X_NR_GPIO (4 * 8 + 3)
|
||||||
#define CLPS711X_GPIO(prt, bit) ((prt) * 8 + (bit))
|
#define CLPS711X_GPIO(prt, bit) ((prt) * 8 + (bit))
|
||||||
|
|
||||||
struct sys_timer;
|
|
||||||
|
|
||||||
extern void clps711x_map_io(void);
|
extern void clps711x_map_io(void);
|
||||||
extern void clps711x_init_irq(void);
|
extern void clps711x_init_irq(void);
|
||||||
|
extern void clps711x_timer_init(void);
|
||||||
extern void clps711x_handle_irq(struct pt_regs *regs);
|
extern void clps711x_handle_irq(struct pt_regs *regs);
|
||||||
extern void clps711x_restart(char mode, const char *cmd);
|
extern void clps711x_restart(char mode, const char *cmd);
|
||||||
extern struct sys_timer clps711x_timer;
|
|
||||||
|
|
|
@ -249,7 +249,7 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = cns3420_map_io,
|
.map_io = cns3420_map_io,
|
||||||
.init_irq = cns3xxx_init_irq,
|
.init_irq = cns3xxx_init_irq,
|
||||||
.timer = &cns3xxx_timer,
|
.init_time = cns3xxx_timer_init,
|
||||||
.init_machine = cns3420_init,
|
.init_machine = cns3420_init,
|
||||||
.restart = cns3xxx_restart,
|
.restart = cns3xxx_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -134,7 +134,6 @@ static int cns3xxx_timer_set_next_event(unsigned long evt,
|
||||||
|
|
||||||
static struct clock_event_device cns3xxx_tmr1_clockevent = {
|
static struct clock_event_device cns3xxx_tmr1_clockevent = {
|
||||||
.name = "cns3xxx timer1",
|
.name = "cns3xxx timer1",
|
||||||
.shift = 8,
|
|
||||||
.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
|
.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
|
||||||
.set_mode = cns3xxx_timer_set_mode,
|
.set_mode = cns3xxx_timer_set_mode,
|
||||||
.set_next_event = cns3xxx_timer_set_next_event,
|
.set_next_event = cns3xxx_timer_set_next_event,
|
||||||
|
@ -145,15 +144,9 @@ static struct clock_event_device cns3xxx_tmr1_clockevent = {
|
||||||
static void __init cns3xxx_clockevents_init(unsigned int timer_irq)
|
static void __init cns3xxx_clockevents_init(unsigned int timer_irq)
|
||||||
{
|
{
|
||||||
cns3xxx_tmr1_clockevent.irq = timer_irq;
|
cns3xxx_tmr1_clockevent.irq = timer_irq;
|
||||||
cns3xxx_tmr1_clockevent.mult =
|
clockevents_config_and_register(&cns3xxx_tmr1_clockevent,
|
||||||
div_sc((cns3xxx_cpu_clock() >> 3) * 1000000, NSEC_PER_SEC,
|
(cns3xxx_cpu_clock() >> 3) * 1000000,
|
||||||
cns3xxx_tmr1_clockevent.shift);
|
0xf, 0xffffffff);
|
||||||
cns3xxx_tmr1_clockevent.max_delta_ns =
|
|
||||||
clockevent_delta2ns(0xffffffff, &cns3xxx_tmr1_clockevent);
|
|
||||||
cns3xxx_tmr1_clockevent.min_delta_ns =
|
|
||||||
clockevent_delta2ns(0xf, &cns3xxx_tmr1_clockevent);
|
|
||||||
|
|
||||||
clockevents_register_device(&cns3xxx_tmr1_clockevent);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -235,17 +228,13 @@ static void __init __cns3xxx_timer_init(unsigned int timer_irq)
|
||||||
cns3xxx_clockevents_init(timer_irq);
|
cns3xxx_clockevents_init(timer_irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init cns3xxx_timer_init(void)
|
void __init cns3xxx_timer_init(void)
|
||||||
{
|
{
|
||||||
cns3xxx_tmr1 = IOMEM(CNS3XXX_TIMER1_2_3_BASE_VIRT);
|
cns3xxx_tmr1 = IOMEM(CNS3XXX_TIMER1_2_3_BASE_VIRT);
|
||||||
|
|
||||||
__cns3xxx_timer_init(IRQ_CNS3XXX_TIMER0);
|
__cns3xxx_timer_init(IRQ_CNS3XXX_TIMER0);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer cns3xxx_timer = {
|
|
||||||
.init = cns3xxx_timer_init,
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef CONFIG_CACHE_L2X0
|
#ifdef CONFIG_CACHE_L2X0
|
||||||
|
|
||||||
void __init cns3xxx_l2x0_init(void)
|
void __init cns3xxx_l2x0_init(void)
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#ifndef __CNS3XXX_CORE_H
|
#ifndef __CNS3XXX_CORE_H
|
||||||
#define __CNS3XXX_CORE_H
|
#define __CNS3XXX_CORE_H
|
||||||
|
|
||||||
extern struct sys_timer cns3xxx_timer;
|
extern void cns3xxx_timer_init(void);
|
||||||
|
|
||||||
#ifdef CONFIG_CACHE_L2X0
|
#ifdef CONFIG_CACHE_L2X0
|
||||||
void __init cns3xxx_l2x0_init(void);
|
void __init cns3xxx_l2x0_init(void);
|
||||||
|
|
|
@ -679,7 +679,7 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = da830_evm_map_io,
|
.map_io = da830_evm_map_io,
|
||||||
.init_irq = cp_intc_init,
|
.init_irq = cp_intc_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = da830_evm_init,
|
.init_machine = da830_evm_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -1599,7 +1599,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = da850_evm_map_io,
|
.map_io = da850_evm_map_io,
|
||||||
.init_irq = cp_intc_init,
|
.init_irq = cp_intc_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = da850_evm_init,
|
.init_machine = da850_evm_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -355,7 +355,7 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = dm355_evm_map_io,
|
.map_io = dm355_evm_map_io,
|
||||||
.init_irq = davinci_irq_init,
|
.init_irq = davinci_irq_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = dm355_evm_init,
|
.init_machine = dm355_evm_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -274,7 +274,7 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = dm355_leopard_map_io,
|
.map_io = dm355_leopard_map_io,
|
||||||
.init_irq = davinci_irq_init,
|
.init_irq = davinci_irq_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = dm355_leopard_init,
|
.init_machine = dm355_leopard_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -616,7 +616,7 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = dm365_evm_map_io,
|
.map_io = dm365_evm_map_io,
|
||||||
.init_irq = davinci_irq_init,
|
.init_irq = davinci_irq_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = dm365_evm_init,
|
.init_machine = dm365_evm_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -825,7 +825,7 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = davinci_evm_map_io,
|
.map_io = davinci_evm_map_io,
|
||||||
.init_irq = davinci_irq_init,
|
.init_irq = davinci_irq_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = davinci_evm_init,
|
.init_machine = davinci_evm_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -818,7 +818,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = davinci_map_io,
|
.map_io = davinci_map_io,
|
||||||
.init_irq = davinci_irq_init,
|
.init_irq = davinci_irq_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = evm_init,
|
.init_machine = evm_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
@ -829,7 +829,7 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = davinci_map_io,
|
.map_io = davinci_map_io,
|
||||||
.init_irq = davinci_irq_init,
|
.init_irq = davinci_irq_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = evm_init,
|
.init_machine = evm_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -570,7 +570,7 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = mityomapl138_map_io,
|
.map_io = mityomapl138_map_io,
|
||||||
.init_irq = cp_intc_init,
|
.init_irq = cp_intc_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = mityomapl138_init,
|
.init_machine = mityomapl138_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -237,7 +237,7 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = davinci_ntosd2_map_io,
|
.map_io = davinci_ntosd2_map_io,
|
||||||
.init_irq = davinci_irq_init,
|
.init_irq = davinci_irq_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = davinci_ntosd2_init,
|
.init_machine = davinci_ntosd2_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -341,7 +341,7 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = omapl138_hawk_map_io,
|
.map_io = omapl138_hawk_map_io,
|
||||||
.init_irq = cp_intc_init,
|
.init_irq = cp_intc_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = omapl138_hawk_init,
|
.init_machine = omapl138_hawk_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -155,7 +155,7 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = davinci_sffsdr_map_io,
|
.map_io = davinci_sffsdr_map_io,
|
||||||
.init_irq = davinci_irq_init,
|
.init_irq = davinci_irq_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = davinci_sffsdr_init,
|
.init_machine = davinci_sffsdr_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -280,7 +280,7 @@ MACHINE_START(TNETV107X, "TNETV107X EVM")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = tnetv107x_init,
|
.map_io = tnetv107x_init,
|
||||||
.init_irq = cp_intc_init,
|
.init_irq = cp_intc_init,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = tnetv107x_evm_board_init,
|
.init_machine = tnetv107x_evm_board_init,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
.dma_zone_size = SZ_128M,
|
.dma_zone_size = SZ_128M,
|
||||||
|
|
|
@ -56,7 +56,7 @@ static const char *da850_boards_compat[] __initdata = {
|
||||||
DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x")
|
DT_MACHINE_START(DA850_DT, "Generic DA850/OMAP-L138/AM18x")
|
||||||
.map_io = da850_init,
|
.map_io = da850_init,
|
||||||
.init_irq = da8xx_init_irq,
|
.init_irq = da8xx_init_irq,
|
||||||
.timer = &davinci_timer,
|
.init_time = davinci_timer_init,
|
||||||
.init_machine = da850_init_machine,
|
.init_machine = da850_init_machine,
|
||||||
.dt_compat = da850_boards_compat,
|
.dt_compat = da850_boards_compat,
|
||||||
.init_late = davinci_init_late,
|
.init_late = davinci_init_late,
|
||||||
|
|
|
@ -15,9 +15,7 @@
|
||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
|
|
||||||
struct sys_timer;
|
extern void davinci_timer_init(void);
|
||||||
|
|
||||||
extern struct sys_timer davinci_timer;
|
|
||||||
|
|
||||||
extern void davinci_irq_init(void);
|
extern void davinci_irq_init(void);
|
||||||
extern void __iomem *davinci_intc_base;
|
extern void __iomem *davinci_intc_base;
|
||||||
|
|
|
@ -337,7 +337,7 @@ static struct clock_event_device clockevent_davinci = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static void __init davinci_timer_init(void)
|
void __init davinci_timer_init(void)
|
||||||
{
|
{
|
||||||
struct clk *timer_clk;
|
struct clk *timer_clk;
|
||||||
struct davinci_soc_info *soc_info = &davinci_soc_info;
|
struct davinci_soc_info *soc_info = &davinci_soc_info;
|
||||||
|
@ -410,11 +410,6 @@ static void __init davinci_timer_init(void)
|
||||||
timer32_config(&timers[i]);
|
timer32_config(&timers[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer davinci_timer = {
|
|
||||||
.init = davinci_timer_init,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* reset board using watchdog timer */
|
/* reset board using watchdog timer */
|
||||||
void davinci_watchdog_reset(struct platform_device *pdev)
|
void davinci_watchdog_reset(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
|
|
|
@ -92,6 +92,6 @@ MACHINE_START(CM_A510, "Compulab CM-A510 Board")
|
||||||
.map_io = dove_map_io,
|
.map_io = dove_map_io,
|
||||||
.init_early = dove_init_early,
|
.init_early = dove_init_early,
|
||||||
.init_irq = dove_init_irq,
|
.init_irq = dove_init_irq,
|
||||||
.timer = &dove_timer,
|
.init_time = dove_timer_init,
|
||||||
.restart = dove_restart,
|
.restart = dove_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -242,17 +242,13 @@ static int __init dove_find_tclk(void)
|
||||||
return 166666667;
|
return 166666667;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init dove_timer_init(void)
|
void __init dove_timer_init(void)
|
||||||
{
|
{
|
||||||
dove_tclk = dove_find_tclk();
|
dove_tclk = dove_find_tclk();
|
||||||
orion_time_init(BRIDGE_VIRT_BASE, BRIDGE_INT_TIMER1_CLR,
|
orion_time_init(BRIDGE_VIRT_BASE, BRIDGE_INT_TIMER1_CLR,
|
||||||
IRQ_DOVE_BRIDGE, dove_tclk);
|
IRQ_DOVE_BRIDGE, dove_tclk);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer dove_timer = {
|
|
||||||
.init = dove_timer_init,
|
|
||||||
};
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Cryptographic Engines and Security Accelerator (CESA)
|
* Cryptographic Engines and Security Accelerator (CESA)
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
@ -454,7 +450,7 @@ DT_MACHINE_START(DOVE_DT, "Marvell Dove (Flattened Device Tree)")
|
||||||
.map_io = dove_map_io,
|
.map_io = dove_map_io,
|
||||||
.init_early = dove_init_early,
|
.init_early = dove_init_early,
|
||||||
.init_irq = orion_dt_init_irq,
|
.init_irq = orion_dt_init_irq,
|
||||||
.timer = &dove_timer,
|
.init_time = dove_timer_init,
|
||||||
.init_machine = dove_dt_init,
|
.init_machine = dove_dt_init,
|
||||||
.restart = dove_restart,
|
.restart = dove_restart,
|
||||||
.dt_compat = dove_dt_board_compat,
|
.dt_compat = dove_dt_board_compat,
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
struct mv643xx_eth_platform_data;
|
struct mv643xx_eth_platform_data;
|
||||||
struct mv_sata_platform_data;
|
struct mv_sata_platform_data;
|
||||||
|
|
||||||
extern struct sys_timer dove_timer;
|
extern void dove_timer_init(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Basic Dove init functions used early by machine-setup.
|
* Basic Dove init functions used early by machine-setup.
|
||||||
|
|
|
@ -98,6 +98,6 @@ MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board")
|
||||||
.map_io = dove_map_io,
|
.map_io = dove_map_io,
|
||||||
.init_early = dove_init_early,
|
.init_early = dove_init_early,
|
||||||
.init_irq = dove_init_irq,
|
.init_irq = dove_init_irq,
|
||||||
.timer = &dove_timer,
|
.init_time = dove_timer_init,
|
||||||
.restart = dove_restart,
|
.restart = dove_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -158,7 +158,7 @@ static void __init ebsa110_init_early(void)
|
||||||
* interrupt, then the PIT counter will roll over (ie, be negative).
|
* interrupt, then the PIT counter will roll over (ie, be negative).
|
||||||
* This actually works out to be convenient.
|
* This actually works out to be convenient.
|
||||||
*/
|
*/
|
||||||
static unsigned long ebsa110_gettimeoffset(void)
|
static u32 ebsa110_gettimeoffset(void)
|
||||||
{
|
{
|
||||||
unsigned long offset, count;
|
unsigned long offset, count;
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ static unsigned long ebsa110_gettimeoffset(void)
|
||||||
*/
|
*/
|
||||||
offset = offset * (1000000 / HZ) / COUNT;
|
offset = offset * (1000000 / HZ) / COUNT;
|
||||||
|
|
||||||
return offset;
|
return offset * 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
static irqreturn_t
|
static irqreturn_t
|
||||||
|
@ -213,8 +213,10 @@ static struct irqaction ebsa110_timer_irq = {
|
||||||
/*
|
/*
|
||||||
* Set up timer interrupt.
|
* Set up timer interrupt.
|
||||||
*/
|
*/
|
||||||
static void __init ebsa110_timer_init(void)
|
void __init ebsa110_timer_init(void)
|
||||||
{
|
{
|
||||||
|
arch_gettimeoffset = ebsa110_gettimeoffset;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Timer 1, mode 2, LSB/MSB
|
* Timer 1, mode 2, LSB/MSB
|
||||||
*/
|
*/
|
||||||
|
@ -225,11 +227,6 @@ static void __init ebsa110_timer_init(void)
|
||||||
setup_irq(IRQ_EBSA110_TIMER0, &ebsa110_timer_irq);
|
setup_irq(IRQ_EBSA110_TIMER0, &ebsa110_timer_irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct sys_timer ebsa110_timer = {
|
|
||||||
.init = ebsa110_timer_init,
|
|
||||||
.offset = ebsa110_gettimeoffset,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct plat_serial8250_port serial_platform_data[] = {
|
static struct plat_serial8250_port serial_platform_data[] = {
|
||||||
{
|
{
|
||||||
.iobase = 0x3f8,
|
.iobase = 0x3f8,
|
||||||
|
@ -328,6 +325,6 @@ MACHINE_START(EBSA110, "EBSA110")
|
||||||
.map_io = ebsa110_map_io,
|
.map_io = ebsa110_map_io,
|
||||||
.init_early = ebsa110_init_early,
|
.init_early = ebsa110_init_early,
|
||||||
.init_irq = ebsa110_init_irq,
|
.init_irq = ebsa110_init_irq,
|
||||||
.timer = &ebsa110_timer,
|
.init_time = ebsa110_timer_init,
|
||||||
.restart = ebsa110_restart,
|
.restart = ebsa110_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -38,7 +38,7 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = adssphere_init_machine,
|
.init_machine = adssphere_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
|
|
@ -139,11 +139,29 @@ static struct irqaction ep93xx_timer_irq = {
|
||||||
.handler = ep93xx_timer_interrupt,
|
.handler = ep93xx_timer_interrupt,
|
||||||
};
|
};
|
||||||
|
|
||||||
static void __init ep93xx_timer_init(void)
|
static u32 ep93xx_gettimeoffset(void)
|
||||||
|
{
|
||||||
|
int offset;
|
||||||
|
|
||||||
|
offset = __raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Timer 4 is based on a 983.04 kHz reference clock,
|
||||||
|
* so dividing by 983040 gives the fraction of a second,
|
||||||
|
* so dividing by 0.983040 converts to uS.
|
||||||
|
* Refactor the calculation to avoid overflow.
|
||||||
|
* Finally, multiply by 1000 to give nS.
|
||||||
|
*/
|
||||||
|
return (offset + (53 * offset / 3072)) * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
void __init ep93xx_timer_init(void)
|
||||||
{
|
{
|
||||||
u32 tmode = EP93XX_TIMER123_CONTROL_MODE |
|
u32 tmode = EP93XX_TIMER123_CONTROL_MODE |
|
||||||
EP93XX_TIMER123_CONTROL_CLKSEL;
|
EP93XX_TIMER123_CONTROL_CLKSEL;
|
||||||
|
|
||||||
|
arch_gettimeoffset = ep93xx_gettimeoffset;
|
||||||
|
|
||||||
/* Enable periodic HZ timer. */
|
/* Enable periodic HZ timer. */
|
||||||
__raw_writel(tmode, EP93XX_TIMER1_CONTROL);
|
__raw_writel(tmode, EP93XX_TIMER1_CONTROL);
|
||||||
__raw_writel(TIMER1_RELOAD, EP93XX_TIMER1_LOAD);
|
__raw_writel(TIMER1_RELOAD, EP93XX_TIMER1_LOAD);
|
||||||
|
@ -157,21 +175,6 @@ static void __init ep93xx_timer_init(void)
|
||||||
setup_irq(IRQ_EP93XX_TIMER1, &ep93xx_timer_irq);
|
setup_irq(IRQ_EP93XX_TIMER1, &ep93xx_timer_irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
static unsigned long ep93xx_gettimeoffset(void)
|
|
||||||
{
|
|
||||||
int offset;
|
|
||||||
|
|
||||||
offset = __raw_readl(EP93XX_TIMER4_VALUE_LOW) - last_jiffy_time;
|
|
||||||
|
|
||||||
/* Calculate (1000000 / 983040) * offset. */
|
|
||||||
return offset + (53 * offset / 3072);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct sys_timer ep93xx_timer = {
|
|
||||||
.init = ep93xx_timer_init,
|
|
||||||
.offset = ep93xx_gettimeoffset,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************************
|
/*************************************************************************
|
||||||
* EP93xx IRQ handling
|
* EP93xx IRQ handling
|
||||||
|
|
|
@ -275,7 +275,7 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = edb93xx_init_machine,
|
.init_machine = edb93xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -288,7 +288,7 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = edb93xx_init_machine,
|
.init_machine = edb93xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -301,7 +301,7 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = edb93xx_init_machine,
|
.init_machine = edb93xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -314,7 +314,7 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = edb93xx_init_machine,
|
.init_machine = edb93xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -327,7 +327,7 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = edb93xx_init_machine,
|
.init_machine = edb93xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -340,7 +340,7 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = edb93xx_init_machine,
|
.init_machine = edb93xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -353,7 +353,7 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = edb93xx_init_machine,
|
.init_machine = edb93xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -366,7 +366,7 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = edb93xx_init_machine,
|
.init_machine = edb93xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
|
|
@ -38,7 +38,7 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = gesbc9312_init_machine,
|
.init_machine = gesbc9312_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
|
|
@ -53,7 +53,7 @@ int ep93xx_ide_acquire_gpio(struct platform_device *pdev);
|
||||||
void ep93xx_ide_release_gpio(struct platform_device *pdev);
|
void ep93xx_ide_release_gpio(struct platform_device *pdev);
|
||||||
|
|
||||||
void ep93xx_init_devices(void);
|
void ep93xx_init_devices(void);
|
||||||
extern struct sys_timer ep93xx_timer;
|
extern void ep93xx_timer_init(void);
|
||||||
|
|
||||||
void ep93xx_restart(char, const char *);
|
void ep93xx_restart(char, const char *);
|
||||||
void ep93xx_init_late(void);
|
void ep93xx_init_late(void);
|
||||||
|
|
|
@ -81,7 +81,7 @@ MACHINE_START(MICRO9, "Contec Micro9-High")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = micro9_init_machine,
|
.init_machine = micro9_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -94,7 +94,7 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = micro9_init_machine,
|
.init_machine = micro9_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -107,7 +107,7 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = micro9_init_machine,
|
.init_machine = micro9_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
@ -120,7 +120,7 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = micro9_init_machine,
|
.init_machine = micro9_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
|
|
@ -82,7 +82,7 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = simone_init_machine,
|
.init_machine = simone_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
|
|
@ -175,7 +175,7 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ep93xx_map_io,
|
.map_io = ep93xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = snappercl15_init_machine,
|
.init_machine = snappercl15_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
|
|
@ -245,7 +245,7 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = ts72xx_map_io,
|
.map_io = ts72xx_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = ts72xx_init_machine,
|
.init_machine = ts72xx_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
|
|
@ -363,7 +363,7 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307")
|
||||||
.atag_offset = 0x100,
|
.atag_offset = 0x100,
|
||||||
.map_io = vision_map_io,
|
.map_io = vision_map_io,
|
||||||
.init_irq = ep93xx_init_irq,
|
.init_irq = ep93xx_init_irq,
|
||||||
.timer = &ep93xx_timer,
|
.init_time = ep93xx_timer_init,
|
||||||
.init_machine = vision_init_machine,
|
.init_machine = vision_init_machine,
|
||||||
.init_late = ep93xx_init_late,
|
.init_late = ep93xx_init_late,
|
||||||
.restart = ep93xx_restart,
|
.restart = ep93xx_restart,
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
#ifndef __ARCH_ARM_MACH_EXYNOS_COMMON_H
|
#ifndef __ARCH_ARM_MACH_EXYNOS_COMMON_H
|
||||||
#define __ARCH_ARM_MACH_EXYNOS_COMMON_H
|
#define __ARCH_ARM_MACH_EXYNOS_COMMON_H
|
||||||
|
|
||||||
extern struct sys_timer exynos4_timer;
|
extern void exynos4_timer_init(void);
|
||||||
|
|
||||||
struct map_desc;
|
struct map_desc;
|
||||||
void exynos_init_io(struct map_desc *mach_desc, int size);
|
void exynos_init_io(struct map_desc *mach_desc, int size);
|
||||||
|
|
|
@ -202,6 +202,6 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210")
|
||||||
.map_io = armlex4210_map_io,
|
.map_io = armlex4210_map_io,
|
||||||
.init_machine = armlex4210_machine_init,
|
.init_machine = armlex4210_machine_init,
|
||||||
.init_late = exynos_init_late,
|
.init_late = exynos_init_late,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -108,7 +108,7 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
|
||||||
.map_io = exynos4_dt_map_io,
|
.map_io = exynos4_dt_map_io,
|
||||||
.init_machine = exynos4_dt_machine_init,
|
.init_machine = exynos4_dt_machine_init,
|
||||||
.init_late = exynos_init_late,
|
.init_late = exynos_init_late,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.dt_compat = exynos4_dt_compat,
|
.dt_compat = exynos4_dt_compat,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -180,7 +180,7 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)")
|
||||||
.map_io = exynos5_dt_map_io,
|
.map_io = exynos5_dt_map_io,
|
||||||
.init_machine = exynos5_dt_machine_init,
|
.init_machine = exynos5_dt_machine_init,
|
||||||
.init_late = exynos_init_late,
|
.init_late = exynos_init_late,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.dt_compat = exynos5_dt_compat,
|
.dt_compat = exynos5_dt_compat,
|
||||||
.restart = exynos5_restart,
|
.restart = exynos5_restart,
|
||||||
.reserve = exynos5_reserve,
|
.reserve = exynos5_reserve,
|
||||||
|
|
|
@ -1380,7 +1380,7 @@ MACHINE_START(NURI, "NURI")
|
||||||
.map_io = nuri_map_io,
|
.map_io = nuri_map_io,
|
||||||
.init_machine = nuri_machine_init,
|
.init_machine = nuri_machine_init,
|
||||||
.init_late = exynos_init_late,
|
.init_late = exynos_init_late,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.reserve = &nuri_reserve,
|
.reserve = &nuri_reserve,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -815,7 +815,7 @@ MACHINE_START(ORIGEN, "ORIGEN")
|
||||||
.map_io = origen_map_io,
|
.map_io = origen_map_io,
|
||||||
.init_machine = origen_machine_init,
|
.init_machine = origen_machine_init,
|
||||||
.init_late = exynos_init_late,
|
.init_late = exynos_init_late,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.reserve = &origen_reserve,
|
.reserve = &origen_reserve,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -376,7 +376,7 @@ MACHINE_START(SMDK4212, "SMDK4212")
|
||||||
.init_irq = exynos4_init_irq,
|
.init_irq = exynos4_init_irq,
|
||||||
.map_io = smdk4x12_map_io,
|
.map_io = smdk4x12_map_io,
|
||||||
.init_machine = smdk4x12_machine_init,
|
.init_machine = smdk4x12_machine_init,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
.reserve = &smdk4x12_reserve,
|
.reserve = &smdk4x12_reserve,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
@ -390,7 +390,7 @@ MACHINE_START(SMDK4412, "SMDK4412")
|
||||||
.map_io = smdk4x12_map_io,
|
.map_io = smdk4x12_map_io,
|
||||||
.init_machine = smdk4x12_machine_init,
|
.init_machine = smdk4x12_machine_init,
|
||||||
.init_late = exynos_init_late,
|
.init_late = exynos_init_late,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
.reserve = &smdk4x12_reserve,
|
.reserve = &smdk4x12_reserve,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -423,7 +423,7 @@ MACHINE_START(SMDKV310, "SMDKV310")
|
||||||
.init_irq = exynos4_init_irq,
|
.init_irq = exynos4_init_irq,
|
||||||
.map_io = smdkv310_map_io,
|
.map_io = smdkv310_map_io,
|
||||||
.init_machine = smdkv310_machine_init,
|
.init_machine = smdkv310_machine_init,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.reserve = &smdkv310_reserve,
|
.reserve = &smdkv310_reserve,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
@ -436,7 +436,7 @@ MACHINE_START(SMDKC210, "SMDKC210")
|
||||||
.map_io = smdkv310_map_io,
|
.map_io = smdkv310_map_io,
|
||||||
.init_machine = smdkv310_machine_init,
|
.init_machine = smdkv310_machine_init,
|
||||||
.init_late = exynos_init_late,
|
.init_late = exynos_init_late,
|
||||||
.timer = &exynos4_timer,
|
.init_time = exynos4_timer_init,
|
||||||
.reserve = &smdkv310_reserve,
|
.reserve = &smdkv310_reserve,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -1152,7 +1152,7 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210")
|
||||||
.map_io = universal_map_io,
|
.map_io = universal_map_io,
|
||||||
.init_machine = universal_machine_init,
|
.init_machine = universal_machine_init,
|
||||||
.init_late = exynos_init_late,
|
.init_late = exynos_init_late,
|
||||||
.timer = &s5p_timer,
|
.init_time = s5p_timer_init,
|
||||||
.reserve = &universal_reserve,
|
.reserve = &universal_reserve,
|
||||||
.restart = exynos4_restart,
|
.restart = exynos4_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -254,13 +254,9 @@ static struct irqaction mct_comp_event_irq = {
|
||||||
|
|
||||||
static void exynos4_clockevent_init(void)
|
static void exynos4_clockevent_init(void)
|
||||||
{
|
{
|
||||||
clockevents_calc_mult_shift(&mct_comp_device, clk_rate, 5);
|
|
||||||
mct_comp_device.max_delta_ns =
|
|
||||||
clockevent_delta2ns(0xffffffff, &mct_comp_device);
|
|
||||||
mct_comp_device.min_delta_ns =
|
|
||||||
clockevent_delta2ns(0xf, &mct_comp_device);
|
|
||||||
mct_comp_device.cpumask = cpumask_of(0);
|
mct_comp_device.cpumask = cpumask_of(0);
|
||||||
clockevents_register_device(&mct_comp_device);
|
clockevents_config_and_register(&mct_comp_device, clk_rate,
|
||||||
|
0xf, 0xffffffff);
|
||||||
|
|
||||||
if (soc_is_exynos5250())
|
if (soc_is_exynos5250())
|
||||||
setup_irq(EXYNOS5_IRQ_MCT_G0, &mct_comp_event_irq);
|
setup_irq(EXYNOS5_IRQ_MCT_G0, &mct_comp_event_irq);
|
||||||
|
@ -403,14 +399,8 @@ static int __cpuinit exynos4_local_timer_setup(struct clock_event_device *evt)
|
||||||
evt->set_mode = exynos4_tick_set_mode;
|
evt->set_mode = exynos4_tick_set_mode;
|
||||||
evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT;
|
evt->features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT;
|
||||||
evt->rating = 450;
|
evt->rating = 450;
|
||||||
|
clockevents_config_and_register(evt, clk_rate / (TICK_BASE_CNT + 1),
|
||||||
clockevents_calc_mult_shift(evt, clk_rate / (TICK_BASE_CNT + 1), 5);
|
0xf, 0x7fffffff);
|
||||||
evt->max_delta_ns =
|
|
||||||
clockevent_delta2ns(0x7fffffff, evt);
|
|
||||||
evt->min_delta_ns =
|
|
||||||
clockevent_delta2ns(0xf, evt);
|
|
||||||
|
|
||||||
clockevents_register_device(evt);
|
|
||||||
|
|
||||||
exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET);
|
exynos4_mct_write(TICK_BASE_CNT, mevt->base + MCT_L_TCNTB_OFFSET);
|
||||||
|
|
||||||
|
@ -477,7 +467,7 @@ static void __init exynos4_timer_resources(void)
|
||||||
#endif /* CONFIG_LOCAL_TIMERS */
|
#endif /* CONFIG_LOCAL_TIMERS */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init exynos_timer_init(void)
|
void __init exynos4_timer_init(void)
|
||||||
{
|
{
|
||||||
if (soc_is_exynos5440()) {
|
if (soc_is_exynos5440()) {
|
||||||
arch_timer_of_register();
|
arch_timer_of_register();
|
||||||
|
@ -493,7 +483,3 @@ static void __init exynos_timer_init(void)
|
||||||
exynos4_clocksource_init();
|
exynos4_clocksource_init();
|
||||||
exynos4_clockevent_init();
|
exynos4_clockevent_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer exynos4_timer = {
|
|
||||||
.init = exynos_timer_init,
|
|
||||||
};
|
|
||||||
|
|
|
@ -90,6 +90,6 @@ MACHINE_START(CATS, "Chalice-CATS")
|
||||||
.fixup = fixup_cats,
|
.fixup = fixup_cats,
|
||||||
.map_io = footbridge_map_io,
|
.map_io = footbridge_map_io,
|
||||||
.init_irq = footbridge_init_irq,
|
.init_irq = footbridge_init_irq,
|
||||||
.timer = &isa_timer,
|
.init_time = isa_timer_init,
|
||||||
.restart = footbridge_restart,
|
.restart = footbridge_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
extern struct sys_timer footbridge_timer;
|
extern void footbridge_timer_init(void);
|
||||||
extern struct sys_timer isa_timer;
|
extern void isa_timer_init(void);
|
||||||
|
|
||||||
extern void isa_rtc_init(void);
|
extern void isa_rtc_init(void);
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ static struct irqaction footbridge_timer_irq = {
|
||||||
/*
|
/*
|
||||||
* Set up timer interrupt.
|
* Set up timer interrupt.
|
||||||
*/
|
*/
|
||||||
static void __init footbridge_timer_init(void)
|
void __init footbridge_timer_init(void)
|
||||||
{
|
{
|
||||||
struct clock_event_device *ce = &ckevt_dc21285;
|
struct clock_event_device *ce = &ckevt_dc21285;
|
||||||
|
|
||||||
|
@ -101,14 +101,6 @@ static void __init footbridge_timer_init(void)
|
||||||
|
|
||||||
setup_irq(ce->irq, &footbridge_timer_irq);
|
setup_irq(ce->irq, &footbridge_timer_irq);
|
||||||
|
|
||||||
clockevents_calc_mult_shift(ce, mem_fclk_21285, 5);
|
|
||||||
ce->max_delta_ns = clockevent_delta2ns(0xffffff, ce);
|
|
||||||
ce->min_delta_ns = clockevent_delta2ns(0x000004, ce);
|
|
||||||
ce->cpumask = cpumask_of(smp_processor_id());
|
ce->cpumask = cpumask_of(smp_processor_id());
|
||||||
|
clockevents_config_and_register(ce, mem_fclk_21285, 0x4, 0xffffff);
|
||||||
clockevents_register_device(ce);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
struct sys_timer footbridge_timer = {
|
|
||||||
.init = footbridge_timer_init,
|
|
||||||
};
|
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue