Hi,
Could you help me know where to store the linux/gpio.h file in beagleboard
xM?
On Sunday, January 25, 2015 at 9:54:39 PM UTC+7, TheInventor1993 wrote:
>
> I am writing GPIO Device Driver for linux 3.14 on Beagleboard XM (RevB). I
> have done with simple ON/OFF LED blinking. But stuck at interrupt handler
> implementation. BB XM has GPIO_7 pin connected to user button. Following is
> code sample I have implemented. But it is not working. I am able to insert
> module using insmod. Interrupt is also registered in /proc/interrupts. But
> handler is not getting invoked.
>
> Am I on right track?
>
> #include <linux/gpio.h>
> #include <linux/interrupt.h>
>
> #define GPIO 7
>
> int var;
>
> static irqreturn_t irq_handler(int irq, void *dev_id)
> {
> var++;
> printk("In the Interrupt handler, Count: %d\n", var);
> return IRQ_HANDLED;
> }
>
> static int __init hello_init(void)
> {
> int errno, irq_line;
> if((errno = gpio_direction_input(GPIO)) !=0)
> {
> printk(KERN_INFO "Can't set GPIO direction, error %i\n", errno);
> gpio_free(GPIO);
> return -EINVAL;
> }
> irq_line = gpio_to_irq(GPIO);
> printk ("IRQ Line is %d \n",irq_line);
>
> errno = request_irq( irq_line, (irq_handler_t)irq_handler,
> IRQF_TRIGGER_FALLING, "Interrupt123", NULL );
> if(errno<0)
> {
> printk(KERN_INFO "Problem requesting IRQ, error %i\n", errno);
> }
> return 0;
> }
>
> static void __exit hello_exit(void)
> {
> int irq_line;
> printk ("Unloading my module.\n");
> irq_line = gpio_to_irq(GPIO);
> free_irq(irq_line,NULL);
> printk("Hello Example Exit\n");
> return;
> }
>
> module_init(hello_init);
> module_exit(hello_exit);
>
> MODULE_AUTHOR("TheInventor");
> MODULE_DESCRIPTION("Interrupt Module");
> MODULE_LICENSE("GPL");
>
>
>
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.