• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

驱动中断

开发技术 开发技术 2周前 (04-29) 12次浏览

1.gpio引脚申请

1 ret = gpio_request(linux_gpio, "xxxx_gpio"); //一个参数linux内部的gpio编号

2.gpio引脚转成中断io,并返回中断号

1 irq = gpio_to_irq(linux_gpio);

3.注册中断函数

request_irq(data->hpd_irq, NULL,irq_handle_fun,
                IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING
                | IRQF_ONESHOT, "lt8912-hpd-isr", data);

4.中断函数

static irqreturn_t irq_handle_fun(int irq, void *data)
{
    struct lt8912_private *pdata = data;

    if (gpio_is_valid(pdata->hpd_gpio)) {
        int hpd = gpio_get_value(pdata->hpd_gpio);
        /* Fixme: do something while hdmi plugin */
    }

    return IRQ_HANDLED;
}

 


程序员灯塔
转载请注明原文链接:驱动中断
喜欢 (0)