안녕하세요....

: ./test실행한 후 interrupt 부분을 테스트해보았는데 interrupt가 걸리지 않습
: 니다.
: /proc/interrupt 하면 46번으로 인터럽트는 등록이 되어 있는 것을 확인할수
: 있습니다. 그런데 ./test에서 5번(interrupt)을 선택하면 드바이스의
: interrupt_sleep_on()에 의해 sleep은 되는데..button을 눌러도 wake_up이 동
: 작하지 안습니다.
:
: 회로상에서 interrup버튼을 누르면 gpio21번에 low가 입력되는 것을 확인 하였
: 습니다.
:


==>> 이상하네요... 저는 인터럽트가 다음과 같이 잡히는데요...

[root@ezboard nfs]$ cat /proc/interrupts
10: 0 mk712_touchscreen
11: 232 GPIO 11-27
12: 0 SA1100
17: 569 serial_sa1100
26: 3694 timer
42: 0 SW_INT <<==== 요 부분
47: 232 cs89x0
Err: 0
[root@ezboard nfs]$

인터럽트 번호가 42번이 정상입니다..


#define GPIO_IRQ_21 21 // GPIO21


set_GPIO_IRQ_edge(1 << SA1100_IRQ_TO_GPIO(GPIO_IRQ_21), GPIO_RISING_EDGE);


#define IRQ_GPIO_11_27(x) (32 + (x) - 11)
#define SA1100_GPIO_TO_IRQ(i) (((i) < 11) ? SA1100_IRQ(i) : IRQ_GPIO_11_27(i))

==>> 이부분을 계산하면.... (32+21-11) = 42


그럼 수고하세요...

제가 컴파일한 소스를 첨부합니다..