【发布时间】:2019-03-01 04:06:34
【问题描述】:
环境:x86 / Ubuntu 14.04
我想获得类似的东西
&i2c0 {
eeprom: eeprom@50 {
compatible = "at,24c32";
reg = <0x50>;
};
};
但是因为在 x86 中没有可用的设备树,我遵循 Linux 内核中的i2c/instantiating-device 文档并使用“方法 4:从用户空间实例化”。
实例化过程:
- 加载 at24 驱动程序
- 加载 i2c-dev 驱动程序
-
实例化:
# echo eeprom 0x50 > /sys/bus/i2c/devices/i2c-0/new_device -
dmesg 中内核的响应:
i2c i2c-0: new_device: Instantiated device eeprom at 0x50 创建了一个目录“0-0050”。发现于
/sys/bus/i2c/devices/i2c-0/0-0050- 此目录包含多个文件,但其中没有名为“eeprom”的文件。
为什么没有创建“eeprom”文件?
附注:
目录包含:
root@peio-t52r:~/etxoh# ls -la /sys/bus/i2c/devices/i2c-0/0-0050
total 0
drwxr-xr-x 3 root root 0 sep 25 15:06 .
drwxr-xr-x 5 root root 0 sep 25 14:48 ..
-r--r--r-- 1 root root 4096 sep 25 15:06 modalias
-r--r--r-- 1 root root 4096 sep 25 15:06 name
drwxr-xr-x 2 root root 0 sep 25 15:06 power
lrwxrwxrwx 1 root root 0 sep 25 15:06 subsystem -> ../../../../../bus/i2c
-rw-r--r-- 1 root root 4096 sep 25 15:06 uevent
并且文件“名称”包含:
root@peio-t52r:~/etxoh# cat /sys/bus/i2c/devices/i2c-0/0-0050/name
eeprom
【问题讨论】:
-
IIRC eeprom 是旧版 EEPROM 驱动程序,不支持较新的芯片。您需要 24c32 提供 elixir.bootlin.com/linux/v4.20-rc1/source/drivers/misc/eeprom/…
标签: linux linux-kernel kernel-module i2c eeprom