【问题标题】:How to arrive at irq base for an mfd device?如何到达 mfd 设备的 irq 基地?
【发布时间】:2013-08-12 12:15:05
【问题描述】:

MFD 设备中。我想了解,我们如何到达irq base。是随机数吗?

请人解释一下。

【问题讨论】:

  • 你指的是什么irq base?请链接/代码...
  • 考虑一个驱动程序 max77693。它是一个 mfd 设备。它有多个中断。所以在那个驱动程序中,他们随机选择了一个 irq_base 数字并进行了映射(不是精确映射,直接分配从 enum 0+irq_base 开始)。参考:'lxr.linux.no/linux+v3.10.7/drivers/mfd/max77693-irq.c#L243.'注意:我们已将此驱动程序移植到设备树样式。

标签: linux-kernel linux-device-driver


【解决方案1】:

基本上,在尝试为该 IRQ 编号注册 ISR 之前,首先需要将特定的 IRQ 编号与实际的物理硬件中断相关联。这通常在 Linux 内核中使用irq_domain_add_linear() 完成。

过去,可以选择 IRQ 编号,以便它们将硬件 IRQ 线路匹配到根中断控制器(即实际向 CPU 触发中断线路的组件)现在这个编号只是一个数字.

irq_alloc_desc*()irq_free_desc*() API 提供了 irq 编号的分配,但它们不提供对控制器本地 IRQ 的反向映射的任何支持( hwirq) 号到 Linux IRQ 号空间。

Linux 内核的当前设计使用单个大数字空间,其中每个单独的 IRQ 源分配一个不同的数字。这在只有一个中断控制器时很简单,但在具有多个中断控制器的系统中,内核必须确保为每个中断控制器分配不重叠的 Linux IRQ 编号。

Linux 内核中的更多详细信息Documentation/IRQ-domain.txt

【讨论】:

  • 我已经阅读了这份文档并考虑这样做.. 犹豫是否要试一试。有一个开始..会做..谢谢。 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-07
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
  • 2010-09-21
  • 1970-01-01
  • 2011-12-21
相关资源
最近更新 更多