Thread (17 messages) 17 messages, 5 authors, 2011-10-13
STALE5346d

[PATCH v6 01/16] OMAP2+: hwmod: Add API to enable IO ring wakeup.

From: Vishwanath Sripathy <hidden>
Date: 2011-10-03 15:10:44
Also in: linux-omap, linux-serial

---snip--
quoted
+{
+	struct omap_device_pad *pad;
+	int ret = -EINVAL, j;
+
+	if (oh->mux&&  oh->mux->enabled) {
+		for (j = 0; j<  oh->mux->nr_pads_dynamic; j++) {
+			pad = oh->mux->pads_dynamic[j];
+			if (pad->flags&  OMAP_DEVICE_PAD_WAKEUP) {
+				if (set_wake)
+					pad->idle |= OMAP_WAKEUP_EN;
+				else
+					pad->idle&= ~OMAP_WAKEUP_EN;
I think apart from enabling/disabling the IO wakeup's at the pad
level, there is also a need to trigger the IO daisy chain control
(Wu clock) by programming the PRCM.PM_WKEN_WKUP[16] EN_IO_CHAIN
bit and waiting on the PRCM.PM_WKST_WKUP[16] ST_IO_CHAIN) bit,
which is done by the omap3_enable/disable_io_chain function.
This is still done in the cpuidle path, but it makes sense to
move that over here, since it should be done every time a pad
level wakeup is enabled or disabled.

See section 3.5.7.2.2 I/O Wake-Up Mechanism of 36xx TRM revA.

"The I/O wake-up scheme is enabled by triggering the I/O daisy chain
control (Wu clock) by
programming a dedicated register (PRCM.PM_WKEN_WKUP[16] EN_IO_CHAIN)
in
the PRCM module.Software must wait for the I/O daisy chain to
complete
before it transitions the PER domain to a
nonfunctional state. This is done by polling a dedicated status bit
in
the PRCM module
(PRCM.PM_WKST_WKUP[16] ST_IO_CHAIN). This status bit must be cleared
by
software when the bit is
read to 1."
I am working on adding Daisy chain support via hwmod mux framework.
I will post the patches soon.

Regards
Vishwa
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help