MT6765中断处理IO口配置流程

本文介绍如何在MT6765平台上配置EINT中断,包括添加EINT_VAR、运行DrvGen脚本、配置DTS及关键驱动注册步骤。适用于嵌入式系统开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1 添加EINT_VAR
alps/vender/mediated/proprietary/scripts/dct/ 目录下文件 YuSu.cmp,EINT_YuSu.cmp, GPIO_YuSu.cmp
添加 IRQ_M300 和GPIO_IRQ_M300_PIN

2 运行
  alps/vender/mediated/proprietary/scripts/dct/DrvGen

分别打开下面三个问题,相同配置:

alps/kernel-4.9/drivers/misc/mediatek/dws/mt6765/k62v1_64_bsp.dws

alps/vendor/mediatek/proprietary/bootable/bootloader/lk/target/k62v1_64_bsp/dct/dct/codegen.dws

alps/vendor/mediatek/proprietary/bootable/bootloader/preloader/custom/k62v1_64_bsp/dct/dct/codegen.dws

  在GPIO配置界面设置对应的GPIO为中断模式,mapping到GPIO_IRQ_M300_PIN,在EINT配置界面设置对于的EINT mapping到IRQ_M300

 3 配置DTS

(1) 打开mt6765.dts,添加

        m300_int: m300_int {
                compatible = "mediatek,irq_m300-eint";
        };
  
 (2) 打开k62v1_64_bsp.dts,添加
  &i2c2{
        m300: m300@30 {
                compatible = "ecp,m300";
                reg = <0x30>;
                status = "okay";
                clock-frequency = <400000>;
                m300,interrupt-gpios = <&pio 111 0>;
                m300,enable-gpios = <&pio 51 0>;
        };
};

4 关键驱动注册:

int irq = 0;
irq_gpio = of_get_named_gpio_flags(np, "m300,interrupt-gpios", 0, &flags);
gpio_request(irq_gpio, "m300 irq gpio");
gpio_direction_input(irq_gpio);
irq  = gpio_to_irq(irq_gpio);
request_threaded_irq(irq,  NULL, m300_irq_handler, 
                        IRQF_TRIGGER_FALLING |IRQF_ONESHOT, "m300_interrupt", (void *)data);

enable_irq(data->irq);//使能中断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rosir_zhong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值