devfs Gpio and interrupt

Mancausoft <[email protected]>
Newsgroups gmane.linux.newbie
Message-ID <20110209142230.GB10103@homer>
I read gpio.txt in Documentation of kernel and try to use it.

I use:

# echo 13 > /sys/class/gpio/export
# echo in > /root/tasto1/direction 
# cat /root/tasto1/direction
in

# cat /root/tasto1/value 
1

when the button is pressed:
# cat /root/tasto1/value 
0

# cat /root/tasto1/edge 
none
# echo both > /root/tasto1/edge 

# cat /sys/kernel/debug/gpio 
[...]
 B5 gpio-13  (sysfs       ) in  hi irq-77 edge-both
[...]

# cat /proc/irq/77/spurious p
count 15
unhandled 0
last_unhandled 0 ms
cat: p: No such file or directory
Ture:~# cat /proc/irq/77/spurious 
count 15
unhandled 0
last_unhandled 0 ms


I try the follow code in a while (1):

// /root/tasto1 is a symbolic link to /sys/class/gpio/gpio13/

pfd.fd = open("/root/tasto1/value", O_RDONLY);
pfd.events = POLLPRI | POLLERR; 

//ready = poll(&pfd, 1, -1); 
ready = poll(&pfd, 1, 100000); 

lseek (pfd.fd, 0, SEEK_SET);

val = read(pfd.fd, buf, 254);
//the output are: 1, 10, 10
printf ("%d, %d, %d\n", ready, pfd.revents, pfd.events);

printf ("%d, %s\n", val, buf );

close(pfd.fd);

But it don't wait for an edge but they exit immediatly. 
Why? where is the problem?

-- 
Mancausoft - http://www.mancausoft.org/
GPG key: B53F90F2
signature.asc (application/pgp-signature, 198 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)

iEYEARECAAYFAk1SoyYACgkQ2D/gwrU/kPK/4ACgpCAWfWTp8X63IeN+Mr/2oE6v
PP4AniO9mCDf/2qpE9jtx71L5Sv0XMUb
=GPtC
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.