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.