|
@@ -569,4 +569,30 @@ void omap3_ctrl_set_iva_bootmode_idle(void)
|
|
|
omap_ctrl_writel(OMAP3_IVA2_BOOTMOD_IDLE,
|
|
|
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 */
|