カーネルドライバーでGPIO割り込みを使用する方法(Linux 6.6の場合)
誰かがGPIOの割り込みを使用してLinuxドライバーのサンプルコードを共有できますか
cortex-Mが起動していなくても割り込みはOKです。
同じGPIO(GPIO2)上のCortex-AとCortex-Mで中断することは可能ですか?
現在のドライバーソースとdtsを追加します。
gpio_interrupt /proc/interrupts で宣言されています
root@board:~# cat /proc/interrupts
CPU0 CPU1
13: 36966 43746 GICv3 26 Level arch_timer
14: 11423 14496 GICv3 106 Level timer@44290000
...
96: 0 0 GICv3 98 Level 42560000.spi
99: 7450 0 GICv3 119 Level mmc1
100: 0 0 gpio-vf610 0 Edge 42860000.mmc cd
101: 0 0 gpio-vf610 10 Edge gpio_interrupt
...
Err: 0
/sys/kernel/debug/gpio で、GPIO は OK と認識します。
root@board:~# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 512-543, parent: platform/43810000.gpio, 43810000.gpio:
..
gpio-522 (IRQ_AEMPTY |gpio_interrupt ) in hi IRQ
gpio-523 (IRQ_AFULL )
..
すべてが問題ないようですが、スコープでGPIOの変更を確認しました。しかし、割り込みは検出されませんでした。
何かアイデアはありますか?