我目前正在编写一个SPI设备驱动程序,它将通过SPI控制和GPIO扩展器芯片。它将使用标准GPIO sysfs结构导出GPIO。我使用mcp23s08.c驱动程序作为资源,因为它几乎完全相同。
我的问题是如何将此驱动程序更改为内核模块?我知道如何使它成为一个模块(module_init()
)等。但实际上是什么导致我的驱动程序被探测。如果它是平台设备,我可以在设备树中添加兼容线并强制它调用我的驱动程序。当它是一个内核模块时,如果它被添加到设备树中,我的驱动程序是否仍会被探测?此外,当它被探测时,spi->dev.platform_data
结构在哪里被填充?在我看来,这需要来自OF框架,我需要做of_property_read()
从设备树中提取平台数据。
感谢您的提前帮助