假设有一个端口映射的I/O设备,它在IRQ线路上任意生成中断。设备的挂起中断可以通过对特定寄存器的单个outb调用来清除。
此外,假设下面的中断处理程序通过request_irq分配给相关的IRQ行
irqreturn_t handler(int irq, void *data)
{
/* clear pending IRQ on device */
outb(0, CLEAR_IRQ_REGISTER_ADDR);
/* device may generate another IRQ at this point,
* but
我对设备树很陌生,但从所有的研究中,我找不到关于编写设备树的全面教程。如果是具体的,我有一个ti sn65dsi86,我想把它连接到imx8芯片上。Linux已经在linux/drm/gpu/drm/bridge/ ti -sn65dsi86.c下在内核源代码树中为ti芯片提供了一个司机。这已经为那个驱动程序写了一个设备树。但他从哪里弄来这么多财产的名字,比如ti,dp车道??我试图从设备驱动程序中得到这些名字,但没有得到任何结果。一切都是相似的,但还是不同的。
谢谢!
我正在阅读Robert编写的,目前正在阅读Linux中的中断处理。它提到,驱动程序可以使用下面的函数注册来处理硬件设备,其中最后的参数dev是唯一的w.r.t到设备。这是否意味着我们不能让两个设备驱动程序服务于同一个硬件设备?如果我想实现与现有驱动程序一起工作的键盘驱动程序,难道不可能吗?我是否需要注销现有的键盘驱动程序并注册我编写的驱动程序?
int request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
const char *name, void *dev)