当前位置: 首页 > news >正文

在设备树中描述中断

参考文档:
内核 Documentation\devicetree\bindings\interrupt-controller\interrupts.txt

在设备树中,中断控制器节点中必须有一个属性: interrupt-controller,表明它是“中断控制器”。
还必须有一个属性: #interrupt-cells,表明引用这个中断控制器的话需要多少个 cell。
#interrupt-cells 的值一般有如下取值:
① #interrupt-cells=<1>
别的节点要使用这个中断控制器时,只需要一个 cell 来表明使用“哪一个中断”。
② #interrupt-cells=<2>
别的节点要使用这个中断控制器时,需要一个 cell 来表明使用“哪一个中断”;
还需要另一个 cell 来描述中断,一般是表明触发类型:
第 2 个 cell 的 bits[3:0] 用来表示中断触发类型(trigger type and level flags):
1 = low-to-high edge triggered,上升沿触发
2 = high-to-low edge triggered,下降沿触发
4 = active high level-sensitive,高电平触发
8 = active low level-sensitive,低电平触发
举个例子:

vic: intc@10140000 {compatible = "arm,versatile-vic";interrupt-controller;#interrupt-cells = <1>;reg = <0x10140000 0x1000>;
};

如果中断控制器有级联关系,下级的中断控制器还需要表明它的“ interrupt-parent”是谁(使用了哪个一中断控制器),用了interrupt-parent”中的哪一个“ interrupts”,请看下一小节。

2、设备树里使用中断
一个外设,它的中断信号接到哪个“中断控制器”的哪个“中断引脚”,这个中断的触发方式是怎样的?
这 3 个问题,在设备树里使用中断时,都要有所体现。

① interrupt-parent=<&XXXX>
你要用哪一个中断控制器里的中断?
② interrupts
你要用哪一个中断?
Interrupts 里要用几个 cell,由 interrupt-parent 对应的中断控制器决定。在中断控制器里有“ #interrupt-cells”属性,它指明了要用几个 cell 来描述中断。
比如:

i2c@7000c000 {gpioext: gpio-adnp@41 {compatible = "ad,gpio-adnp";	//保证驱动程序与之匹配interrupt-parent = <&gpio>;		//说明它所使用的中断属于该中断控制器interrupts = <160 1>;			//表明使用了该中断控制器中的160 号中断,触发类型是上升沿触发gpio-controller;				//表明它是一个中断控制器#gpio-cells = <1>;				//如果有要使用它的中断,需要用一个 cell来描述所使用的中断interrupt-controller;#interrupt-cells = <2>;};......
};

③ 新写法: interrupts-extended
一个“ interrupts-extended”属性就可以既指定“ interrupt-parent”,也指定“ interrupts”,比如:

interrupts-extended = <&intc1 5 1>, <&intc2 1 0>;        //表明了所属中断控制器的同时,亦表明描述了所使用的中断。
 

http://www.lryc.cn/news/179875.html

相关文章:

  • ccf_csp第一题汇总
  • uniapp 实现下拉筛选框 二次开发定制
  • 实现单行/多行文本溢出
  • Spring Boot中的Binder类
  • leetcode之打家劫舍
  • 走进Spring的世界 —— Spring底层核心原理解析(一)
  • 快看看你的手机有没有:谷歌Android全面封杀此类软件!
  • spark ui 指南
  • 【分布式事务】
  • linux 清除卸载jenkins
  • 番外4:VMware安装
  • Oracle 19.20 patch 注意事项
  • ElementUI之增删改及表单验证
  • 【Java 进阶篇】深入理解 JDBC:Java 数据库连接详解
  • Web开发-session介绍
  • 基于Qt Creator开发的坦克大战小游戏
  • 小说推文和短剧推广以及电影达人带货电影票
  • 朴素贝叶斯分类(下):数据挖掘十大算法之一
  • 9.30作业
  • [GWCTF 2019]枯燥的抽奖
  • vue3中sync修饰符的使用
  • Qt全屏显示与退出
  • OpenCV之直线曲线拟合
  • 2023年哪款PDF虚拟打印机好用?
  • Redis各数据类型特定的命令和用法 1.0版本
  • 卫星图像应用 - 洪水检测 使用DALI进行数据预处理
  • 为什么字节大量用GO而不是Java?
  • Hive SQL初级练习(30题)
  • NSSCTF做题(6)
  • 公众号商城小程序的作用是什么