驱动中断

2021/4/29 18:26:26

本文主要是介绍驱动中断,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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;
}

 



这篇关于驱动中断的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程