devfs Gpio and interrupt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

# cat /root/tasto1/value 

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

# cat /root/tasto1/edge 
# 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); = 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,;

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


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

Mancausoft -
GPG key: B53F90F2

Attachment: signature.asc
Description: Digital signature

[Site Home]     [Audio]     [Hams]     [Kernel Newbies]     [Memory]     [Security]     [Netfilter]     [Bugtraq]     [Photo]     [Yosemite Photos]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linux Resources]     [Fedora Users]

  Powered by Linux