首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux I2C内核驱动程序绑定

Linux I2C内核驱动程序绑定
EN

Stack Overflow用户
提问于 2017-11-07 10:12:16
回答 2查看 3.1K关注 0票数 0

我正在学习如何开发Linux内核驱动程序,并在下面的网站上学习。

如何实例化I2C设备

基于Linux的嵌入式系统I2C驱动程序

..。

接下来,我找到了一个示例,它展示了如何实现I2C触摸屏驱动程序,但它确实让我感到困惑

i2c.c

我的问题是,Linux内核如何将这个驱动程序绑定到正确的设备上?

此驱动程序不提供“检测”回调,不通过i2c_driver.address_list指定i2c_driver.address_list从地址,而且似乎没有任何人调用i2c_board_info来注册地址信息(I grep是整个Linux代码库)。

我认为驱动程序必须指定从地址或提供“检测”回调,就像

司机/hwmon/adc128d818.c

linux/drivers/rtc/rtc-ds1307.c (它将由i2c_board_info注册)

请告诉我我错过了什么,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-07 10:48:14

i2c设备声明从设备树开始。

在设备树中声明i2c设备。

示例:

代码语言:javascript
复制
i2c1: i2c@400a0000 {
    /* ... master properties skipped ... */
    clock-frequency = <100000>;

    flash@50 {
        compatible = "atmel,24c256";
        reg = <0x50>;
    };

    pca9532: gpio@60 {
        compatible = "nxp,pca9532";
        gpio-controller;
        #gpio-cells = <2>;
        reg = <0x60>;
    };
};

哪里,

( 1) 400a000是i2c总线地址2) pca9532和flash是驱动程序名称( 3) @50和@60是从地址4)属性“兼容”以查找和映射设备与驱动程序5)每个条目的单元格内的其他属性是特定于驱动程序的,该驱动程序将用于探针期间的设备初始化

https://www.kernel.org/doc/Documentation/i2c/instantiating-devices

票数 0
EN

Stack Overflow用户

发布于 2017-11-14 02:51:38

我终于想出了我的问题。

请参阅http://www.embedded-bits.co.uk/2009/i2c-in-the-2632-linux-kernel/

需要将我的I2C设备注册到内核上的i2c_new_probed_device()或i2c_new_device,才能让它有一个关于从地址和设备名称的映射表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47155211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档