Memory 如何分配IO内存和IRQ
我需要为Linux内核提供内存和IRQ资源,以便启动CAN控制器。我不知道如何得到它们 下面是我需要填写的结构。我拿这个结构为例,这是运行时时钟,但我需要CAN控制器。两者都在同一块板上,RT时钟(和所有其他设备)有常数,但我的CAN芯片没有常数。当查看主题芯片驱动程序的代码(sp_probe()函数)时,我发现它需要相同类型的资源Memory 如何分配IO内存和IRQ,memory,interrupt,Memory,Interrupt,我需要为Linux内核提供内存和IRQ资源,以便启动CAN控制器。我不知道如何得到它们 下面是我需要填写的结构。我拿这个结构为例,这是运行时时钟,但我需要CAN控制器。两者都在同一块板上,RT时钟(和所有其他设备)有常数,但我的CAN芯片没有常数。当查看主题芯片驱动程序的代码(sp_probe()函数)时,我发现它需要相同类型的资源 struct resource tegra_rtc_resources[] = { [0] = { .start = ???,
struct resource tegra_rtc_resources[] = {
[0] = {
.start = ???,
.end = ???,
.flags = IORESOURCE_MEM,
},
[1] = {
.start = ???,
.end = ???,
.flags = IORESOURCE_IRQ,
},
};
所有“平台”设备都通过系统功能平台添加设备()从“板驱动程序”添加其资源。问题是它初始化了我板上的所有设备(UART、RTC、I2C、NAND等),而不是CAN芯片。
添加设备后,可以将此信息传递给设备驱动程序。CAN芯片驱动程序本身存在于内核代码中