我是靠谱客的博主 繁荣西装,最近开发中收集的这篇文章主要介绍中断系统中的设备树(五)__内核对设备树中断信息的处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


从硬件结构上看, 处理过程分上下两个层面: 中断控制器, 使用中断的设备

 从软件结构上看, 处理过程分左右两个部分: 在设备树中描述信息, 在驱动中处理设备树

从图中我们可以看到有顶层的中断控制器(interrupt-controller@4a000000),
也有下面一级的中断控制器gpg、gpf,对于gpg、gpf这两个中断控制器是pinctr节点里面的子节点,对应的设备树描述如下所示:

    pinctrl@56000000 {
        reg = <0x56000000 0x1000>;
        compatible = "samsung,s3c2440-pinctrl";

        wakeup-interrupt-controller {
            compatible = "samsung,s3c2410-wakeup-eint";
            interrupts = <0x0 0x0 0x0 0x3 0x0 0x0 0x1 0x3 0x0 0x0 0x2 0x3 0x0 0x0 0x3 0x3 0x0 0x0 0x4 0x4 0x0 0x0 0x5 0x4>;
        };

        gpf {
            gpio-controller;
            #gpio-cells = <0x2>;
            interrupt-controller;
            #interrupt-cells = <0x2>;
            phandle = <0x6>;
        };

        gpg {
            gpio-controller;
            #gpio-cells = <0x2>;
            interrupt-controller;
            #interrupt-cells = <0x2>;
            phandle = <0xe>;
        };
    
    };

所以对于gpg、gpf这两个中断控制器的处理因该有pinctr的驱动程序来处理,pinctr对应的驱动程序:drivers/pinctrl/samsung/pinctrl-samsung.c

 

对于顶层的中断控制对应的驱动程序是drivers/irqchip/irq-s3c24xx.c

对于buttons节点对应的驱动程序是我们自己写按键驱动程序button.c,在中断系统中的设备树(四)__设备树描述按键中断中介绍过,内部数据的处理在后面会详细介绍的,每一个中断控制器在linux驱动程序里面都会有一个irq_domain(域),

 

在解析设备的中断信息时也会涉及到irq_domain(域)

 

 

 

 

最后

以上就是繁荣西装为你收集整理的中断系统中的设备树(五)__内核对设备树中断信息的处理的全部内容,希望文章能够帮你解决中断系统中的设备树(五)__内核对设备树中断信息的处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部