probe传递进来的参数 是对应device中的内容 如resource
static struct resource w55fa92_emc_resource[] = {
[0] = {
.start = W55FA92_PA_EMC,
.end = W55FA92_PA_EMC + W55FA92_SZ_EMC - 1,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = IRQ_EMCTX,
.end = IRQ_EMCTX,
.flags = IORESOURCE_IRQ,
},
[2] = {
.start = IRQ_EMCRX,
.end = IRQ_EMCRX,
.flags = IORESOURCE_IRQ,
}
};
static u64 w55fa92_device_emc_dmamask = 0xffffffffUL;
static struct platform_device w55fa92_device_emc = {
.name = "w55fa92-emc",
.id = -1,
.num_resources = ARRAY_SIZE(w55fa92_emc_resource),
.resource = w55fa92_emc_resource,
.dev = {
.dma_mask = &w55fa92_device_emc_dmamask,
.coherent_dma_mask = 0xffffffffUL
}
};
http://blog.csdn.net/xiafeng1113/article/details/8474612
request_irq 第一个参数irq:申请的硬件中断号 有它说明中断源是什么。
可以为某个特定的中断方式(寄存器中设定)
if (request_irq(ether->txirq, w55fa92_tx_interrupt,
0x0, pdev->name, dev)) {
dev_err(&pdev->dev, "register irq tx failed\n");
return -EAGAIN;
}
也可以为 一个中断管脚
ret = request_irq(IRQ_GPIO1, nvt_sd0_card_detect_irq, IRQF_SHARED, mmc_hostname(mmc), host);