aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/common.h
diff options
context:
space:
mode:
authorTony Lindgren <tony@atomide.com>2018-04-16 13:23:46 -0400
committerTony Lindgren <tony@atomide.com>2018-04-30 15:04:51 -0400
commit02b83dcb3db7974cc25834b67ffac7eb90ce56ac (patch)
tree0769846454f047728c1ee301342ebec607865a43 /arch/arm/mach-omap2/common.h
parent71941002ad140cba0ee922a2bc9f5dcf9ac70b54 (diff)
ARM: OMAP2+: Initialize SoC PM later
There's no need to probe devices until at module_init time and we currently have at least PM trying to use I2C for PMICs early on. As only a part of the SoC init_early is SoC specific, we only need to call the SoC specific PM init function. And we can modify omap2_common_pm_late_init() so it becomes a late_initcall(). Note that this changes am335x to call omap2_clk_enable_autoidle_all() that seems to be missing currently. Cc: Keerthy <j-keerthy@ti.com> Cc: Tero Kristo <t-kristo@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2/common.h')
-rw-r--r--arch/arm/mach-omap2/common.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
index fbe0b78bf489..75c1a89fab73 100644
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -44,6 +44,9 @@
44 44
45#define OMAP_INTC_START NR_IRQS 45#define OMAP_INTC_START NR_IRQS
46 46
47extern int (*omap_pm_soc_init)(void);
48int omap_pm_nop_init(void);
49
47#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2) 50#if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2)
48int omap2_pm_init(void); 51int omap2_pm_init(void);
49#else 52#else
@@ -79,9 +82,12 @@ static inline int omap4_pm_init_early(void)
79 82
80#if defined(CONFIG_PM) && (defined(CONFIG_SOC_AM33XX) || \ 83#if defined(CONFIG_PM) && (defined(CONFIG_SOC_AM33XX) || \
81 defined(CONFIG_SOC_AM43XX)) 84 defined(CONFIG_SOC_AM43XX))
82void amx3_common_pm_init(void); 85int amx3_common_pm_init(void);
83#else 86#else
84static inline void amx3_common_pm_init(void) { } 87static inline int amx3_common_pm_init(void)
88{
89 return 0;
90}
85#endif 91#endif
86 92
87extern void omap2_init_common_infrastructure(void); 93extern void omap2_init_common_infrastructure(void);
@@ -122,14 +128,10 @@ void am43xx_init_early(void);
122void am43xx_init_late(void); 128void am43xx_init_late(void);
123void omap4430_init_early(void); 129void omap4430_init_early(void);
124void omap5_init_early(void); 130void omap5_init_early(void);
125void omap3_init_late(void); /* Do not use this one */ 131void omap3_init_late(void);
126void omap4430_init_late(void); 132void omap4430_init_late(void);
127void omap2420_init_late(void); 133void omap2420_init_late(void);
128void omap2430_init_late(void); 134void omap2430_init_late(void);
129void omap3430_init_late(void);
130void omap35xx_init_late(void);
131void omap3630_init_late(void);
132void am35xx_init_late(void);
133void ti81xx_init_late(void); 135void ti81xx_init_late(void);
134void am33xx_init_late(void); 136void am33xx_init_late(void);
135void omap5_init_late(void); 137void omap5_init_late(void);