您好我是内核驱动程序开发的新手。我正在使用raspberry pi作为我的主机我正在尝试为我们拥有的自定义板创建一个I2C驱动程序。定制板将充当奴隶。我很困惑如何进入设备从属地址。根据我的理解
如果我选择第二个选项,我不确定在哪里编辑设备树。更多我想以某种方式在I2C驱动程序本身中注册从地址。这样我就不需要重建内核了。我正在研究的一种方法是从驱动程序代码设置i2c客户端,但评论员建议我不知道为什么。任何帮助将不胜感激。
答案 0 :(得分:0)
所以我终于找到了一种可以在不需要内核重建的情况下绑定I2C设备的工作方式。我创建了两个驱动程序文件(.ko文件)。一个用于注册,一个用于实际的驱动程序。
我这样做是因为我得到了设备所连接的总线号码。 (您可以查看i2c用户空间代码.i2cdetect -y(busnumber)将帮助您检测它是哪个总线编号)
一旦我知道我创建了一个驱动程序文件,它将通过访问适配器然后注册来注册我的设备。我的总线号码是1,从站地址是0x10
static struct i2c_board_info board_info[] __initdata =
{
{
I2C_BOARD_INFO("my_device", 0x10),
},
};
在驱动程序的init函数中,我通过
注册设备i2c_new_device(i2c_get_adapter(1), board_info[0])
多数民众赞成。现在,一旦你在修改实际的驱动程序文件之前构建了这个insmod ko文件,一切都应该有效。