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