aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorVaibhav Hiremath <hvaibhav@ti.com>2012-07-05 11:05:15 -0400
committerTony Lindgren <tony@atomide.com>2012-07-05 11:05:15 -0400
commit1c213ba16ed8f48fc12dfec8a588d608ffef0904 (patch)
treee121a5f4fa9a2f99e28ca8abc3fb9b42e9e2465e /arch/arm
parent353cec46d50a38e412112e23f9542c3d6e51a308 (diff)
ARM: OMAP2+: am33xx: Make am33xx as a separate class
Initially, we decided to make am33xx family of device to fall under omap3 class (cpu_is_omap34xx() = true), since it carries Cortex-A8 core. But while adding complete baseport support (like, clock, power and hwmod) support, it is observed that, we are creating more and more problems by treating am33xx device as omap3 family, as nothing matches between them (except cortex-A8 mpu). So, after long discussion we have came to the conclusion that, we should not consider am33xx device as omap3 family, instead create separate class (SOC_AM33XX) under OMAP2PLUS. This means, for am33xx device, cpu_is_omap34xx() will return false, and only cpu_is_am33xx() will be true. Please refer to the link below, for mailing-list discussion on this - http://www.spinics.net/lists/linux-omap/msg69439.html Signed-off-by: Vaibhav Hiremath <hvaibhav@ti.com> Cc: Kevin Hilman <khilman@ti.com> Cc: Paul Walmsley <paul@pwsan.com> [tony@atomide.com: fixed typo, updated for soc_is changes] Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-omap2/Kconfig4
-rw-r--r--arch/arm/mach-omap2/Makefile5
-rw-r--r--arch/arm/mach-omap2/common.c2
-rw-r--r--arch/arm/plat-omap/include/plat/cpu.h9
-rw-r--r--arch/arm/plat-omap/sram.c2
5 files changed, 17 insertions, 5 deletions
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 042f157a8f94..3649a34db00d 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -82,8 +82,10 @@ config SOC_TI81XX
82 82
83config SOC_AM33XX 83config SOC_AM33XX
84 bool "AM33XX support" 84 bool "AM33XX support"
85 depends on ARCH_OMAP3
86 default y 85 default y
86 select CPU_V7
87 select ARM_CPU_SUSPEND if PM
88 select MULTI_IRQ_HANDLER
87 89
88config OMAP_PACKAGE_ZAF 90config OMAP_PACKAGE_ZAF
89 bool 91 bool
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 54ad3a4b612c..846d44547fd3 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -16,6 +16,7 @@ secure-common = omap-smc.o omap-secure.o
16obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common) 16obj-$(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)
19 20
20ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),) 21ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),)
21obj-y += mcbsp.o 22obj-y += mcbsp.o
@@ -100,6 +101,7 @@ obj-$(CONFIG_ARCH_OMAP3) += $(voltagedomain-common)
100obj-$(CONFIG_ARCH_OMAP3) += voltagedomains3xxx_data.o 101obj-$(CONFIG_ARCH_OMAP3) += voltagedomains3xxx_data.o
101obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common) 102obj-$(CONFIG_ARCH_OMAP4) += $(voltagedomain-common)
102obj-$(CONFIG_ARCH_OMAP4) += voltagedomains44xx_data.o 103obj-$(CONFIG_ARCH_OMAP4) += voltagedomains44xx_data.o
104obj-$(CONFIG_SOC_AM33XX) += $(voltagedomain-common)
103obj-$(CONFIG_SOC_AM33XX) += voltagedomains33xx_data.o 105obj-$(CONFIG_SOC_AM33XX) += voltagedomains33xx_data.o
104 106
105# OMAP powerdomain framework 107# OMAP powerdomain framework
@@ -115,6 +117,7 @@ obj-$(CONFIG_ARCH_OMAP3) += powerdomains2xxx_3xxx_data.o
115obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common) 117obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common)
116obj-$(CONFIG_ARCH_OMAP4) += powerdomain44xx.o 118obj-$(CONFIG_ARCH_OMAP4) += powerdomain44xx.o
117obj-$(CONFIG_ARCH_OMAP4) += powerdomains44xx_data.o 119obj-$(CONFIG_ARCH_OMAP4) += powerdomains44xx_data.o
120obj-$(CONFIG_SOC_AM33XX) += $(powerdomain-common)
118obj-$(CONFIG_SOC_AM33XX) += powerdomain33xx.o 121obj-$(CONFIG_SOC_AM33XX) += powerdomain33xx.o
119obj-$(CONFIG_SOC_AM33XX) += powerdomains33xx_data.o 122obj-$(CONFIG_SOC_AM33XX) += powerdomains33xx_data.o
120 123
@@ -132,6 +135,7 @@ obj-$(CONFIG_ARCH_OMAP3) += clockdomains3xxx_data.o
132obj-$(CONFIG_ARCH_OMAP4) += $(clockdomain-common) 135obj-$(CONFIG_ARCH_OMAP4) += $(clockdomain-common)
133obj-$(CONFIG_ARCH_OMAP4) += clockdomain44xx.o 136obj-$(CONFIG_ARCH_OMAP4) += clockdomain44xx.o
134obj-$(CONFIG_ARCH_OMAP4) += clockdomains44xx_data.o 137obj-$(CONFIG_ARCH_OMAP4) += clockdomains44xx_data.o
138obj-$(CONFIG_SOC_AM33XX) += $(clockdomain-common)
135obj-$(CONFIG_SOC_AM33XX) += clockdomain33xx.o 139obj-$(CONFIG_SOC_AM33XX) += clockdomain33xx.o
136obj-$(CONFIG_SOC_AM33XX) += clockdomains33xx_data.o 140obj-$(CONFIG_SOC_AM33XX) += clockdomains33xx_data.o
137 141
@@ -151,6 +155,7 @@ obj-$(CONFIG_ARCH_OMAP3) += dpll3xxx.o clock3xxx_data.o
151obj-$(CONFIG_ARCH_OMAP3) += clkt_iclk.o 155obj-$(CONFIG_ARCH_OMAP3) += clkt_iclk.o
152obj-$(CONFIG_ARCH_OMAP4) += $(clock-common) clock44xx_data.o 156obj-$(CONFIG_ARCH_OMAP4) += $(clock-common) clock44xx_data.o
153obj-$(CONFIG_ARCH_OMAP4) += dpll3xxx.o dpll44xx.o 157obj-$(CONFIG_ARCH_OMAP4) += dpll3xxx.o dpll44xx.o
158obj-$(CONFIG_SOC_AM33XX) += $(clock-common) dpll3xxx.o
154 159
155# OMAP2 clock rate set data (old "OPP" data) 160# OMAP2 clock rate set data (old "OPP" data)
156obj-$(CONFIG_SOC_OMAP2420) += opp2420_data.o 161obj-$(CONFIG_SOC_OMAP2420) += opp2420_data.o
diff --git a/arch/arm/mach-omap2/common.c b/arch/arm/mach-omap2/common.c
index 8a6953a34fe2..a7aa538e681d 100644
--- a/arch/arm/mach-omap2/common.c
+++ b/arch/arm/mach-omap2/common.c
@@ -134,7 +134,9 @@ void __init ti81xx_map_io(void)
134{ 134{
135 omapti81xx_map_common_io(); 135 omapti81xx_map_common_io();
136} 136}
137#endif
137 138
139#if defined(CONFIG_SOC_AM33XX)
138#define AM33XX_TAP_BASE (AM33XX_CTRL_BASE + \ 140#define AM33XX_TAP_BASE (AM33XX_CTRL_BASE + \
139 TI81XX_CONTROL_DEVICE_ID - 0x204) 141 TI81XX_CONTROL_DEVICE_ID - 0x204)
140 142
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
index de6c0a08f461..4f9d60192ef4 100644
--- a/arch/arm/plat-omap/include/plat/cpu.h
+++ b/arch/arm/plat-omap/include/plat/cpu.h
@@ -344,8 +344,6 @@ IS_OMAP_TYPE(3430, 0x3430)
344# undef cpu_is_ti816x 344# undef cpu_is_ti816x
345# undef cpu_is_ti814x 345# undef cpu_is_ti814x
346# undef soc_is_am35xx 346# undef soc_is_am35xx
347# undef cpu_is_am33xx
348# undef cpu_is_am335x
349# define cpu_is_omap3430() is_omap3430() 347# define cpu_is_omap3430() is_omap3430()
350# undef cpu_is_omap3630 348# undef cpu_is_omap3630
351# define cpu_is_omap3630() is_omap363x() 349# define cpu_is_omap3630() is_omap363x()
@@ -353,6 +351,11 @@ IS_OMAP_TYPE(3430, 0x3430)
353# define cpu_is_ti816x() is_ti816x() 351# define cpu_is_ti816x() is_ti816x()
354# define cpu_is_ti814x() is_ti814x() 352# define cpu_is_ti814x() is_ti814x()
355# define soc_is_am35xx() is_am35xx() 353# define soc_is_am35xx() is_am35xx()
354#endif
355
356# if defined(CONFIG_SOC_AM33XX)
357# undef cpu_is_am33xx
358# undef cpu_is_am335x
356# define cpu_is_am33xx() is_am33xx() 359# define cpu_is_am33xx() is_am33xx()
357# define cpu_is_am335x() is_am335x() 360# define cpu_is_am335x() is_am335x()
358#endif 361#endif
@@ -408,7 +411,7 @@ IS_OMAP_TYPE(3430, 0x3430)
408#define AM35XX_REV_ES1_0 AM35XX_CLASS 411#define AM35XX_REV_ES1_0 AM35XX_CLASS
409#define AM35XX_REV_ES1_1 (AM35XX_CLASS | (0x1 << 8)) 412#define AM35XX_REV_ES1_1 (AM35XX_CLASS | (0x1 << 8))
410 413
411#define AM335X_CLASS 0x33500034 414#define AM335X_CLASS 0x33500033
412#define AM335X_REV_ES1_0 AM335X_CLASS 415#define AM335X_REV_ES1_0 AM335X_CLASS
413 416
414#define OMAP443X_CLASS 0x44300044 417#define OMAP443X_CLASS 0x44300044
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
index 477363c163ec..564cb4c84b11 100644
--- a/arch/arm/plat-omap/sram.c
+++ b/arch/arm/plat-omap/sram.c
@@ -85,7 +85,7 @@ static int is_sram_locked(void)
85 __raw_writel(0xCFDE, OMAP24XX_VA_READPERM0); /* all i-read */ 85 __raw_writel(0xCFDE, OMAP24XX_VA_READPERM0); /* all i-read */
86 __raw_writel(0xCFDE, OMAP24XX_VA_WRITEPERM0); /* all i-write */ 86 __raw_writel(0xCFDE, OMAP24XX_VA_WRITEPERM0); /* all i-write */
87 } 87 }
88 if (cpu_is_omap34xx() && !cpu_is_am33xx()) { 88 if (cpu_is_omap34xx()) {
89 __raw_writel(0xFFFF, OMAP34XX_VA_REQINFOPERM0); /* all q-vects */ 89 __raw_writel(0xFFFF, OMAP34XX_VA_REQINFOPERM0); /* all q-vects */
90 __raw_writel(0xFFFF, OMAP34XX_VA_READPERM0); /* all i-read */ 90 __raw_writel(0xFFFF, OMAP34XX_VA_READPERM0); /* all i-read */
91 __raw_writel(0xFFFF, OMAP34XX_VA_WRITEPERM0); /* all i-write */ 91 __raw_writel(0xFFFF, OMAP34XX_VA_WRITEPERM0); /* all i-write */