도와주세요!!
글 수 15,339
2003.03.24 20:18:56 (*.186.48.184)
6667
안녕하세요...
커널 버젼이 2.4.10대이므로 다음과 같이 함해보세요...
int init_module(void)
{
int result;
// Registrate Device
result = register_chrdev(GPIO_MAJOR, DEVICE_NAME, &gpio_test_fops);
if (result < 0)
{
printk(KERN_WARNING "%s : Can't get Major Number [%d]
", DEVICE_NAME, GPIO_MAJOR);
return result;
}
// GPIO_IRQ_21 INTERRUPT
if( !request_irq( IRQ_GPIO21, gpio_interrupt, SA_INTERRUPT, INT_NAME, NULL) ) // 인터럽트 등록
{
set_GPIO_IRQ_edge ( 1 << SA1100_IRQ_TO_GPIO(IRQ_GPIO21), GPIO_RISING_EDGE ); //<==수정하였음
enable_irq (IRQ_GPIO21); // 인터럽트의 허용
printk(KERN_WARNING "Interrupt GPIO Register Ok...
");
}
else
{
printk(KERN_WARNING "GPIO can't get assigned IRQ [ %d ]
", IRQ_GPIO21 );
return -EBUSY;
}
GPIO_IO_Init();
return 0; // success
}
그럼 수고하세요..
커널 버젼이 2.4.10대이므로 다음과 같이 함해보세요...
int init_module(void)
{
int result;
// Registrate Device
result = register_chrdev(GPIO_MAJOR, DEVICE_NAME, &gpio_test_fops);
if (result < 0)
{
printk(KERN_WARNING "%s : Can't get Major Number [%d]
", DEVICE_NAME, GPIO_MAJOR);
return result;
}
// GPIO_IRQ_21 INTERRUPT
if( !request_irq( IRQ_GPIO21, gpio_interrupt, SA_INTERRUPT, INT_NAME, NULL) ) // 인터럽트 등록
{
set_GPIO_IRQ_edge ( 1 << SA1100_IRQ_TO_GPIO(IRQ_GPIO21), GPIO_RISING_EDGE ); //<==수정하였음
enable_irq (IRQ_GPIO21); // 인터럽트의 허용
printk(KERN_WARNING "Interrupt GPIO Register Ok...
");
}
else
{
printk(KERN_WARNING "GPIO can't get assigned IRQ [ %d ]
", IRQ_GPIO21 );
return -EBUSY;
}
GPIO_IO_Init();
return 0; // success
}
그럼 수고하세요..