diff options
author | Colin Cross <ccross@android.com> | 2011-10-31 17:25:15 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2011-11-03 14:13:44 -0700 |
commit | 203f3a9979dfa0983c5462086e17dc5c30a5625e (patch) | |
tree | d1dc462b6bd92c2f35327b257c8dfa89423e7f27 /drivers/gpio/gpiolib.c | |
parent | 4167a91d2db65b09b74a405cafa3df2f17d55bd4 (diff) | |
download | kernel_samsung_tuna-203f3a9979dfa0983c5462086e17dc5c30a5625e.zip kernel_samsung_tuna-203f3a9979dfa0983c5462086e17dc5c30a5625e.tar.gz kernel_samsung_tuna-203f3a9979dfa0983c5462086e17dc5c30a5625e.tar.bz2 |
gpio: omap: clear level bits when switching to edge detect in idle
The gpio controller in omap4 can only wake from idle on edge
triggered lines. The level triggered interrupts are converted
to edge triggered in idle. It appears that the edge triggered
enable bits are ignored if the level triggered bit is also set,
so clear the level trigger bit in idle and restore it later.
If a level triggered interrupt is pending when the level detect
register is cleared the edge detect setting will not detect it,
and the interrupt will be lost. After clearing the level detect
bits, manually check the datain register against the saved
level detect values, and abort the transition if the interrupt
is pending.
Change-Id: I43fbee728cb6ebc407b8c4430a1cd37165354dc6
Signed-off-by: Colin Cross <ccross@android.com>
Diffstat (limited to 'drivers/gpio/gpiolib.c')
0 files changed, 0 insertions, 0 deletions