拿什么定义你?设备树中断节点

一个硬件中断产生以后,会经过GPIOx,SOC,GPC,GIC四层上报到CPU。下面对在设备树中的每一层级进行解析。下面的所有定义都在.dtsi文件中定义

  • intc描述的是中断总开关

ARM系统的中断控制器(GIC)用于管理单核或多核系统中的中断的硬件资源。

这个单元用如下的代码来描述,intc下的中断需要用三个参数来定义(#interrupt-cells = <3>;)

intc: interrupt-controller@00a01000 {
		compatible = "arm,cortex-a7-gic";
		#interrupt-cells = <3>;
		interrupt-controller;
		reg = <0x00a01000 0x1000>,
		      <0x00a02000 0x100>;
	};

为什么要用三个参数呢?

三个参数分别表示是哪一类中断的哪一个中断以及这个中断的触发方式。

  • gpc是系统的虚拟中断控制器

中断可以有多种不同的类型:

① 软件触发中断(SGI,Software Generated Interrupt)

② 私有外设中断(PPI,Private Peripheral Interrupt),标识CPU核私有的中断源,并且独立于另一个内核上的相同中断源。

③ 共享外设中断(SPI,Shared Peripheral Interrupt)

gpc: gpc@020dc000 {
				compatible = "fsl,imx6ul-gpc", "fsl,imx6q-gpc";
				reg = <0x020dc000 0x4000>;
				interrupt-controller;
				#interrupt-cells = <3>;
				interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
				interrupt-parent = <&intc>;
				fsl,mf-mix-wakeup-irq = <0xfc00000 0x7d00 0x0 0x1400640>;
			};
  • 片上系统SOC节点。
    如果处理器是SOC,则此节点必须存在。顶级SOC节点包含的信息对此SOC上的所有设备可见。SOC节点还包含目标板使用的每个SOC设备子节点,应该在设备树中尽可能详细地描述此SOC上的外围设备。
soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		interrupt-parent = <&gpc>;
		ranges;
}
  • 在SOC节点中定义GPIO节点。其中的interrupts 属性描述了此中断属于SPI类,第66,67号中断,高电平触发。上面是在.dtsi文件中定义的节点,不需要我们来实现,内核已经定义好了。
gpio1: gpio@0209c000 {
				compatible = "fsl,imx6ul-gpio", "fsl,imx35-gpio";
				reg = <0x0209c000 0x4000>;
				interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
					     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
				gpio-controller;
				#gpio-cells = <2>;
				interrupt-controller;
				#interrupt-cells = <2>;
			};
  • 下面是我们需要在设备树中添加的代码,含义就是此节点要使用GPIO1中的第一个中断,使用双边沿触发。
   gpio_keys_100ask {
        compatible = "100ask,gpio_key";
        interrupt-parent = <&gpio1>;		
	    interrupts = <1 IRQ_TYPE_EDGE_BOTH>;
    };

至此就可以使用中断方式来使用按键了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

嵌入式螺丝钉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值