diff options
| author | Tony Lindgren <tony@atomide.com> | 2018-04-16 13:23:46 -0400 |
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2018-04-30 15:04:51 -0400 |
| commit | 02b83dcb3db7974cc25834b67ffac7eb90ce56ac (patch) | |
| tree | 0769846454f047728c1ee301342ebec607865a43 /arch/arm/mach-omap2/common.h | |
| parent | 71941002ad140cba0ee922a2bc9f5dcf9ac70b54 (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.h | 16 |
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 | ||
| 47 | extern int (*omap_pm_soc_init)(void); | ||
| 48 | int omap_pm_nop_init(void); | ||
| 49 | |||
| 47 | #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2) | 50 | #if defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP2) |
| 48 | int omap2_pm_init(void); | 51 | int 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)) |
| 82 | void amx3_common_pm_init(void); | 85 | int amx3_common_pm_init(void); |
| 83 | #else | 86 | #else |
| 84 | static inline void amx3_common_pm_init(void) { } | 87 | static inline int amx3_common_pm_init(void) |
| 88 | { | ||
| 89 | return 0; | ||
| 90 | } | ||
| 85 | #endif | 91 | #endif |
| 86 | 92 | ||
| 87 | extern void omap2_init_common_infrastructure(void); | 93 | extern void omap2_init_common_infrastructure(void); |
| @@ -122,14 +128,10 @@ void am43xx_init_early(void); | |||
| 122 | void am43xx_init_late(void); | 128 | void am43xx_init_late(void); |
| 123 | void omap4430_init_early(void); | 129 | void omap4430_init_early(void); |
| 124 | void omap5_init_early(void); | 130 | void omap5_init_early(void); |
| 125 | void omap3_init_late(void); /* Do not use this one */ | 131 | void omap3_init_late(void); |
| 126 | void omap4430_init_late(void); | 132 | void omap4430_init_late(void); |
| 127 | void omap2420_init_late(void); | 133 | void omap2420_init_late(void); |
| 128 | void omap2430_init_late(void); | 134 | void omap2430_init_late(void); |
| 129 | void omap3430_init_late(void); | ||
| 130 | void omap35xx_init_late(void); | ||
| 131 | void omap3630_init_late(void); | ||
| 132 | void am35xx_init_late(void); | ||
| 133 | void ti81xx_init_late(void); | 135 | void ti81xx_init_late(void); |
| 134 | void am33xx_init_late(void); | 136 | void am33xx_init_late(void); |
| 135 | void omap5_init_late(void); | 137 | void omap5_init_late(void); |
