diff options
author | Tero Kristo <t-kristo@ti.com> | 2014-03-04 10:17:06 -0500 |
---|---|---|
committer | Tero Kristo <t-kristo@ti.com> | 2014-07-04 10:02:18 -0400 |
commit | bbd36f9f03eceee5c208db83049142171e6338f6 (patch) | |
tree | 16a6d579e4938078996158b172f059ea40572389 | |
parent | c5180a2b3e26d9b82277986f830c89a50103e65a (diff) |
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>
-rw-r--r-- | arch/arm/mach-omap2/control.c | 26 | ||||
-rw-r--r-- | arch/arm/mach-omap2/control.h | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/pm34xx.c | 15 |
3 files changed, 28 insertions, 14 deletions
diff --git a/arch/arm/mach-omap2/control.c b/arch/arm/mach-omap2/control.c index 83080949d0d3..f432ffc0deb2 100644 --- a/arch/arm/mach-omap2/control.c +++ b/arch/arm/mach-omap2/control.c | |||
@@ -569,4 +569,30 @@ void omap3_ctrl_set_iva_bootmode_idle(void) | |||
569 | omap_ctrl_writel(OMAP3_IVA2_BOOTMOD_IDLE, | 569 | omap_ctrl_writel(OMAP3_IVA2_BOOTMOD_IDLE, |
570 | OMAP343X_CONTROL_IVA2_BOOTMOD); | 570 | OMAP343X_CONTROL_IVA2_BOOTMOD); |
571 | } | 571 | } |
572 | |||
573 | /** | ||
574 | * omap3_ctrl_setup_d2d_padconf - setup stacked modem pads for idle | ||
575 | * | ||
576 | * Sets up the pads controlling the stacked modem in such way that the | ||
577 | * device can enter idle. | ||
578 | */ | ||
579 | void omap3_ctrl_setup_d2d_padconf(void) | ||
580 | { | ||
581 | u16 mask, padconf; | ||
582 | |||
583 | /* | ||
584 | * In a stand alone OMAP3430 where there is not a stacked | ||
585 | * modem for the D2D Idle Ack and D2D MStandby must be pulled | ||
586 | * high. S CONTROL_PADCONF_SAD2D_IDLEACK and | ||
587 | * CONTROL_PADCONF_SAD2D_MSTDBY to have a pull up. | ||
588 | */ | ||
589 | mask = (1 << 4) | (1 << 3); /* pull-up, enabled */ | ||
590 | padconf = omap_ctrl_readw(OMAP3_PADCONF_SAD2D_MSTANDBY); | ||
591 | padconf |= mask; | ||
592 | omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_MSTANDBY); | ||
593 | |||
594 | padconf = omap_ctrl_readw(OMAP3_PADCONF_SAD2D_IDLEACK); | ||
595 | padconf |= mask; | ||
596 | omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK); | ||
597 | } | ||
572 | #endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */ | 598 | #endif /* CONFIG_ARCH_OMAP3 && CONFIG_PM */ |
diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h index da054801b114..fc001587ebf5 100644 --- a/arch/arm/mach-omap2/control.h +++ b/arch/arm/mach-omap2/control.h | |||
@@ -428,6 +428,7 @@ extern void omap_ctrl_write_dsp_boot_mode(u8 bootmode); | |||
428 | extern void omap3630_ctrl_disable_rta(void); | 428 | extern void omap3630_ctrl_disable_rta(void); |
429 | extern int omap3_ctrl_save_padconf(void); | 429 | extern int omap3_ctrl_save_padconf(void); |
430 | extern void omap3_ctrl_set_iva_bootmode_idle(void); | 430 | extern void omap3_ctrl_set_iva_bootmode_idle(void); |
431 | void omap3_ctrl_setup_d2d_padconf(void); | ||
431 | extern void omap2_set_globals_control(void __iomem *ctrl, | 432 | extern void omap2_set_globals_control(void __iomem *ctrl, |
432 | void __iomem *ctrl_pad); | 433 | void __iomem *ctrl_pad); |
433 | #else | 434 | #else |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index 3ea04ac10d16..126f3ec2d174 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -355,20 +355,7 @@ restore: | |||
355 | 355 | ||
356 | static void __init omap3_d2d_idle(void) | 356 | static void __init omap3_d2d_idle(void) |
357 | { | 357 | { |
358 | u16 mask, padconf; | 358 | omap3_ctrl_setup_d2d_padconf(); |
359 | |||
360 | /* In a stand alone OMAP3430 where there is not a stacked | ||
361 | * modem for the D2D Idle Ack and D2D MStandby must be pulled | ||
362 | * high. S CONTROL_PADCONF_SAD2D_IDLEACK and | ||
363 | * CONTROL_PADCONF_SAD2D_MSTDBY to have a pull up. */ | ||
364 | mask = (1 << 4) | (1 << 3); /* pull-up, enabled */ | ||
365 | padconf = omap_ctrl_readw(OMAP3_PADCONF_SAD2D_MSTANDBY); | ||
366 | padconf |= mask; | ||
367 | omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_MSTANDBY); | ||
368 | |||
369 | padconf = omap_ctrl_readw(OMAP3_PADCONF_SAD2D_IDLEACK); | ||
370 | padconf |= mask; | ||
371 | omap_ctrl_writew(padconf, OMAP3_PADCONF_SAD2D_IDLEACK); | ||
372 | 359 | ||
373 | /* reset modem */ | 360 | /* reset modem */ |
374 | omap3_prm_reset_modem(); | 361 | omap3_prm_reset_modem(); |