aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm/mach-omap2/Makefile23
-rw-r--r--arch/arm/mach-omap2/common.c24
-rw-r--r--arch/arm/mach-omap2/common.h11
-rw-r--r--arch/arm/mach-omap2/include/mach/debug-macro.S8
-rw-r--r--arch/arm/mach-omap2/io.c44
-rw-r--r--arch/arm/mach-omap2/iomap.h27
-rw-r--r--arch/arm/mach-omap2/omap_hwmod.c2
-rw-r--r--arch/arm/mach-omap2/prcm-common.h2
-rw-r--r--arch/arm/mach-omap2/prcm.c2
-rw-r--r--arch/arm/plat-omap/include/plat/hardware.h1
-rw-r--r--arch/arm/plat-omap/include/plat/multi.h9
-rw-r--r--arch/arm/plat-omap/include/plat/omap54xx.h32
-rw-r--r--arch/arm/plat-omap/include/plat/serial.h10
-rw-r--r--arch/arm/plat-omap/include/plat/uncompress.h6
-rw-r--r--arch/arm/plat-omap/sram.c11
15 files changed, 198 insertions, 14 deletions
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 240f1969f2ad..085e17175efa 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -17,6 +17,7 @@ obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common)
17obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common) 17obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common)
18obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common) $(secure-common) 18obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common) $(secure-common)
19obj-$(CONFIG_SOC_AM33XX) += irq.o $(hwmod-common) 19obj-$(CONFIG_SOC_AM33XX) += irq.o $(hwmod-common)
20obj-$(CONFIG_SOC_OMAP5) += prm44xx.o $(hwmod-common) $(secure-common)
20 21
21ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),) 22ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),)
22obj-y += mcbsp.o 23obj-y += mcbsp.o
@@ -29,8 +30,10 @@ obj-$(CONFIG_SOC_HAS_OMAP2_SDRC) += sdrc.o
29 30
30obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o 31obj-$(CONFIG_SMP) += omap-smp.o omap-headsmp.o
31obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o 32obj-$(CONFIG_HOTPLUG_CPU) += omap-hotplug.o
32obj-$(CONFIG_ARCH_OMAP4) += omap4-common.o omap-wakeupgen.o 33omap-4-5-common = omap4-common.o omap-wakeupgen.o \
33obj-$(CONFIG_ARCH_OMAP4) += sleep44xx.o 34 sleep44xx.o
35obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-common)
36obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-common)
34 37
35plus_sec := $(call as-instr,.arch_extension sec,+sec) 38plus_sec := $(call as-instr,.arch_extension sec,+sec)
36AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec) 39AFLAGS_omap-headsmp.o :=-Wa,-march=armv7-a$(plus_sec)
@@ -70,6 +73,7 @@ obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o
70obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o 73obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o
71obj-$(CONFIG_ARCH_OMAP3) += cpuidle34xx.o 74obj-$(CONFIG_ARCH_OMAP3) += cpuidle34xx.o
72obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o 75obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o
76obj-$(CONFIG_SOC_OMAP5) += omap-mpuss-lowpower.o
73obj-$(CONFIG_ARCH_OMAP4) += cpuidle44xx.o 77obj-$(CONFIG_ARCH_OMAP4) += cpuidle44xx.o
74obj-$(CONFIG_PM_DEBUG) += pm-debug.o 78obj-$(CONFIG_PM_DEBUG) += pm-debug.o
75obj-$(CONFIG_OMAP_SMARTREFLEX) += sr_device.o smartreflex.o 79obj-$(CONFIG_OMAP_SMARTREFLEX) += sr_device.o smartreflex.o
@@ -85,14 +89,16 @@ endif
85endif 89endif
86 90
87# PRCM 91# PRCM
92omap-prcm-4-5-common = prcm.o cminst44xx.o cm44xx.o \
93 prcm_mpu44xx.o prminst44xx.o \
94 vc44xx_data.o vp44xx_data.o
88obj-y += prm_common.o 95obj-y += prm_common.o
89obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o 96obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o
90obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o 97obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm2xxx_3xxx.o prm2xxx_3xxx.o
91obj-$(CONFIG_ARCH_OMAP3) += vc3xxx_data.o vp3xxx_data.o 98obj-$(CONFIG_ARCH_OMAP3) += vc3xxx_data.o vp3xxx_data.o
92obj-$(CONFIG_ARCH_OMAP4) += prcm.o cminst44xx.o cm44xx.o
93obj-$(CONFIG_ARCH_OMAP4) += prcm_mpu44xx.o prminst44xx.o
94obj-$(CONFIG_ARCH_OMAP4) += vc44xx_data.o vp44xx_data.o prm44xx.o
95obj-$(CONFIG_SOC_AM33XX) += prcm.o prm33xx.o cm33xx.o 99obj-$(CONFIG_SOC_AM33XX) += prcm.o prm33xx.o cm33xx.o
100obj-$(CONFIG_ARCH_OMAP4) += $(omap-prcm-4-5-common) prm44xx.o
101obj-$(CONFIG_SOC_OMAP5) += $(omap-prcm-4-5-common)
96 102
97# OMAP voltage domains 103# OMAP voltage domains
98voltagedomain-common := voltage.o vc.o vp.o 104voltagedomain-common := voltage.o vc.o vp.o
@@ -104,6 +110,7 @@ obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common)
104obj-$(CONFIG_ARCH_OMAP4) += voltagedomains44xx_data.o 110obj-$(CONFIG_ARCH_OMAP4) += voltagedomains44xx_data.o
105obj-$(CONFIG_SOC_AM33XX) += $(voltagedomain-common) 111obj-$(CONFIG_SOC_AM33XX) += $(voltagedomain-common)
106obj-$(CONFIG_SOC_AM33XX) += voltagedomains33xx_data.o 112obj-$(CONFIG_SOC_AM33XX) += voltagedomains33xx_data.o
113obj-$(CONFIG_SOC_OMAP5) += $(voltagedomain-common)
107 114
108# OMAP powerdomain framework 115# OMAP powerdomain framework
109powerdomain-common += powerdomain.o powerdomain-common.o 116powerdomain-common += powerdomain.o powerdomain-common.o
@@ -121,6 +128,8 @@ obj-$(CONFIG_ARCH_OMAP4) += powerdomains44xx_data.o
121obj-$(CONFIG_SOC_AM33XX) += $(powerdomain-common) 128obj-$(CONFIG_SOC_AM33XX) += $(powerdomain-common)
122obj-$(CONFIG_SOC_AM33XX) += powerdomain33xx.o 129obj-$(CONFIG_SOC_AM33XX) += powerdomain33xx.o
123obj-$(CONFIG_SOC_AM33XX) += powerdomains33xx_data.o 130obj-$(CONFIG_SOC_AM33XX) += powerdomains33xx_data.o
131obj-$(CONFIG_SOC_OMAP5) += $(powerdomain-common)
132obj-$(CONFIG_SOC_OMAP5) += powerdomain44xx.o
124 133
125# PRCM clockdomain control 134# PRCM clockdomain control
126clockdomain-common += clockdomain.o 135clockdomain-common += clockdomain.o
@@ -139,6 +148,8 @@ obj-$(CONFIG_ARCH_OMAP4) += clockdomains44xx_data.o
139obj-$(CONFIG_SOC_AM33XX) += $(clockdomain-common) 148obj-$(CONFIG_SOC_AM33XX) += $(clockdomain-common)
140obj-$(CONFIG_SOC_AM33XX) += clockdomain33xx.o 149obj-$(CONFIG_SOC_AM33XX) += clockdomain33xx.o
141obj-$(CONFIG_SOC_AM33XX) += clockdomains33xx_data.o 150obj-$(CONFIG_SOC_AM33XX) += clockdomains33xx_data.o
151obj-$(CONFIG_SOC_OMAP5) += $(clockdomain-common)
152obj-$(CONFIG_SOC_OMAP5) += clockdomain44xx.o
142 153
143# Clock framework 154# Clock framework
144obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o 155obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o
@@ -157,6 +168,8 @@ obj-$(CONFIG_ARCH_OMAP3) += clkt_iclk.o
157obj-$(CONFIG_ARCH_OMAP4) += $(clock-common) clock44xx_data.o 168obj-$(CONFIG_ARCH_OMAP4) += $(clock-common) clock44xx_data.o
158obj-$(CONFIG_ARCH_OMAP4) += dpll3xxx.o dpll44xx.o 169obj-$(CONFIG_ARCH_OMAP4) += dpll3xxx.o dpll44xx.o
159obj-$(CONFIG_SOC_AM33XX) += $(clock-common) dpll3xxx.o 170obj-$(CONFIG_SOC_AM33XX) += $(clock-common) dpll3xxx.o
171obj-$(CONFIG_SOC_OMAP5) += $(clock-common)
172obj-$(CONFIG_SOC_OMAP5) += dpll3xxx.o dpll44xx.o
160 173
161# OMAP2 clock rate set data (old "OPP" data) 174# OMAP2 clock rate set data (old "OPP" data)
162obj-$(CONFIG_SOC_OMAP2420) += opp2420_data.o 175obj-$(CONFIG_SOC_OMAP2420) += opp2420_data.o
diff --git a/arch/arm/mach-omap2/common.c b/arch/arm/mach-omap2/common.c
index 73d2a0b9ca04..069f9725b1c3 100644
--- a/arch/arm/mach-omap2/common.c
+++ b/arch/arm/mach-omap2/common.c
@@ -178,3 +178,27 @@ void __init omap4_map_io(void)
178} 178}
179#endif 179#endif
180 180
181#if defined(CONFIG_SOC_OMAP5)
182static struct omap_globals omap5_globals = {
183 .class = OMAP54XX_CLASS,
184 .tap = OMAP2_L4_IO_ADDRESS(OMAP54XX_SCM_BASE),
185 .ctrl = OMAP2_L4_IO_ADDRESS(OMAP54XX_SCM_BASE),
186 .ctrl_pad = OMAP2_L4_IO_ADDRESS(OMAP54XX_CTRL_BASE),
187 .prm = OMAP2_L4_IO_ADDRESS(OMAP54XX_PRM_BASE),
188 .cm = OMAP2_L4_IO_ADDRESS(OMAP54XX_CM_CORE_AON_BASE),
189 .cm2 = OMAP2_L4_IO_ADDRESS(OMAP54XX_CM_CORE_BASE),
190 .prcm_mpu = OMAP2_L4_IO_ADDRESS(OMAP54XX_PRCM_MPU_BASE),
191};
192
193void __init omap2_set_globals_5xxx(void)
194{
195 omap2_set_globals_tap(&omap5_globals);
196 omap2_set_globals_control(&omap5_globals);
197 omap2_set_globals_prcm(&omap5_globals);
198}
199
200void __init omap5_map_io(void)
201{
202 omap5_map_common_io();
203}
204#endif
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index 404f172d95a8..399e5bb13835 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -115,6 +115,14 @@ static inline int omap_mux_late_init(void)
115} 115}
116#endif 116#endif
117 117
118#ifdef CONFIG_SOC_OMAP5
119extern void omap5_map_common_io(void);
120#else
121static inline void omap5_map_common_io(void)
122{
123}
124#endif
125
118extern void omap2_init_common_infrastructure(void); 126extern void omap2_init_common_infrastructure(void);
119 127
120extern struct sys_timer omap2_timer; 128extern struct sys_timer omap2_timer;
@@ -134,6 +142,7 @@ void am35xx_init_early(void);
134void ti81xx_init_early(void); 142void ti81xx_init_early(void);
135void am33xx_init_early(void); 143void am33xx_init_early(void);
136void omap4430_init_early(void); 144void omap4430_init_early(void);
145void omap5_init_early(void);
137void omap3_init_late(void); /* Do not use this one */ 146void omap3_init_late(void); /* Do not use this one */
138void omap4430_init_late(void); 147void omap4430_init_late(void);
139void omap2420_init_late(void); 148void omap2420_init_late(void);
@@ -169,6 +178,7 @@ void omap2_set_globals_242x(void);