在MFD
设备中。我想了解,我们如何到达irq base
。这是一个随机数吗?
请一位解释。
答案 0 :(得分:3)
基本上,在尝试为该IRQ编号注册ISR之前,首先需要将特定IRQ编号与实际物理硬件中断相关联。这通常使用irq_domain_add_linear()
在Linux内核中完成。
过去,可以选择IRQ编号,使它们将硬件IRQ线路匹配到根中断控制器(即实际触发中断线到CPU的组件)现在这个数字只是一个数字
irq_alloc_desc*()
和irq_free_desc*()
API提供irq编号的分配,但它们不提供对控制器反向映射的任何支持-local IRQ(hwirq)编号进入Linux IRQ编号空间。Linux内核的当前设计使用单个大数字空间,其中每个单独的IRQ源被分配不同的数字。当只有一个中断控制器时,这很简单,但在具有多个中断控制器的系统中,内核必须确保为每个中断控制器分配非重叠的Linux IRQ编号分配。
Linux内核中的更多详细信息 Documentation/IRQ-domain.txt 。