aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpiolib.c
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2011-10-31 17:25:15 -0700
committerColin Cross <ccross@android.com>2011-11-03 14:13:44 -0700
commit203f3a9979dfa0983c5462086e17dc5c30a5625e (patch)
treed1dc462b6bd92c2f35327b257c8dfa89423e7f27 /drivers/gpio/gpiolib.c
parent4167a91d2db65b09b74a405cafa3df2f17d55bd4 (diff)
downloadkernel_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