MTK 平台的Irq 中断号,dts匹配过程

         MTK一直以傻瓜化,工具化出名,导致了许多代码逻辑的缺失;所以很多做

MTK平台的人,对很多东西都不甚了解,一知半解。最近我们调试一个驱动,在添加

irq时,就找不到代码的逻辑关联,现把关键的过程记录下。

1.  万能的DrvGen.exe (其实挺SB的)

     在目录:vendor\mediatek\proprietary\scripts\dct

2. 配置IRQ,对应EINT号,有部分代码在平台dts中已经实现,

如:  

    touch: touch {
        compatible = "mediatek,mt6739-touch";
        /* VTOUCH-supply = <&mt_pmic_vgp1_ldo_reg>; */
    };

 但是进一步的描述却丢失,比如这个对应的Int Gpio是哪个,中断号是什么,

是电平触发,还是边沿触发,都看不到代码。后面发现这些东西是通过工具,生成在另外一个文件中:

out\target\product\pri6763_66l_kb_n1\obj\KERNEL_OBJ\arch\arm64\boot\dts\pri6763_66l_kb_n1\cust.dtsi

&touch {
    interrupt-parent = <&pio>;
    interrupts = <6 IRQ_TYPE_EDGE_FALLING 6 0>;
    status = "okay";
};

3. 对应代码中:

    printk("otg_iddig_probe\n");
    iddig_eint_num = irq_of_parse_and_map(node, 0);

  这个也查看不出任何跟中断相关配置的Gpio, 比如这个是匹配compatible,然后就

看不出其他的信息了,所以就没有然后了...... 需要去匹配另外一个 cust.dtsi文件

里面才有完整的信息。。。。

发布了83 篇原创文章 · 获赞 61 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/junwua/article/details/82345042
MTK