Linux用户空间GPIO使用sysfs进行中断

lgm*_*m42 4 linux kernel interrupt sysfs gpio

我想使用sysfs在用户空间上使用GPIO中断.我使用这些命令:

[root@at91]:gpio109 > echo 109 > export
[root@at91]:gpio109 > cd gpio109/
[root@at91]:gpio109 > ll
-rw-r--r--    1 root     0            4096 Jan  1 00:17 direction
drwxr-xr-x    2 root     0               0 Jan  1 00:17 power
lrwxrwxrwx    1 root     0               0 Jan  1 00:17 subsystem -> ../../gpio
-rw-r--r--    1 root     0            4096 Jan  1 00:17 uevent
-rw-r--r--    1 root     0            4096 Jan  1 00:17 value
Run Code Online (Sandbox Code Playgroud)

gpio运行良好,但我无法使用中断.我到处读到我必须有一个边缘文件来轮询这个文件.但在我的系统上,此文件不存在.我做了很多尝试找到解决方案,但仍然没有成功.

我的目标是Linux内核2.6.30上的AT91SAM9263.

在我的电路板启动时,我收到了关于中断的消息:

AT91: 160 gpio irqs in 5 banks
Run Code Online (Sandbox Code Playgroud)

这表明该功能at91_gpio_irq_setup()执行得很好.

你知道吗?

gby*_*gby 8

只有当GPIO引脚可以配置为中断发生引脚时,"edge"文件才存在.请参阅:http://www.mjmwired.net/kernel/Documentation/gpio.txt#634.

由于您没有看到它,这意味着驱动程序和可能的硬件不支持将该GPIO引脚用于中断源.