use of gpio_int_name 
On Tuesday, 26 August 2014 19:38:01 UTC+5:30, Siddarth Sharma wrote:
>
> I am toggling the input into a GPIO line on my BeagleBone from high to low 
> every 500 ms using an Atmel uC. I have registered a handler for this in my 
> Linux Kernel Module, but the handler is not being called for some reason.
>
> My module code is -
>
> #define GPIO 54
> #define GPIO_INT_NAME  "gpio_int"
>
> #define GPIO_HIGH gpio_get_value(GPIO)
> #define GPIO_LOW (gpio_get_value(GPIO) == 0)
> short int irq_any_gpio    = 0;
> int count =0;
>
> enum { falling, rising } type; 
> static irqreturn_t r_irq_handler(int irq, void *dev_id)
>  {
>       count++;
>     printk(KERN_DEBUG "interrupt received (irq: %d)\n", irq);
>         if (irq == gpio_to_irq(GPIO)) 
>     {
>
>         type = GPIO_LOW ? falling : rising;
>
>         if(type == falling)
>         {
>             printk("gpio pin is low\n");    
>         }
>         else
>             printk("gpio pin is high\n");
>
>     }
>
>     return IRQ_HANDLED;
> }
>
>
> void r_int_config(void) {
>
>    if (gpio_request(GPIO, GPIO_INT_NAME )) 
>    {
>       printk("GPIO request failure: %s\n", GPIO_INT_NAME );
>       return;
>    }
>
>    if ( (irq_any_gpio = gpio_to_irq(GPIO)) < 0 ) {
>       printk("GPIO to IRQ mapping failure %s\n",GPIO_INT_NAME );
>       return;
>    }
>
>    printk(KERN_NOTICE "Mapped int %d\n", irq_any_gpio);
>
>    if (request_irq(irq_any_gpio,(irq_handler_t ) r_irq_handler, 
> IRQF_TRIGGER_HIGH, GPIO_INT_NAME, NULL)) 
>    {
>       printk("Irq Request failure\n");
>       return;
>    }
>
>    return;
> }
>
> void r_int_release(void) {
>
>    free_irq(gpio_to_irq(GPIO), NULL);
>     gpio_free(GPIO);;
>    return;
> }
>
> int init_module(void)
> {
>         printk("<1>Hello World\n"); 
>     r_int_config();
>         return 0;
> }
>
> On calling insmod interrupt_test.ko, i get the following message
>
> [   76.594543] Hello World                                                    
>   
> [   76.597137] Mapped int 214  
>
> But now when I start toggling the input into this gpio pin, the interrupt 
> handler doesn't get called and the message - "interrupt received" is not 
> being displayed.
>
> How do I solve this ? What's causing the problem?
>

-- 
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 beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/58c134dc-0d16-4359-8406-c7ec9794895c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to