Merge branch 'depends/cleanup' into next/soc
Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
Коммит
66eae035dc
|
@ -4209,6 +4209,7 @@ M: Thomas Gleixner <tglx@linutronix.de>
|
|||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git irq/core
|
||||
F: kernel/irq/
|
||||
F: drivers/irqchip/
|
||||
|
||||
IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
|
||||
M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
|
|
|
@ -1,26 +1,3 @@
|
|||
config ARM_GIC
|
||||
bool
|
||||
select IRQ_DOMAIN
|
||||
select MULTI_IRQ_HANDLER
|
||||
|
||||
config GIC_NON_BANKED
|
||||
bool
|
||||
|
||||
config ARM_VIC
|
||||
bool
|
||||
select IRQ_DOMAIN
|
||||
select MULTI_IRQ_HANDLER
|
||||
|
||||
config ARM_VIC_NR
|
||||
int
|
||||
default 4 if ARCH_S5PV210
|
||||
default 3 if ARCH_S5PC100
|
||||
default 2
|
||||
depends on ARM_VIC
|
||||
help
|
||||
The maximum number of VICs available in the system, for
|
||||
power management.
|
||||
|
||||
config ICST
|
||||
bool
|
||||
|
||||
|
|
|
@ -2,8 +2,6 @@
|
|||
# Makefile for the linux kernel.
|
||||
#
|
||||
|
||||
obj-$(CONFIG_ARM_GIC) += gic.o
|
||||
obj-$(CONFIG_ARM_VIC) += vic.o
|
||||
obj-$(CONFIG_ICST) += icst.o
|
||||
obj-$(CONFIG_SA1111) += sa1111.o
|
||||
obj-$(CONFIG_PCI_HOST_VIA82C505) += via82c505.o
|
||||
|
|
|
@ -12,7 +12,6 @@
|
|||
|
||||
struct tag;
|
||||
struct meminfo;
|
||||
struct sys_timer;
|
||||
struct pt_regs;
|
||||
struct smp_operations;
|
||||
#ifdef CONFIG_SMP
|
||||
|
@ -48,7 +47,7 @@ struct machine_desc {
|
|||
void (*map_io)(void);/* IO mapping function */
|
||||
void (*init_early)(void);
|
||||
void (*init_irq)(void);
|
||||
struct sys_timer *timer; /* system tick timer */
|
||||
void (*init_time)(void);
|
||||
void (*init_machine)(void);
|
||||
void (*init_late)(void);
|
||||
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
||||
|
|
|
@ -22,6 +22,7 @@ extern int show_fiq_list(struct seq_file *, int);
|
|||
|
||||
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
||||
extern void (*handle_arch_irq)(struct pt_regs *);
|
||||
extern void set_handle_irq(void (*handle_irq)(struct pt_regs *));
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
|
|
@ -10,36 +10,6 @@
|
|||
#ifndef __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);
|
||||
|
||||
struct timespec;
|
||||
|
|
|
@ -117,6 +117,16 @@ void __init init_IRQ(void)
|
|||
machine_desc->init_irq();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_MULTI_IRQ_HANDLER
|
||||
void __init set_handle_irq(void (*handle_irq)(struct pt_regs *))
|
||||
{
|
||||
if (handle_arch_irq)
|
||||
return;
|
||||
|
||||
handle_arch_irq = handle_irq;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPARSE_IRQ
|
||||
int __init arch_probe_nr_irqs(void)
|
||||
{
|
||||
|
|
|
@ -416,7 +416,8 @@ static void (*smp_cross_call)(const struct cpumask *, unsigned int);
|
|||
|
||||
void __init set_smp_cross_call(void (*fn)(const struct cpumask *, unsigned int))
|
||||
{
|
||||
smp_cross_call = fn;
|
||||
if (!smp_cross_call)
|
||||
smp_cross_call = fn;
|
||||
}
|
||||
|
||||
void arch_send_call_function_ipi_mask(const struct cpumask *mask)
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
|
||||
#include <asm/smp_twd.h>
|
||||
#include <asm/localtimer.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
|
||||
/* set up by the platform code */
|
||||
static void __iomem *twd_base;
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
#include <linux/timex.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/profile.h>
|
||||
#include <linux/syscore_ops.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/irq.h>
|
||||
|
||||
|
@ -31,11 +30,6 @@
|
|||
#include <asm/mach/arch.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) || \
|
||||
defined(CONFIG_NVRAM) || defined(CONFIG_NVRAM_MODULE)
|
||||
/* this needs a better home */
|
||||
|
@ -69,16 +63,6 @@ unsigned long profile_pc(struct pt_regs *regs)
|
|||
EXPORT_SYMBOL(profile_pc);
|
||||
#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
|
||||
/*
|
||||
* Kernel system timer support.
|
||||
|
@ -129,43 +113,8 @@ int __init register_persistent_clock(clock_access_fn read_boot,
|
|||
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)
|
||||
{
|
||||
system_timer = machine_desc->timer;
|
||||
system_timer->init();
|
||||
machine_desc->init_time();
|
||||
sched_clock_postinit();
|
||||
}
|
||||
|
||||
|
|
|
@ -174,7 +174,6 @@ clkevt32k_next_event(unsigned long delta, struct clock_event_device *dev)
|
|||
static struct clock_event_device clkevt = {
|
||||
.name = "at91_tick",
|
||||
.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
|
||||
.shift = 32,
|
||||
.rating = 150,
|
||||
.set_next_event = clkevt32k_next_event,
|
||||
.set_mode = clkevt32k_mode,
|
||||
|
@ -265,17 +264,10 @@ void __init at91rm9200_timer_init(void)
|
|||
at91_st_write(AT91_ST_RTMR, 1);
|
||||
|
||||
/* 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);
|
||||
clockevents_register_device(&clkevt);
|
||||
clockevents_config_and_register(&clkevt, AT91_SLOW_CLOCK,
|
||||
2, AT91_ST_ALMV);
|
||||
|
||||
/* register clocksource */
|
||||
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 = {
|
||||
.name = "pit",
|
||||
.features = CLOCK_EVT_FEAT_PERIODIC,
|
||||
.shift = 32,
|
||||
.rating = 100,
|
||||
.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,
|
||||
};
|
||||
|
||||
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
|
||||
static struct of_device_id pit_timer_ids[] = {
|
||||
{ .compatible = "atmel,at91sam9260-pit" },
|
||||
|
@ -211,7 +224,7 @@ static int __init of_at91sam926x_pit_init(void)
|
|||
/*
|
||||
* 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 bits;
|
||||
|
@ -250,12 +263,6 @@ static void __init at91sam926x_pit_init(void)
|
|||
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)
|
||||
{
|
||||
#if defined(CONFIG_OF)
|
||||
|
@ -272,9 +279,3 @@ void __init at91sam926x_ioremap_pit(u32 addr)
|
|||
if (!pit_base_addr)
|
||||
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_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)
|
||||
|
@ -64,6 +65,8 @@ void __init at91x40_timer_init(void)
|
|||
{
|
||||
unsigned int v;
|
||||
|
||||
arch_gettimeoffset = at91x40_gettimeoffset;
|
||||
|
||||
at91_tc_write(AT91_TC_BCR, 0);
|
||||
v = at91_tc_read(AT91_TC_BMR);
|
||||
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));
|
||||
}
|
||||
|
||||
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")
|
||||
/* Maintainer: Lennert Buytenhek <buytenh@wantstofly.org> */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = onearm_init_early,
|
||||
|
|
|
@ -210,7 +210,7 @@ static void __init afeb9260_board_init(void)
|
|||
|
||||
MACHINE_START(AFEB9260, "Custom afeb9260 board")
|
||||
/* Maintainer: Sergey Lapin <slapin@ossfans.org> */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = afeb9260_init_early,
|
||||
|
|
|
@ -187,7 +187,7 @@ static void __init cam60_board_init(void)
|
|||
|
||||
MACHINE_START(CAM60, "KwikByte CAM60")
|
||||
/* Maintainer: KwikByte */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = cam60_init_early,
|
||||
|
|
|
@ -157,7 +157,7 @@ static void __init carmeva_board_init(void)
|
|||
|
||||
MACHINE_START(CARMEVA, "Carmeva")
|
||||
/* Maintainer: Conitec Datasystems */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = carmeva_init_early,
|
||||
|
|
|
@ -374,7 +374,7 @@ MACHINE_START(CPUAT9260, "Eukrea CPU9260")
|
|||
MACHINE_START(CPUAT9G20, "Eukrea CPU9G20")
|
||||
#endif
|
||||
/* Maintainer: Eric Benard - EUKREA Electromatique */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = cpu9krea_init_early,
|
||||
|
|
|
@ -178,7 +178,7 @@ static void __init cpuat91_board_init(void)
|
|||
|
||||
MACHINE_START(CPUAT91, "Eukrea")
|
||||
/* Maintainer: Eric Benard - EUKREA Electromatique */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = cpuat91_init_early,
|
||||
|
|
|
@ -251,7 +251,7 @@ static void __init csb337_board_init(void)
|
|||
|
||||
MACHINE_START(CSB337, "Cogent CSB337")
|
||||
/* Maintainer: Bill Gatliff */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = csb337_init_early,
|
||||
|
|
|
@ -132,7 +132,7 @@ static void __init csb637_board_init(void)
|
|||
|
||||
MACHINE_START(CSB637, "Cogent CSB637")
|
||||
/* Maintainer: Bill Gatliff */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.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)")
|
||||
/* Maintainer: Atmel */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = at91_dt_initialize,
|
||||
|
|
|
@ -44,7 +44,7 @@ static void __init at91eb01_init_early(void)
|
|||
|
||||
MACHINE_START(AT91EB01, "Atmel AT91 EB01")
|
||||
/* Maintainer: Greg Ungerer <gerg@snapgear.com> */
|
||||
.timer = &at91x40_timer,
|
||||
.init_time = at91x40_timer_init,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = at91eb01_init_early,
|
||||
.init_irq = at91eb01_init_irq,
|
||||
|
|
|
@ -116,7 +116,7 @@ static void __init eb9200_board_init(void)
|
|||
}
|
||||
|
||||
MACHINE_START(ATEB9200, "Embest ATEB9200")
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = eb9200_init_early,
|
||||
|
|
|
@ -181,7 +181,7 @@ static void __init ecb_at91board_init(void)
|
|||
|
||||
MACHINE_START(ECBAT91, "emQbit's ECB_AT91")
|
||||
/* Maintainer: emQbit.com */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ecb_at91init_early,
|
||||
|
|
|
@ -149,7 +149,7 @@ static void __init eco920_board_init(void)
|
|||
|
||||
MACHINE_START(ECO920, "eco920")
|
||||
/* Maintainer: Sascha Hauer */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = eco920_init_early,
|
||||
|
|
|
@ -159,7 +159,7 @@ static void __init flexibity_board_init(void)
|
|||
|
||||
MACHINE_START(FLEXIBITY, "Flexibity Connect")
|
||||
/* Maintainer: Maxim Osipov */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.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")
|
||||
/* Maintainer: Sergio Tanzilli */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = foxg20_init_early,
|
||||
|
|
|
@ -574,7 +574,7 @@ static void __init gsia18s_board_init(void)
|
|||
}
|
||||
|
||||
MACHINE_START(GSIA18S, "GS_IA18_S")
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = gsia18s_init_early,
|
||||
|
|
|
@ -103,7 +103,7 @@ static void __init kafa_board_init(void)
|
|||
|
||||
MACHINE_START(KAFA, "Sperry-Sun KAFA")
|
||||
/* Maintainer: Sergei Sharonov */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = kafa_init_early,
|
||||
|
|
|
@ -149,7 +149,7 @@ static void __init kb9202_board_init(void)
|
|||
|
||||
MACHINE_START(KB9200, "KB920x")
|
||||
/* Maintainer: KwikByte, Inc. */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = kb9202_init_early,
|
||||
|
|
|
@ -378,7 +378,7 @@ static void __init neocore926_board_init(void)
|
|||
|
||||
MACHINE_START(NEOCORE926, "ADENEO NEOCORE 926")
|
||||
/* Maintainer: ADENEO */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = neocore926_init_early,
|
||||
|
|
|
@ -217,7 +217,7 @@ static void __init pcontrol_g20_board_init(void)
|
|||
|
||||
MACHINE_START(PCONTROL_G20, "PControl G20")
|
||||
/* Maintainer: pgsellmann@portner-elektronik.at */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = pcontrol_g20_init_early,
|
||||
|
|
|
@ -119,7 +119,7 @@ static void __init picotux200_board_init(void)
|
|||
|
||||
MACHINE_START(PICOTUX2XX, "picotux 200")
|
||||
/* Maintainer: Kleinhenz Elektronik GmbH */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = picotux200_init_early,
|
||||
|
|
|
@ -257,7 +257,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(QIL_A9260, "CALAO QIL_A9260")
|
||||
/* Maintainer: calao-systems */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.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)")
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = at91rm9200_dt_initialize,
|
||||
|
|
|
@ -219,7 +219,7 @@ static void __init dk_board_init(void)
|
|||
|
||||
MACHINE_START(AT91RM9200DK, "Atmel AT91RM9200-DK")
|
||||
/* Maintainer: SAN People/Atmel */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = dk_init_early,
|
||||
|
|
|
@ -186,7 +186,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(AT91RM9200EK, "Atmel AT91RM9200-EK")
|
||||
/* Maintainer: SAN People/Atmel */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
|
|
@ -222,7 +222,7 @@ static void __init rsi_ews_board_init(void)
|
|||
|
||||
MACHINE_START(RSI_EWS, "RSI EWS")
|
||||
/* Maintainer: Josef Holzmayr <holzmayr@rsi-elektrotechnik.de> */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = rsi_ews_init_early,
|
||||
|
|
|
@ -218,7 +218,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(SAM9_L9260, "Olimex SAM9-L9260")
|
||||
/* Maintainer: Olimex */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
|
|
@ -343,7 +343,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK")
|
||||
/* Maintainer: Atmel */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
|
|
@ -612,7 +612,7 @@ MACHINE_START(AT91SAM9261EK, "Atmel AT91SAM9261-EK")
|
|||
MACHINE_START(AT91SAM9G10EK, "Atmel AT91SAM9G10-EK")
|
||||
#endif
|
||||
/* Maintainer: Atmel */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
|
|
@ -443,7 +443,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK")
|
||||
/* Maintainer: Atmel */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
|
|
@ -409,7 +409,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(AT91SAM9G20EK, "Atmel AT91SAM9G20-EK")
|
||||
/* Maintainer: Atmel */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
@ -419,7 +419,7 @@ MACHINE_END
|
|||
|
||||
MACHINE_START(AT91SAM9G20EK_2MMC, "Atmel AT91SAM9G20-EK 2 MMC Slot Mod")
|
||||
/* Maintainer: Atmel */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
|
|
@ -502,7 +502,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(AT91SAM9M10G45EK, "Atmel AT91SAM9M10G45-EK")
|
||||
/* Maintainer: Atmel */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
|
|
@ -320,7 +320,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK")
|
||||
/* Maintainer: Atmel */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.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")
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = snapper9260_init_early,
|
||||
|
|
|
@ -272,7 +272,7 @@ static void __init stamp9g20evb_board_init(void)
|
|||
|
||||
MACHINE_START(PORTUXG20, "taskit PortuxG20")
|
||||
/* Maintainer: taskit GmbH */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = stamp9g20_init_early,
|
||||
|
@ -282,7 +282,7 @@ MACHINE_END
|
|||
|
||||
MACHINE_START(STAMP9G20, "taskit Stamp9G20")
|
||||
/* Maintainer: taskit GmbH */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = stamp9g20_init_early,
|
||||
|
|
|
@ -355,7 +355,7 @@ static void __init ek_board_init(void)
|
|||
|
||||
MACHINE_START(USB_A9263, "CALAO USB_A9263")
|
||||
/* Maintainer: calao-systems */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
@ -365,7 +365,7 @@ MACHINE_END
|
|||
|
||||
MACHINE_START(USB_A9260, "CALAO USB_A9260")
|
||||
/* Maintainer: calao-systems */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
@ -375,7 +375,7 @@ MACHINE_END
|
|||
|
||||
MACHINE_START(USB_A9G20, "CALAO USB_A92G0")
|
||||
/* Maintainer: Jean-Christophe PLAGNIOL-VILLARD */
|
||||
.timer = &at91sam926x_timer,
|
||||
.init_time = at91sam926x_pit_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = ek_init_early,
|
||||
|
|
|
@ -587,7 +587,7 @@ static void __init yl9200_board_init(void)
|
|||
|
||||
MACHINE_START(YL9200, "uCdragon YL-9200")
|
||||
/* Maintainer: S.Birtles */
|
||||
.timer = &at91rm9200_timer,
|
||||
.init_time = at91rm9200_timer_init,
|
||||
.map_io = at91_map_io,
|
||||
.handle_irq = at91_aic_handle_irq,
|
||||
.init_early = yl9200_init_early,
|
||||
|
|
|
@ -36,12 +36,11 @@ extern int __init at91_aic5_of_init(struct device_node *node,
|
|||
|
||||
|
||||
/* Timer */
|
||||
struct sys_timer;
|
||||
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 struct sys_timer at91sam926x_timer;
|
||||
extern struct sys_timer at91x40_timer;
|
||||
extern void at91sam926x_pit_init(void);
|
||||
extern void at91x40_timer_init(void);
|
||||
|
||||
/* Clocks */
|
||||
#ifdef CONFIG_AT91_PMC_UNIT
|
||||
|
|
|
@ -11,34 +11,19 @@
|
|||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/irqchip.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
|
||||
#include <asm/mach/time.h>
|
||||
|
||||
static const struct of_device_id irq_match[] = {
|
||||
{.compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
|
||||
{}
|
||||
};
|
||||
|
||||
static void timer_init(void)
|
||||
{
|
||||
}
|
||||
|
||||
static struct sys_timer timer = {
|
||||
.init = timer_init,
|
||||
};
|
||||
|
||||
static void __init init_irq(void)
|
||||
{
|
||||
of_irq_init(irq_match);
|
||||
}
|
||||
|
||||
static void __init board_init(void)
|
||||
{
|
||||
|
@ -49,9 +34,8 @@ static void __init board_init(void)
|
|||
static const char * const bcm11351_dt_compat[] = { "bcm,bcm11351", NULL, };
|
||||
|
||||
DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor")
|
||||
.init_irq = init_irq,
|
||||
.timer = &timer,
|
||||
.init_irq = irqchip_init,
|
||||
.init_time = timer_init,
|
||||
.init_machine = board_init,
|
||||
.dt_compat = bcm11351_dt_compat,
|
||||
.handle_irq = gic_handle_irq,
|
||||
MACHINE_END
|
||||
|
|
|
@ -104,7 +104,7 @@ DT_MACHINE_START(BCM2835, "BCM2835")
|
|||
.init_irq = bcm2835_init_irq,
|
||||
.handle_irq = bcm2835_handle_irq,
|
||||
.init_machine = bcm2835_init,
|
||||
.timer = &bcm2835_timer,
|
||||
.init_time = bcm2835_timer_init,
|
||||
.restart = bcm2835_restart,
|
||||
.dt_compat = bcm2835_compat
|
||||
MACHINE_END
|
||||
|
|
|
@ -170,7 +170,7 @@ MACHINE_START(AUTCPU12, "autronix autcpu12")
|
|||
.nr_irqs = CLPS711X_NR_IRQS,
|
||||
.map_io = clps711x_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
.init_time = clps711x_timer_init,
|
||||
.init_machine = autcpu12_init,
|
||||
.init_late = autcpu12_init_late,
|
||||
.handle_irq = clps711x_handle_irq,
|
||||
|
|
|
@ -140,7 +140,7 @@ MACHINE_START(CDB89712, "Cirrus-CDB89712")
|
|||
.nr_irqs = CLPS711X_NR_IRQS,
|
||||
.map_io = clps711x_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
.init_time = clps711x_timer_init,
|
||||
.init_machine = cdb89712_init,
|
||||
.handle_irq = clps711x_handle_irq,
|
||||
.restart = clps711x_restart,
|
||||
|
|
|
@ -40,7 +40,7 @@ MACHINE_START(CLEP7212, "Cirrus Logic 7212/7312")
|
|||
.fixup = fixup_clep7312,
|
||||
.map_io = clps711x_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
.init_time = clps711x_timer_init,
|
||||
.handle_irq = clps711x_handle_irq,
|
||||
.restart = clps711x_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -173,7 +173,7 @@ MACHINE_START(EDB7211, "CL-EDB7211 (EP7211 eval board)")
|
|||
.reserve = edb7211_reserve,
|
||||
.map_io = edb7211_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
.init_time = clps711x_timer_init,
|
||||
.init_machine = edb7211_init,
|
||||
.handle_irq = clps711x_handle_irq,
|
||||
.restart = clps711x_restart,
|
||||
|
|
|
@ -78,7 +78,7 @@ MACHINE_START(FORTUNET, "ARM-FortuNet")
|
|||
.fixup = fortunet_fixup,
|
||||
.map_io = clps711x_map_io,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
.init_time = clps711x_timer_init,
|
||||
.handle_irq = clps711x_handle_irq,
|
||||
.restart = clps711x_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -224,7 +224,7 @@ MACHINE_START(P720T, "ARM-Prospector720T")
|
|||
.map_io = p720t_map_io,
|
||||
.init_early = p720t_init_early,
|
||||
.init_irq = clps711x_init_irq,
|
||||
.timer = &clps711x_timer,
|
||||
.init_time = clps711x_timer_init,
|
||||
.init_machine = p720t_init,
|
||||
.init_late = p720t_init_late,
|
||||
.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);
|
||||
}
|
||||
|
||||
static void __init clps711x_timer_init(void)
|
||||
void __init clps711x_timer_init(void)
|
||||
{
|
||||
int osc, ext, pll, cpu, bus, timl, timh, uart, spi;
|
||||
u32 tmp;
|
||||
|
@ -345,10 +345,6 @@ static void __init clps711x_timer_init(void)
|
|||
setup_irq(IRQ_TC2OI, &clps711x_timer_irq);
|
||||
}
|
||||
|
||||
struct sys_timer clps711x_timer = {
|
||||
.init = clps711x_timer_init,
|
||||
};
|
||||
|
||||
void clps711x_restart(char mode, const char *cmd)
|
||||
{
|
||||
soft_restart(0);
|
||||
|
|
|
@ -8,10 +8,8 @@
|
|||
#define CLPS711X_NR_GPIO (4 * 8 + 3)
|
||||
#define CLPS711X_GPIO(prt, bit) ((prt) * 8 + (bit))
|
||||
|
||||
struct sys_timer;
|
||||
|
||||
extern void clps711x_map_io(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_restart(char mode, const char *cmd);
|
||||
extern struct sys_timer clps711x_timer;
|
||||
|
|
|
@ -28,7 +28,6 @@
|
|||
#include <linux/usb/ohci_pdriver.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/time.h>
|
||||
|
@ -250,8 +249,7 @@ MACHINE_START(CNS3420VB, "Cavium Networks CNS3420 Validation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = cns3420_map_io,
|
||||
.init_irq = cns3xxx_init_irq,
|
||||
.timer = &cns3xxx_timer,
|
||||
.handle_irq = gic_handle_irq,
|
||||
.init_time = cns3xxx_timer_init,
|
||||
.init_machine = cns3420_init,
|
||||
.restart = cns3xxx_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
#include <linux/interrupt.h>
|
||||
#include <linux/clockchips.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/irqchip/arm-gic.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/time.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
#include <mach/cns3xxx.h>
|
||||
#include "core.h"
|
||||
|
@ -134,7 +134,6 @@ static int cns3xxx_timer_set_next_event(unsigned long evt,
|
|||
|
||||
static struct clock_event_device cns3xxx_tmr1_clockevent = {
|
||||
.name = "cns3xxx timer1",
|
||||
.shift = 8,
|
||||
.features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT,
|
||||
.set_mode = cns3xxx_timer_set_mode,
|
||||
.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)
|
||||
{
|
||||
cns3xxx_tmr1_clockevent.irq = timer_irq;
|
||||
cns3xxx_tmr1_clockevent.mult =
|
||||
div_sc((cns3xxx_cpu_clock() >> 3) * 1000000, NSEC_PER_SEC,
|
||||
cns3xxx_tmr1_clockevent.shift);
|
||||
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);
|
||||
clockevents_config_and_register(&cns3xxx_tmr1_clockevent,
|
||||
(cns3xxx_cpu_clock() >> 3) * 1000000,
|
||||
0xf, 0xffffffff);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -235,17 +228,13 @@ static void __init __cns3xxx_timer_init(unsigned int 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_timer_init(IRQ_CNS3XXX_TIMER0);
|
||||
}
|
||||
|
||||
struct sys_timer cns3xxx_timer = {
|
||||
.init = cns3xxx_timer_init,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
|
||||
void __init cns3xxx_l2x0_init(void)
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#ifndef __CNS3XXX_CORE_H
|
||||
#define __CNS3XXX_CORE_H
|
||||
|
||||
extern struct sys_timer cns3xxx_timer;
|
||||
extern void cns3xxx_timer_init(void);
|
||||
|
||||
#ifdef CONFIG_CACHE_L2X0
|
||||
void __init cns3xxx_l2x0_init(void);
|
||||
|
|
|
@ -679,7 +679,7 @@ MACHINE_START(DAVINCI_DA830_EVM, "DaVinci DA830/OMAP-L137/AM17x EVM")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = da830_evm_map_io,
|
||||
.init_irq = cp_intc_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = da830_evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -1599,7 +1599,7 @@ MACHINE_START(DAVINCI_DA850_EVM, "DaVinci DA850/OMAP-L138/AM18x EVM")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = da850_evm_map_io,
|
||||
.init_irq = cp_intc_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = da850_evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -355,7 +355,7 @@ MACHINE_START(DAVINCI_DM355_EVM, "DaVinci DM355 EVM")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = dm355_evm_map_io,
|
||||
.init_irq = davinci_irq_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = dm355_evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -274,7 +274,7 @@ MACHINE_START(DM355_LEOPARD, "DaVinci DM355 leopard")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = dm355_leopard_map_io,
|
||||
.init_irq = davinci_irq_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = dm355_leopard_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -616,7 +616,7 @@ MACHINE_START(DAVINCI_DM365_EVM, "DaVinci DM365 EVM")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = dm365_evm_map_io,
|
||||
.init_irq = davinci_irq_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = dm365_evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -825,7 +825,7 @@ MACHINE_START(DAVINCI_EVM, "DaVinci DM644x EVM")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = davinci_evm_map_io,
|
||||
.init_irq = davinci_irq_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = davinci_evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -818,7 +818,7 @@ MACHINE_START(DAVINCI_DM6467_EVM, "DaVinci DM646x EVM")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = davinci_map_io,
|
||||
.init_irq = davinci_irq_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
@ -829,7 +829,7 @@ MACHINE_START(DAVINCI_DM6467TEVM, "DaVinci DM6467T EVM")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = davinci_map_io,
|
||||
.init_irq = davinci_irq_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = evm_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -570,7 +570,7 @@ MACHINE_START(MITYOMAPL138, "MityDSP-L138/MityARM-1808")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = mityomapl138_map_io,
|
||||
.init_irq = cp_intc_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = mityomapl138_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -237,7 +237,7 @@ MACHINE_START(NEUROS_OSD2, "Neuros OSD2")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = davinci_ntosd2_map_io,
|
||||
.init_irq = davinci_irq_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = davinci_ntosd2_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -341,7 +341,7 @@ MACHINE_START(OMAPL138_HAWKBOARD, "AM18x/OMAP-L138 Hawkboard")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = omapl138_hawk_map_io,
|
||||
.init_irq = cp_intc_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = omapl138_hawk_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -155,7 +155,7 @@ MACHINE_START(SFFSDR, "Lyrtech SFFSDR")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = davinci_sffsdr_map_io,
|
||||
.init_irq = davinci_irq_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = davinci_sffsdr_init,
|
||||
.init_late = davinci_init_late,
|
||||
.dma_zone_size = SZ_128M,
|
||||
|
|
|
@ -280,7 +280,7 @@ MACHINE_START(TNETV107X, "TNETV107X EVM")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = tnetv107x_init,
|
||||
.init_irq = cp_intc_init,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = tnetv107x_evm_board_init,
|
||||
.init_late = davinci_init_late,
|
||||
.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")
|
||||
.map_io = da850_init,
|
||||
.init_irq = da8xx_init_irq,
|
||||
.timer = &davinci_timer,
|
||||
.init_time = davinci_timer_init,
|
||||
.init_machine = da850_init_machine,
|
||||
.dt_compat = da850_boards_compat,
|
||||
.init_late = davinci_init_late,
|
||||
|
|
|
@ -15,9 +15,7 @@
|
|||
#include <linux/compiler.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
struct sys_timer;
|
||||
|
||||
extern struct sys_timer davinci_timer;
|
||||
extern void davinci_timer_init(void);
|
||||
|
||||
extern void davinci_irq_init(void);
|
||||
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 davinci_soc_info *soc_info = &davinci_soc_info;
|
||||
|
@ -410,11 +410,6 @@ static void __init davinci_timer_init(void)
|
|||
timer32_config(&timers[i]);
|
||||
}
|
||||
|
||||
struct sys_timer davinci_timer = {
|
||||
.init = davinci_timer_init,
|
||||
};
|
||||
|
||||
|
||||
/* reset board using watchdog timer */
|
||||
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,
|
||||
.init_early = dove_init_early,
|
||||
.init_irq = dove_init_irq,
|
||||
.timer = &dove_timer,
|
||||
.init_time = dove_timer_init,
|
||||
.restart = dove_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -242,17 +242,13 @@ static int __init dove_find_tclk(void)
|
|||
return 166666667;
|
||||
}
|
||||
|
||||
static void __init dove_timer_init(void)
|
||||
void __init dove_timer_init(void)
|
||||
{
|
||||
dove_tclk = dove_find_tclk();
|
||||
orion_time_init(BRIDGE_VIRT_BASE, BRIDGE_INT_TIMER1_CLR,
|
||||
IRQ_DOVE_BRIDGE, dove_tclk);
|
||||
}
|
||||
|
||||
struct sys_timer dove_timer = {
|
||||
.init = dove_timer_init,
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
* 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,
|
||||
.init_early = dove_init_early,
|
||||
.init_irq = orion_dt_init_irq,
|
||||
.timer = &dove_timer,
|
||||
.init_time = dove_timer_init,
|
||||
.init_machine = dove_dt_init,
|
||||
.restart = dove_restart,
|
||||
.dt_compat = dove_dt_board_compat,
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
struct mv643xx_eth_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.
|
||||
|
|
|
@ -98,6 +98,6 @@ MACHINE_START(DOVE_DB, "Marvell DB-MV88AP510-BP Development Board")
|
|||
.map_io = dove_map_io,
|
||||
.init_early = dove_init_early,
|
||||
.init_irq = dove_init_irq,
|
||||
.timer = &dove_timer,
|
||||
.init_time = dove_timer_init,
|
||||
.restart = dove_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -158,7 +158,7 @@ static void __init ebsa110_init_early(void)
|
|||
* interrupt, then the PIT counter will roll over (ie, be negative).
|
||||
* This actually works out to be convenient.
|
||||
*/
|
||||
static unsigned long ebsa110_gettimeoffset(void)
|
||||
static u32 ebsa110_gettimeoffset(void)
|
||||
{
|
||||
unsigned long offset, count;
|
||||
|
||||
|
@ -181,7 +181,7 @@ static unsigned long ebsa110_gettimeoffset(void)
|
|||
*/
|
||||
offset = offset * (1000000 / HZ) / COUNT;
|
||||
|
||||
return offset;
|
||||
return offset * 1000;
|
||||
}
|
||||
|
||||
static irqreturn_t
|
||||
|
@ -213,8 +213,10 @@ static struct irqaction ebsa110_timer_irq = {
|
|||
/*
|
||||
* 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
|
||||
*/
|
||||
|
@ -225,11 +227,6 @@ static void __init ebsa110_timer_init(void)
|
|||
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[] = {
|
||||
{
|
||||
.iobase = 0x3f8,
|
||||
|
@ -328,6 +325,6 @@ MACHINE_START(EBSA110, "EBSA110")
|
|||
.map_io = ebsa110_map_io,
|
||||
.init_early = ebsa110_init_early,
|
||||
.init_irq = ebsa110_init_irq,
|
||||
.timer = &ebsa110_timer,
|
||||
.init_time = ebsa110_timer_init,
|
||||
.restart = ebsa110_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
|
@ -39,8 +38,7 @@ MACHINE_START(ADSSPHERE, "ADS Sphere board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = adssphere_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include <linux/i2c-gpio.h>
|
||||
#include <linux/spi/spi.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/irqchip/arm-vic.h>
|
||||
|
||||
#include <mach/hardware.h>
|
||||
#include <linux/platform_data/video-ep93xx.h>
|
||||
|
@ -44,8 +45,6 @@
|
|||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/time.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
|
||||
#include "soc.h"
|
||||
|
||||
/*************************************************************************
|
||||
|
@ -140,11 +139,29 @@ static struct irqaction ep93xx_timer_irq = {
|
|||
.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 |
|
||||
EP93XX_TIMER123_CONTROL_CLKSEL;
|
||||
|
||||
arch_gettimeoffset = ep93xx_gettimeoffset;
|
||||
|
||||
/* Enable periodic HZ timer. */
|
||||
__raw_writel(tmode, EP93XX_TIMER1_CONTROL);
|
||||
__raw_writel(TIMER1_RELOAD, EP93XX_TIMER1_LOAD);
|
||||
|
@ -158,21 +175,6 @@ static void __init ep93xx_timer_init(void)
|
|||
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
|
||||
|
|
|
@ -39,7 +39,6 @@
|
|||
#include <linux/platform_data/spi-ep93xx.h>
|
||||
#include <mach/gpio-ep93xx.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
|
@ -276,8 +275,7 @@ MACHINE_START(EDB9301, "Cirrus Logic EDB9301 Evaluation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = edb93xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -290,8 +288,7 @@ MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = edb93xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -304,8 +301,7 @@ MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = edb93xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -318,8 +314,7 @@ MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = edb93xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -332,8 +327,7 @@ MACHINE_START(EDB9307A, "Cirrus Logic EDB9307A Evaluation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = edb93xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -346,8 +340,7 @@ MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = edb93xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -360,8 +353,7 @@ MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = edb93xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -374,8 +366,7 @@ MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = edb93xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
|
@ -39,8 +38,7 @@ MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = gesbc9312_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.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_init_devices(void);
|
||||
extern struct sys_timer ep93xx_timer;
|
||||
extern void ep93xx_timer_init(void);
|
||||
|
||||
void ep93xx_restart(char, const char *);
|
||||
void ep93xx_init_late(void);
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
|
@ -82,8 +81,7 @@ MACHINE_START(MICRO9, "Contec Micro9-High")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = micro9_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -96,8 +94,7 @@ MACHINE_START(MICRO9M, "Contec Micro9-Mid")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = micro9_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -110,8 +107,7 @@ MACHINE_START(MICRO9L, "Contec Micro9-Lite")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = micro9_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
@ -124,8 +120,7 @@ MACHINE_START(MICRO9S, "Contec Micro9-Slim")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = micro9_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#include <linux/platform_data/video-ep93xx.h>
|
||||
#include <mach/gpio-ep93xx.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
|
@ -83,8 +82,7 @@ MACHINE_START(SIM_ONE, "Simplemachines Sim.One Board")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = simone_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
#include <linux/platform_data/video-ep93xx.h>
|
||||
#include <mach/gpio-ep93xx.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
||||
|
@ -176,8 +175,7 @@ MACHINE_START(SNAPPER_CL15, "Bluewater Systems Snapper CL15")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ep93xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = snappercl15_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -246,8 +245,7 @@ MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = ts72xx_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = ts72xx_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include <linux/platform_data/spi-ep93xx.h>
|
||||
#include <mach/gpio-ep93xx.h>
|
||||
|
||||
#include <asm/hardware/vic.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/arch.h>
|
||||
|
@ -364,8 +363,7 @@ MACHINE_START(VISION_EP9307, "Vision Engraving Systems EP9307")
|
|||
.atag_offset = 0x100,
|
||||
.map_io = vision_map_io,
|
||||
.init_irq = ep93xx_init_irq,
|
||||
.handle_irq = vic_handle_irq,
|
||||
.timer = &ep93xx_timer,
|
||||
.init_time = ep93xx_timer_init,
|
||||
.init_machine = vision_init_machine,
|
||||
.init_late = ep93xx_init_late,
|
||||
.restart = ep93xx_restart,
|
||||
|
|
|
@ -22,12 +22,13 @@
|
|||
#include <linux/of_irq.h>
|
||||
#include <linux/export.h>
|
||||
#include <linux/irqdomain.h>
|
||||
#include <linux/irqchip.h>
|
||||
#include <linux/of_address.h>
|
||||
#include <linux/irqchip/arm-gic.h>
|
||||
|
||||
#include <asm/proc-fns.h>
|
||||
#include <asm/exception.h>
|
||||
#include <asm/hardware/cache-l2x0.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach/irq.h>
|
||||
#include <asm/cacheflush.h>
|
||||
|
@ -644,8 +645,6 @@ static int __init combiner_of_init(struct device_node *np,
|
|||
}
|
||||
|
||||
static const struct of_device_id exynos_dt_irq_match[] = {
|
||||
{ .compatible = "arm,cortex-a9-gic", .data = gic_of_init, },
|
||||
{ .compatible = "arm,cortex-a15-gic", .data = gic_of_init, },
|
||||
{ .compatible = "samsung,exynos4210-combiner",
|
||||
.data = combiner_of_init, },
|
||||
{},
|
||||
|
@ -661,8 +660,10 @@ void __init exynos4_init_irq(void)
|
|||
if (!of_have_populated_dt())
|
||||
gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU, gic_bank_offset, NULL);
|
||||
#ifdef CONFIG_OF
|
||||
else
|
||||
else {
|
||||
irqchip_init();
|
||||
of_irq_init(exynos_dt_irq_match);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (!of_have_populated_dt())
|
||||
|
@ -679,6 +680,7 @@ void __init exynos4_init_irq(void)
|
|||
void __init exynos5_init_irq(void)
|
||||
{
|
||||
#ifdef CONFIG_OF
|
||||
irqchip_init();
|
||||
of_irq_init(exynos_dt_irq_match);
|
||||
#endif
|
||||
/*
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
#ifndef __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;
|
||||
void exynos_init_io(struct map_desc *mach_desc, int size);
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#ifndef __ASM_ARCH_REGS_IRQ_H
|
||||
#define __ASM_ARCH_REGS_IRQ_H __FILE__
|
||||
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <linux/irqchip/arm-gic.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
#endif /* __ASM_ARCH_REGS_IRQ_H */
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include <linux/smsc911x.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <asm/mach-types.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
|
@ -201,9 +200,8 @@ MACHINE_START(ARMLEX4210, "ARMLEX4210")
|
|||
.smp = smp_ops(exynos_smp_ops),
|
||||
.init_irq = exynos4_init_irq,
|
||||
.map_io = armlex4210_map_io,
|
||||
.handle_irq = gic_handle_irq,
|
||||
.init_machine = armlex4210_machine_init,
|
||||
.init_late = exynos_init_late,
|
||||
.timer = &exynos4_timer,
|
||||
.init_time = exynos4_timer_init,
|
||||
.restart = exynos4_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
#include <linux/serial_core.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
#include <plat/cpu.h>
|
||||
|
@ -107,10 +106,9 @@ DT_MACHINE_START(EXYNOS4210_DT, "Samsung Exynos4 (Flattened Device Tree)")
|
|||
.smp = smp_ops(exynos_smp_ops),
|
||||
.init_irq = exynos4_init_irq,
|
||||
.map_io = exynos4_dt_map_io,
|
||||
.handle_irq = gic_handle_irq,
|
||||
.init_machine = exynos4_dt_machine_init,
|
||||
.init_late = exynos_init_late,
|
||||
.timer = &exynos4_timer,
|
||||
.init_time = exynos4_timer_init,
|
||||
.dt_compat = exynos4_dt_compat,
|
||||
.restart = exynos4_restart,
|
||||
MACHINE_END
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include <linux/io.h>
|
||||
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/hardware/gic.h>
|
||||
#include <mach/map.h>
|
||||
#include <mach/regs-pmu.h>
|
||||
|
||||
|
@ -179,10 +178,9 @@ DT_MACHINE_START(EXYNOS5_DT, "SAMSUNG EXYNOS5 (Flattened Device Tree)")
|
|||
.init_irq = exynos5_init_irq,
|
||||
.smp = smp_ops(exynos_smp_ops),
|
||||
.map_io = exynos5_dt_map_io,
|
||||
.handle_irq = gic_handle_irq,
|
||||
.init_machine = exynos5_dt_machine_init,
|
||||
.init_late = exynos_init_late,
|
||||
.timer = &exynos4_timer,
|
||||
.init_time = exynos4_timer_init,
|
||||
.dt_compat = exynos5_dt_compat,
|
||||
.restart = exynos5_restart,
|
||||
.reserve = exynos5_reserve,
|
||||
|
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче