diff options
author | Tero Kristo <t-kristo@ti.com> | 2014-03-04 08:48:33 -0500 |
---|---|---|
committer | Tero Kristo <t-kristo@ti.com> | 2014-07-04 10:02:13 -0400 |
commit | 55c6c3ad90f606d458d798b36f8ffca98c1894e0 (patch) | |
tree | 15128ae8e2827e85b3850aa28b7ceb4bc854fc6a /arch/arm | |
parent | 9de367fae0d9907e19d065e0381ecd3f4003e08f (diff) |
ARM: OMAP3: PRM: move modem reset to PRM driver
This is a more proper isolation of the code. Done in preparation of making
PRM an individual driver.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm3xxx.c | 15 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prm3xxx.h | 1 |
3 files changed, 17 insertions, 4 deletions
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 6d02573ac4c0..acb895deb3cc 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -371,10 +371,7 @@ static void __init omap3_d2d_idle(void) | |||
371 | omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK); | 371 | omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK); |
372 | 372 | ||
373 | /* reset modem */ | 373 | /* reset modem */ |
374 | omap2_prm_write_mod_reg(OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RSTPWRON_MASK | | 374 | omap3_prm_reset_modem(); |
375 | OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RST_MASK, | ||
376 | CORE_MOD, OMAP2_RM_RSTCTRL); | ||
377 | omap2_prm_write_mod_reg(0, CORE_MOD, OMAP2_RM_RSTCTRL); | ||
378 | } | 375 | } |
379 | 376 | ||
380 | static void __init prcm_setup_regs(void) | 377 | static void __init prcm_setup_regs(void) |
diff --git a/arch/arm/mach-omap2/prm3xxx.c b/arch/arm/mach-omap2/prm3xxx.c index a575b6964bf9..e46ff7184c9d 100644 --- a/arch/arm/mach-omap2/prm3xxx.c +++ b/arch/arm/mach-omap2/prm3xxx.c | |||
@@ -260,6 +260,21 @@ int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits) | |||
260 | } | 260 | } |
261 | 261 | ||
262 | /** | 262 | /** |
263 | * omap3_prm_reset_modem - toggle reset signal for modem | ||
264 | * | ||
265 | * Toggles the reset signal to modem IP block. Required to allow | ||
266 | * OMAP3430 without stacked modem to idle properly. | ||
267 | */ | ||
268 | void __init omap3_prm_reset_modem(void) | ||
269 | { | ||
270 | omap2_prm_write_mod_reg( | ||
271 | OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RSTPWRON_MASK | | ||
272 | OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RST_MASK, | ||
273 | CORE_MOD, OMAP2_RM_RSTCTRL); | ||
274 | omap2_prm_write_mod_reg(0, CORE_MOD, OMAP2_RM_RSTCTRL); | ||
275 | } | ||
276 | |||
277 | /** | ||
263 | * omap3xxx_prm_reconfigure_io_chain - clear latches and reconfigure I/O chain | 278 | * omap3xxx_prm_reconfigure_io_chain - clear latches and reconfigure I/O chain |
264 | * | 279 | * |
265 | * Clear any previously-latched I/O wakeup events and ensure that the | 280 | * Clear any previously-latched I/O wakeup events and ensure that the |
diff --git a/arch/arm/mach-omap2/prm3xxx.h b/arch/arm/mach-omap2/prm3xxx.h index 007ff59602fd..21eb1d5ba524 100644 --- a/arch/arm/mach-omap2/prm3xxx.h +++ b/arch/arm/mach-omap2/prm3xxx.h | |||
@@ -164,6 +164,7 @@ extern int __init omap3xxx_prm_init(void); | |||
164 | extern u32 omap3xxx_prm_get_reset_sources(void); | 164 | extern u32 omap3xxx_prm_get_reset_sources(void); |
165 | int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits); | 165 | int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits); |
166 | void omap3xxx_prm_iva_idle(void); | 166 | void omap3xxx_prm_iva_idle(void); |
167 | void omap3_prm_reset_modem(void); | ||
167 | 168 | ||
168 | #endif /* __ASSEMBLER */ | 169 | #endif /* __ASSEMBLER */ |
169 | 170 | ||