Commit 55c6c3ad authored by Tero Kristo's avatar Tero Kristo

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: default avatarTero Kristo <t-kristo@ti.com>
parent 9de367fa
...@@ -371,10 +371,7 @@ static void __init omap3_d2d_idle(void) ...@@ -371,10 +371,7 @@ static void __init omap3_d2d_idle(void)
omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK); omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK);
/* reset modem */ /* reset modem */
omap2_prm_write_mod_reg(OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RSTPWRON_MASK | omap3_prm_reset_modem();
OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RST_MASK,
CORE_MOD, OMAP2_RM_RSTCTRL);
omap2_prm_write_mod_reg(0, CORE_MOD, OMAP2_RM_RSTCTRL);
} }
static void __init prcm_setup_regs(void) static void __init prcm_setup_regs(void)
......
...@@ -259,6 +259,21 @@ int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits) ...@@ -259,6 +259,21 @@ int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits)
return c; return c;
} }
/**
* omap3_prm_reset_modem - toggle reset signal for modem
*
* Toggles the reset signal to modem IP block. Required to allow
* OMAP3430 without stacked modem to idle properly.
*/
void __init omap3_prm_reset_modem(void)
{
omap2_prm_write_mod_reg(
OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RSTPWRON_MASK |
OMAP3430_RM_RSTCTRL_CORE_MODEM_SW_RST_MASK,
CORE_MOD, OMAP2_RM_RSTCTRL);
omap2_prm_write_mod_reg(0, CORE_MOD, OMAP2_RM_RSTCTRL);
}
/** /**
* omap3xxx_prm_reconfigure_io_chain - clear latches and reconfigure I/O chain * omap3xxx_prm_reconfigure_io_chain - clear latches and reconfigure I/O chain
* *
......
...@@ -164,6 +164,7 @@ extern int __init omap3xxx_prm_init(void); ...@@ -164,6 +164,7 @@ extern int __init omap3xxx_prm_init(void);
extern u32 omap3xxx_prm_get_reset_sources(void); extern u32 omap3xxx_prm_get_reset_sources(void);
int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits); int omap3xxx_prm_clear_mod_irqs(s16 module, u8 regs, u32 ignore_bits);
void omap3xxx_prm_iva_idle(void); void omap3xxx_prm_iva_idle(void);
void omap3_prm_reset_modem(void);
#endif /* __ASSEMBLER */ #endif /* __ASSEMBLER */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment