aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-spear3xx
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-spear3xx')
-rw-r--r--arch/arm/mach-spear3xx/include/mach/generic.h42
-rw-r--r--arch/arm/mach-spear3xx/include/mach/irqs.h24
-rw-r--r--arch/arm/mach-spear3xx/spear320.c1
-rw-r--r--arch/arm/mach-spear3xx/spear3xx.c4
4 files changed, 56 insertions, 15 deletions
diff --git a/arch/arm/mach-spear3xx/include/mach/generic.h b/arch/arm/mach-spear3xx/include/mach/generic.h
index df310799e416..af47d9b0d83d 100644
--- a/arch/arm/mach-spear3xx/include/mach/generic.h
+++ b/arch/arm/mach-spear3xx/include/mach/generic.h
@@ -1,10 +1,9 @@
1/* 1/*
2 * arch/arm/mach-spear3xx/generic.h 2 * spear machine family generic header file
3 * 3 *
4 * SPEAr3XX machine family generic header file 4 * Copyright (C) 2009-2012 ST Microelectronics
5 * 5 * Rajeev Kumar <rajeev-dlh.kumar@st.com>
6 * Copyright (C) 2009 ST Microelectronics 6 * Viresh Kumar <viresh.linux@gmail.com>
7 * Viresh Kumar<viresh.linux@gmail.com>
8 * 7 *
9 * This file is licensed under the terms of the GNU General Public 8 * This file is licensed under the terms of the GNU General Public
10 * License version 2. This program is licensed "as is" without any 9 * License version 2. This program is licensed "as is" without any
@@ -14,23 +13,46 @@
14#ifndef __MACH_GENERIC_H 13#ifndef __MACH_GENERIC_H
15#define __MACH_GENERIC_H 14#define __MACH_GENERIC_H
16 15
16#include <linux/dmaengine.h>
17#include <linux/amba/pl08x.h> 17#include <linux/amba/pl08x.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/platform_device.h>
20#include <linux/amba/bus.h>
21#include <asm/mach/time.h> 19#include <asm/mach/time.h>
22#include <asm/mach/map.h>
23 20
24/* Add spear3xx family device structure declarations here */ 21extern void spear13xx_timer_init(void);
25extern void spear3xx_timer_init(void); 22extern void spear3xx_timer_init(void);
26extern struct pl022_ssp_controller pl022_plat_data; 23extern struct pl022_ssp_controller pl022_plat_data;
27extern struct pl08x_platform_data pl080_plat_data; 24extern struct pl08x_platform_data pl080_plat_data;
25extern struct dw_dma_platform_data dmac_plat_data;
26extern struct dw_dma_slave cf_dma_priv;
27extern struct dw_dma_slave nand_read_dma_priv;
28extern struct dw_dma_slave nand_write_dma_priv;
29bool dw_dma_filter(struct dma_chan *chan, void *slave);
28 30
29/* Add spear3xx family function declarations here */
30void __init spear_setup_of_timer(void); 31void __init spear_setup_of_timer(void);
31void __init spear3xx_clk_init(void); 32void __init spear3xx_clk_init(void);
32void __init spear3xx_map_io(void); 33void __init spear3xx_map_io(void);
34void __init spear3xx_dt_init_irq(void);
35void __init spear6xx_clk_init(void);
36void __init spear13xx_map_io(void);
37void __init spear13xx_l2x0_init(void);
33 38
34void spear_restart(char, const char *); 39void spear_restart(char, const char *);
35 40
41void spear13xx_secondary_startup(void);
42void __cpuinit spear13xx_cpu_die(unsigned int cpu);
43
44extern struct smp_operations spear13xx_smp_ops;
45
46#ifdef CONFIG_MACH_SPEAR1310
47void __init spear1310_clk_init(void);
48#else
49static inline void spear1310_clk_init(void) {}
50#endif
51
52#ifdef CONFIG_MACH_SPEAR1340
53void __init spear1340_clk_init(void);
54#else
55static inline void spear1340_clk_init(void) {}
56#endif
57
36#endif /* __MACH_GENERIC_H */ 58#endif /* __MACH_GENERIC_H */
diff --git a/arch/arm/mach-spear3xx/include/mach/irqs.h b/arch/arm/mach-spear3xx/include/mach/irqs.h
index f95e5b2b6686..92da0a8c6bce 100644
--- a/arch/arm/mach-spear3xx/include/mach/irqs.h
+++ b/arch/arm/mach-spear3xx/include/mach/irqs.h
@@ -1,9 +1,8 @@
1/* 1/*
2 * arch/arm/mach-spear3xx/include/mach/irqs.h 2 * IRQ helper macros for spear machine family
3 * 3 *
4 * IRQ helper macros for SPEAr3xx machine family 4 * Copyright (C) 2009-2012 ST Microelectronics
5 * 5 * Rajeev Kumar <rajeev-dlh.kumar@st.com>
6 * Copyright (C) 2009 ST Microelectronics
7 * Viresh Kumar <viresh.linux@gmail.com> 6 * Viresh Kumar <viresh.linux@gmail.com>
8 * 7 *
9 * This file is licensed under the terms of the GNU General Public 8 * This file is licensed under the terms of the GNU General Public
@@ -14,6 +13,23 @@
14#ifndef __MACH_IRQS_H 13#ifndef __MACH_IRQS_H
15#define __MACH_IRQS_H 14#define __MACH_IRQS_H
16 15
16#ifdef CONFIG_ARCH_SPEAR3XX
17#define NR_IRQS 256 17#define NR_IRQS 256
18#endif
19
20#ifdef CONFIG_ARCH_SPEAR6XX
21/* IRQ definitions */
22/* VIC 1 */
23#define IRQ_VIC_END 64
24
25/* GPIO pins virtual irqs */
26#define VIRTUAL_IRQS 24
27#define NR_IRQS (IRQ_VIC_END + VIRTUAL_IRQS)
28#endif
29
30#ifdef CONFIG_ARCH_SPEAR13XX
31#define IRQ_GIC_END 160
32#define NR_IRQS IRQ_GIC_END
33#endif
18 34
19#endif /* __MACH_IRQS_H */ 35#endif /* __MACH_IRQS_H */
diff --git a/arch/arm/mach-spear3xx/spear320.c b/arch/arm/mach-spear3xx/spear320.c
index e1c77079a3e5..f671a0ad5217 100644
--- a/arch/arm/mach-spear3xx/spear320.c
+++ b/arch/arm/mach-spear3xx/spear320.c
@@ -19,6 +19,7 @@
19#include <linux/irqchip.h> 19#include <linux/irqchip.h>
20#include <linux/of_platform.h> 20#include <linux/of_platform.h>
21#include <asm/mach/arch.h> 21#include <asm/mach/arch.h>
22#include <asm/mach/map.h>
22#include <mach/generic.h> 23#include <mach/generic.h>
23#include <mach/spear.h> 24#include <mach/spear.h>
24 25
diff --git a/arch/arm/mach-spear3xx/spear3xx.c b/arch/arm/mach-spear3xx/spear3xx.c
index f9d754f90c59..72e3ae7d463a 100644
--- a/arch/arm/mach-spear3xx/spear3xx.c
+++ b/arch/arm/mach-spear3xx/spear3xx.c
@@ -14,8 +14,10 @@
14#define pr_fmt(fmt) "SPEAr3xx: " fmt 14#define pr_fmt(fmt) "SPEAr3xx: " fmt
15 15
16#include <linux/amba/pl022.h> 16#include <linux/amba/pl022.h>
17#include <linux/amba/pl08x.h> 17#include <linux/amba/pl080.h>
18#include <linux/clk.h>
18#include <linux/io.h> 19#include <linux/io.h>
20#include <asm/mach/map.h>
19#include <plat/pl080.h> 21#include <plat/pl080.h>
20#include <mach/generic.h> 22#include <mach/generic.h>
21#include <mach/spear.h> 23#include <mach/spear.h>