首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问i2c设备驱动程序节点

如何访问i2c设备驱动程序节点
EN

Stack Overflow用户
提问于 2011-05-19 19:12:10
回答 3查看 15.7K关注 1票数 1

情景1:

我有一个i2c芯片驱动程序作为linux内核的一部分。我可以从内核引导消息中验证i2c芯片驱动程序是否在内核中(我的芯片驱动程序是mma8450)

dmesg:

代码语言:javascript
复制
mma8450 0-001c: uevent

我也可以在(0x1c是芯片的i2c地址)中看到这个驱动程序。

代码语言:javascript
复制
cat /sys/bus/i2c/devices/0-001c/name
mma8450

我在/dev界面中看不到这个驱动节点。我的问题是,如何在/dev中创建此设备的节点,以便可以在用户程序中访问此设备?

情景2:

我创建了相同芯片驱动程序的模块,并且没有使其成为内核的一部分。我可以使用insmod mma8450加载这个模块,如何创建这个设备的节点,因为我没有它的主/次编号?(我在mma8450源代码中看不到分配给此驱动程序的主要和次要编号)

任何帮助我们都将不胜感激

问候

EN

回答 3

Stack Overflow用户

发布于 2013-05-02 00:10:32

加载内核模块:

modprobe i2c-dev

代码语言:javascript
复制
ls /dev/i2*

/dev/i2c-0  
/dev/i2c-10  
/dev/i2c-12  
/dev/i2c-14  
/dev/i2c-3  
/dev/i2c-5  
/dev/i2c-7  
/dev/i2c-9
/dev/i2c-1  
/dev/i2c-11  
/dev/i2c-13  
/dev/i2c-2   
/dev/i2c-4  
/dev/i2c-6  
/dev/i2c-8
票数 4
EN

Stack Overflow用户

发布于 2011-06-03 05:52:11

查找设备的主要/次要编号:

代码语言:javascript
复制
cat /proc/devices

您应该看到一个用于i2c总线的设备和一个用于i2c设备本身的设备。

为i2c设备驱动程序创建设备节点:

代码语言:javascript
复制
mknod /dev/[device name] [type] [major] [minor]
票数 3
EN

Stack Overflow用户

发布于 2019-01-29 21:34:32

这是三轴加速度计。Linux将其注册为input_polled_dev类型的驱动程序。

您可以使用/dev/i2c-x总线(控制器)设备节点来访问它,但是直接从用户空间使用它没有多大意义。

不应使用/dev设备节点来使用I2C客户端。它们应该注册到内核I2C框架中,并通过更高层的API使用。

有一些示例程序可以使用/dev/i2c-X总线设备节点从用户空间读取类似的MMA7455L x,y,z寄存器。

Reading the Accelerometer With I²C

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

https://stackoverflow.com/questions/6057726

复制
相关文章

相似问题

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