ARM: OMAP2+: AM43x: early init
authorAfzal Mohammed <afzal@ti.com>
Mon, 27 May 2013 14:36:23 +0000 (20:06 +0530)
committerTony Lindgren <tony@atomide.com>
Wed, 12 Jun 2013 15:00:35 +0000 (08:00 -0700)
Minimal early init - PRCM initialization not yet taken care.

Control module is similar (base address, feature register etc.) as
that of AM335x, while PRCM base address is different. Instead of
adding a new header file for AM43x, PRCM base address is added in
AM335x header file as it is similar to it to a large extent.

Signed-off-by: Afzal Mohammed <afzal@ti.com>
[tony@atomide.com: updated to drop am33xx_check_features()]
Signed-off-by: Tony Lindgren <tony@atomide.com>
arch/arm/mach-omap2/am33xx.h
arch/arm/mach-omap2/common.h
arch/arm/mach-omap2/io.c

index 43296c1af9ee85f13ee00326113d187a896503a7..5eef093e6738e028a878a6a2931b9912ad4f26d7 100644 (file)
@@ -21,6 +21,7 @@
 #define AM33XX_SCM_BASE                0x44E10000
 #define AM33XX_CTRL_BASE       AM33XX_SCM_BASE
 #define AM33XX_PRCM_BASE       0x44E00000
+#define AM43XX_PRCM_BASE       0x44DF0000
 #define AM33XX_TAP_BASE                (AM33XX_CTRL_BASE + 0x3FC)
 
 #endif /* __ASM_ARCH_AM33XX_H */
index d555cf2459e14184f98d2e07590e476970e4df16..00f890e26fc9887b3e9064689f3c07bc9f7d34f3 100644 (file)
@@ -96,6 +96,7 @@ void am33xx_init_early(void);
 void am35xx_init_early(void);
 void ti81xx_init_early(void);
 void am33xx_init_early(void);
+void am43xx_init_early(void);
 void omap4430_init_early(void);
 void omap5_init_early(void);
 void omap3_init_late(void);    /* Do not use this one */
index 39d559907545c3dfa3a59e8bf5daa7160e76527f..f96215075b92ab28c845376aa4c9f6cb0ef98b22 100644 (file)
@@ -586,6 +586,19 @@ void __init am33xx_init_early(void)
 }
 #endif
 
+#ifdef CONFIG_SOC_AM43XX
+void __init am43xx_init_early(void)
+{
+       omap2_set_globals_tap(AM335X_CLASS,
+                             AM33XX_L4_WK_IO_ADDRESS(AM33XX_TAP_BASE));
+       omap2_set_globals_control(AM33XX_L4_WK_IO_ADDRESS(AM33XX_CTRL_BASE),
+                                 NULL);
+       omap2_set_globals_prm(AM33XX_L4_WK_IO_ADDRESS(AM43XX_PRCM_BASE));
+       omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM43XX_PRCM_BASE), NULL);
+       omap3xxx_check_revision();
+}
+#endif
+
 #ifdef CONFIG_ARCH_OMAP4
 void __init omap4430_init_early(void)
 {