ARM: OMAP3: control: add API for setting up the modem pads
This patch moves the functionality from PM core to control driver. Signed-off-by: Tero Kristo <t-kristo@ti.com>
This commit is contained in:
Родитель
c5180a2b3e
Коммит
bbd36f9f03
|
@ -569,4 +569,30 @@ void omap3_ctrl_set_iva_bootmode_idle(void)
|
||||||
omap_ctrl_writel(OMAP3_IVA2_BOOTMOD_IDLE,
|
omap_ctrl_writel(OMAP3_IVA2_BOOTMOD_IDLE,
|
||||||
OMAP343X_CONTROL_IVA2_BOOTMOD);
|
OMAP343X_CONTROL_IVA2_BOOTMOD);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* omap3_ctrl_setup_d2d_padconf - setup stacked modem pads for idle
|
||||||
|
*
|
||||||
|
* Sets up the pads controlling the stacked modem in such way that the
|
||||||
|
* device can enter idle.
|
||||||
|
*/
|
||||||
|
void omap3_ctrl_setup_d2d_padconf(void)
|
||||||
|
{
|
||||||
|
u16 mask, padconf;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In a stand alone OMAP3430 where there is not a stacked
|
||||||
|
* modem for the D2D Idle Ack and D2D MStandby must be pulled
|
||||||
|
* high. S CONTROL_PADCONF_SAD2D_IDLEACK and
|
||||||
|
* CONTROL_PADCONF_SAD2D_MSTDBY to have a pull up.
|
||||||
|
*/
|
||||||
|
mask = (1 << 4) | (1 << 3); /* pull-up, enabled */
|
||||||
|
padconf = omap_ctrl_readw(OMAP3_PADCONF_SAD2D_MSTANDBY);
|
||||||
|
padconf |= mask;
|
||||||
|
omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_MSTANDBY);
|
||||||
|
|
||||||
|
padconf = omap_ctrl_readw(OMAP3_PADCONF_SAD2D_IDLEACK);
|
||||||
|
padconf |= mask;
|
||||||
|
omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK);
|
||||||
|
}
|
||||||
#endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */
|
#endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */
|
||||||
|
|
|
@ -428,6 +428,7 @@ extern void omap_ctrl_write_dsp_boot_mode(u8 bootmode);
|
||||||
extern void omap3630_ctrl_disable_rta(void);
|
extern void omap3630_ctrl_disable_rta(void);
|
||||||
extern int omap3_ctrl_save_padconf(void);
|
extern int omap3_ctrl_save_padconf(void);
|
||||||
extern void omap3_ctrl_set_iva_bootmode_idle(void);
|
extern void omap3_ctrl_set_iva_bootmode_idle(void);
|
||||||
|
void omap3_ctrl_setup_d2d_padconf(void);
|
||||||
extern void omap2_set_globals_control(void __iomem *ctrl,
|
extern void omap2_set_globals_control(void __iomem *ctrl,
|
||||||
void __iomem *ctrl_pad);
|
void __iomem *ctrl_pad);
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -355,20 +355,7 @@ restore:
|
||||||
|
|
||||||
static void __init omap3_d2d_idle(void)
|
static void __init omap3_d2d_idle(void)
|
||||||
{
|
{
|
||||||
u16 mask, padconf;
|
omap3_ctrl_setup_d2d_padconf();
|
||||||
|
|
||||||
/* In a stand alone OMAP3430 where there is not a stacked
|
|
||||||
* modem for the D2D Idle Ack and D2D MStandby must be pulled
|
|
||||||
* high. S CONTROL_PADCONF_SAD2D_IDLEACK and
|
|
||||||
* CONTROL_PADCONF_SAD2D_MSTDBY to have a pull up. */
|
|
||||||
mask = (1 << 4) | (1 << 3); /* pull-up, enabled */
|
|
||||||
padconf = omap_ctrl_readw(OMAP3_PADCONF_SAD2D_MSTANDBY);
|
|
||||||
padconf |= mask;
|
|
||||||
omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_MSTANDBY);
|
|
||||||
|
|
||||||
padconf = omap_ctrl_readw(OMAP3_PADCONF_SAD2D_IDLEACK);
|
|
||||||
padconf |= mask;
|
|
||||||
omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK);
|
|
||||||
|
|
||||||
/* reset modem */
|
/* reset modem */
|
||||||
omap3_prm_reset_modem();
|
omap3_prm_reset_modem();
|
||||||
|
|
Загрузка…
Ссылка в новой задаче