기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요. 혼자 삽질하다 도저히 답이 안나와 질문 드립니다.
현재 S5pv310의 GPL2(0)를 인터럽트로 사용하려고 하는데요.
gpio_to_irq(S5PV310_GPL2(0)) 로 irq 값을 받아 보면 -6이 나옵니다.
int irq = 0;
u32 err;
err = gpio_request(S5PV310_GPL2(0), "UPS_INPUT");
if (err)
{
printk(KERN_INFO "gpio request error : %d\n", err);
}
else
{
s3c_gpio_cfgpin(S5PV310_GPL2(0), EINT_MODE);
s3c_gpio_setpull(S5PV310_GPL2(0), S3C_GPIO_PULL_UP);
}
irq = gpio_to_irq(S5PV310_GPL2(0));
gpiolib.c와 irq-eint.c를 보고 있는데 어떻게 해야 될지 감이 오지 않습니다.
다른 부분들도 확인해보고 있지만 이런식으로 사용한 부분이 보이지 않네요.
참고 할만한 부분이나 확인 해야하는 부분이 있는지 도움 부탁 드립니다.
interrupt code가 작성 안되어 있을겁니다.
제가 봤을 때는 EXT INT 0~15까지만 되어 있고, 16~31 코드가 안되어 있는 것으로 보여집니다
(ICS 커널 기준 - 3.0.8)
해당 코드를 작성해 주셔야 사용이 가능할것으로 보여집니다.
gpio_to_irq랑은 큰 상관이 없고, 실제 interrupt 처리 코드가 안되어 있는 듯 합니다.