You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
128 lines
3.8 KiB
Diff
128 lines
3.8 KiB
Diff
From 765e7a067eebf372687048ba0242e27f43cf0d71 Mon Sep 17 00:00:00 2001
|
|
From: Nishanth Menon <nm@ti.com>
|
|
Date: Wed, 16 Oct 2013 15:39:02 +0000
|
|
Subject: ARM: OMAP2+: add missing lateinit hook for calling pm late init
|
|
|
|
AM335x, AM43xx, OMAP5 and DRA7 have missing late init hook. Introduce
|
|
SoC specific hook with a call to OMAP2+ generic lateinit hook. This
|
|
allows the generic late initializations such as cpufreq hooks to be
|
|
active.
|
|
|
|
Based on out-of-tree patches that need to be introduced in
|
|
mainline, this introduction allows us to provide the foundation for
|
|
further SoC specific features as they are developed.
|
|
|
|
Cc: Benoit Cousson <bcousson@baylibre.com>
|
|
Cc: Kevin Hilman <khilman@deeprootsystems.com>
|
|
Cc: Paul Walmsley <paul@pwsan.com>
|
|
Cc: Tony Lindgren <tony@atomide.com>
|
|
Signed-off-by: Nishanth Menon <nm@ti.com>
|
|
Signed-off-by: Tony Lindgren <tony@atomide.com>
|
|
---
|
|
--- a/arch/arm/mach-omap2/board-generic.c
|
|
+++ b/arch/arm/mach-omap2/board-generic.c
|
|
@@ -180,6 +180,7 @@ DT_MACHINE_START(AM33XX_DT, "Generic AM3
|
|
.init_irq = omap_intc_of_init,
|
|
.handle_irq = omap3_intc_handle_irq,
|
|
.init_machine = omap_generic_init,
|
|
+ .init_late = am33xx_init_late,
|
|
.init_time = omap3_gptimer_timer_init,
|
|
.dt_compat = am33xx_boards_compat,
|
|
.restart = am33xx_restart,
|
|
@@ -219,6 +220,7 @@ DT_MACHINE_START(OMAP5_DT, "Generic OMAP
|
|
.init_early = omap5_init_early,
|
|
.init_irq = omap_gic_of_init,
|
|
.init_machine = omap_generic_init,
|
|
+ .init_late = omap5_init_late,
|
|
.init_time = omap5_realtime_timer_init,
|
|
.dt_compat = omap5_boards_compat,
|
|
.restart = omap44xx_restart,
|
|
@@ -234,6 +236,7 @@ static const char *am43_boards_compat[]
|
|
DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)")
|
|
.map_io = am33xx_map_io,
|
|
.init_early = am43xx_init_early,
|
|
+ .init_late = am43xx_init_late,
|
|
.init_irq = omap_gic_of_init,
|
|
.init_machine = omap_generic_init,
|
|
.init_time = omap3_sync32k_timer_init,
|
|
@@ -252,6 +255,7 @@ DT_MACHINE_START(DRA7XX_DT, "Generic DRA
|
|
.smp = smp_ops(omap4_smp_ops),
|
|
.map_io = omap5_map_io,
|
|
.init_early = dra7xx_init_early,
|
|
+ .init_late = dra7xx_init_late,
|
|
.init_irq = omap_gic_of_init,
|
|
.init_machine = omap_generic_init,
|
|
.init_time = omap5_realtime_timer_init,
|
|
--- a/arch/arm/mach-omap2/common.h
|
|
+++ b/arch/arm/mach-omap2/common.h
|
|
@@ -98,6 +98,7 @@ void am35xx_init_early(void);
|
|
void ti81xx_init_early(void);
|
|
void am33xx_init_early(void);
|
|
void am43xx_init_early(void);
|
|
+void am43xx_init_late(void);
|
|
void omap4430_init_early(void);
|
|
void omap5_init_early(void);
|
|
void omap3_init_late(void); /* Do not use this one */
|
|
@@ -109,8 +110,11 @@ void omap35xx_init_late(void);
|
|
void omap3630_init_late(void);
|
|
void am35xx_init_late(void);
|
|
void ti81xx_init_late(void);
|
|
+void am33xx_init_late(void);
|
|
+void omap5_init_late(void);
|
|
int omap2_common_pm_late_init(void);
|
|
void dra7xx_init_early(void);
|
|
+void dra7xx_init_late(void);
|
|
|
|
#ifdef CONFIG_SOC_BUS
|
|
void omap_soc_device_init(void);
|
|
--- a/arch/arm/mach-omap2/io.c
|
|
+++ b/arch/arm/mach-omap2/io.c
|
|
@@ -583,6 +583,11 @@ void __init am33xx_init_early(void)
|
|
omap_hwmod_init_postsetup();
|
|
omap_clk_init = am33xx_clk_init;
|
|
}
|
|
+
|
|
+void __init am33xx_init_late(void)
|
|
+{
|
|
+ omap_common_late_init();
|
|
+}
|
|
#endif
|
|
|
|
#ifdef CONFIG_SOC_AM43XX
|
|
@@ -596,6 +601,11 @@ void __init am43xx_init_early(void)
|
|
omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM43XX_PRCM_BASE), NULL);
|
|
omap3xxx_check_revision();
|
|
}
|
|
+
|
|
+void __init am43xx_init_late(void)
|
|
+{
|
|
+ omap_common_late_init();
|
|
+}
|
|
#endif
|
|
|
|
#ifdef CONFIG_ARCH_OMAP4
|
|
@@ -651,6 +661,11 @@ void __init omap5_init_early(void)
|
|
omap54xx_hwmod_init();
|
|
omap_hwmod_init_postsetup();
|
|
}
|
|
+
|
|
+void __init omap5_init_late(void)
|
|
+{
|
|
+ omap_common_late_init();
|
|
+}
|
|
#endif
|
|
|
|
#ifdef CONFIG_SOC_DRA7XX
|
|
@@ -671,6 +686,11 @@ void __init dra7xx_init_early(void)
|
|
dra7xx_hwmod_init();
|
|
omap_hwmod_init_postsetup();
|
|
}
|
|
+
|
|
+void __init dra7xx_init_late(void)
|
|
+{
|
|
+ omap_common_late_init();
|
|
+}
|
|
#endif
|
|
|
|
|