• I2C设备驱动程序从用户空间绑定控制(旧内核)


    注意:只有当你在处理内核2.6中发现的一些旧代码时,这一节才有用。如果您使用的是最新的内核,您可以安全地跳过这一节。

    直到内核2.6.32,许多I2C驱动程序都使用 <linux/i2c.h> 提供的帮助宏,它创建了标准模块参数,让用户控制驱动程序探测I2C总线和连接到设备的方式。这些参数被称为probe(让驱动程序探测一个额外的地址),force(强制将驱动程序连接到给定的设备上)和 ignore(防止驱动程序探测给定地址)。

    在将I2C子系统转换为标准设备驱动程序绑定模型之后,很明显,不再需要这些每个模块的参数,可以进行集中实现。新的基于sysfs的接口在如何实例化I2C设备一文“方法4:从用户空间实例化”中进行了描述。

    下面是旧模块参数到新接口的映射。

    将驱动程序连接到I2C设备

    旧方法(模块参数):

    # modprobe <driver> probe=1,0x2d
    # modprobe <driver> force=1,0x2d
    # modprobe <driver> force_<device>=1,0x2d

    新方法(sysfs接口):

    # echo <device> 0x2d > /sys/bus/i2c/devices/i2c-1/new_device

    阻止驱动程序连接到I2C设备

    旧方法(模块参数):

    # modprobe <driver> ignore=1,0x2f

    新方法(sysfs接口):

    # echo dummy 0x2f > /sys/bus/i2c/devices/i2c-1/new_device
    # modprobe <driver>

    当然,在加载驱动程序之前实例化虚拟设备是很重要的。虚拟设备将由i2c核心自己处理,以防止稍后其他驱动程序绑定到它。如果在有问题的地址上有一个真实的设备,而您想要另一个驱动程序绑定到它,那么只需传递有问题的设备的名称,而不是虚拟的。

    本文来自博客园,作者:王楼小子,转载请注明原文链接:https://www.cnblogs.com/wanglouxiaozi/p/15165578.html

  • 相关阅读:
    设计模式-可复用面向对象软件基础笔记
    C#--笔记
    win系统下nodejs安装及环境配置
    三步将Node应用部署到Heroku上 --转载
    Ubuntu 重启命令
    Ubuntu ssh免密登录
    Ubuntu Hadoop环境搭建(Hadoop2.6.5+jdk1.8.0_121)
    Ubuntu vim使用
    Scala学习——array与arraybuffer的区别(初)
    Scala学习——可变参数(初)
  • 原文地址:https://www.cnblogs.com/wanglouxiaozi/p/15165578.html
Copyright © 2020-2023  润新知