aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorTero Kristo <t-kristo@ti.com>2014-03-04 08:48:33 -0500
committerTero Kristo <t-kristo@ti.com>2014-07-04 10:02:13 -0400
commit55c6c3ad90f606d458d798b36f8ffca98c1894e0 (patch)
tree15128ae8e2827e85b3850aa28b7ceb4bc854fc6a /arch/arm
parent9de367fae0d9907e19d065e0381ecd3f4003e08f (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.c5
-rw-r--r--arch/arm/mach-omap2/prm3xxx.c15
-rw-r--r--arch/arm/mach-omap2/prm3xxx.h1
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
380static void __init prcm_setup_regs(void) 377static 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 */
268void __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);
164extern u32 omap3xxx_prm_get_reset_sources(void); 164extern u32 omap3xxx_prm_get_reset_sources(void);
165int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits); 165int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits);
166void omap3xxx_prm_iva_idle(void); 166void omap3xxx_prm_iva_idle(void);
167void omap3_prm_reset_modem(void);
167 168
168#endif /* __ASSEMBLER */ 169#endif /* __ASSEMBLER */
169 170