sys_value.h
sys_value.c
unzip sys_value.zip && rm sys_value.zip
如果要在 node-i2c.c 中 使用这个 zip 中提供的函数
1.
讲 sys_value 文件夹中的 sys_value.c 和 sys_value.h 拷贝到 node-i2c.c 同级目录中
2.
修改node-i2c.c所在目录的Makefile
obj-$(CONFIG_NODE_I2C) := node-i2c.o
为
obj-$(CONFIG_NODE_I2C) := node-i2c.o sys_value.o
3.
在 node-i2c.c 中 添加
#include "sys_value.h"
4.
在 node-i2c.c probe 中 添加
create_sys_group(&client->dev);
在 node-i2c.c remove 中 添加
remove_sys_group(&client->dev);
注意参数类型 struct device *
默认 在 device 下面生成 sys node
打开sys_value.h 中的SYS_IN_VALUE,就在 /sys/value 下生成 node
出口参数变为无参(注意)
定义 SYS_IN_VALUE 的时候不可以用两次(注意)
sysfs_create_link()在kobj目录下创建指向target目录的软链接,name为软链接文件名称。
sysfs_create_link_nowarn()与sysfs_create_link()功能相同,只是在软链接文件已存在时不会出现警告。
1.
retval = sysfs_create_link(NULL, &client->dev.kobj, "value_link");
if (retval < 0) {
pr_err("Failed to create link!");
return -ENOMEM;
}
2.
sysfs_remove_link(NULL, "value_link");