我正在尝试将恩智浦7150驱动程序集成到基于x86的平台的Android P中。
下面是给出的集成指南:https://www.nxp.com/docs/en/application-note/AN11690.pdf
因为x86目前还不支持设备树,所以我需要使用平台数据。但我不确定我应该将此信息放在哪个文件中:
static struct pn544_i2c_platform_data nfc_pdata = {
.irq_gpio = GPIO_TO_PIN(1,29),
.ven_gpio = GPIO_TO_PIN(0,30),
.firm_gpio = GPIO_UNUSED
.clkreq_gpio = GPIO_UNUSED
};
static struct i2c_board_info __initdata nfc_board_info[] = {
{
I2C_BOARD_INFO("pn547", 0x28),
.platform_data = &nfc_pdata,
},
};我只有很少的驱动程序开发知识,因此我不能弄清楚。我已经将驱动程序构建为一个内置模块。我知道我需要插入PN7150加密狗,然后将设备信息放在内核代码中的某个地方,它可以在启动时调用驱动程序的探测器。请帮帮忙。
发布于 2019-01-25 16:42:20
正如我在我的评论中所说的;但是如果你没有任何板级文件(我假设在你的X86架构代码中没有),那么你可以简单地创建一个新的内核模块。在内核模块的初始化函数中,您可以注册您的I2C设备信息:
static int __init dummy_nfc_init(void) {
i2c_register_board_info(1, nfc_board_info,
ARRAY_SIZE(nfc_board_info));
}
module_init(dummy_nfc_init);在本例中,在注册电路板信息时,1的是I2C总线编号。在您的示例中,您需要修改总线编号。您可以将此虚拟驱动程序作为内置驱动程序。因此,当您的.-name驱动程序与I2C_BOARD_INFO名称匹配时,"pn547"驱动程序将调用probe函数,而对于其他回调函数和read/write操作,则应匹配从属地址0x28和I2C总线编号。
https://stackoverflow.com/questions/54349885
复制相似问题