一、相关文件:

/drivers/switch/switch_gpio.c

/drivers/switch/switch_class.c


二、节点创建流程:

1、在/sys/class/目录下创建“switch”类,创建完成后出现/sys/class/switch,具体实现如下:

struct class *switch_class;

switch_class = class_create(THIS_MODULE, "switch");


2、在/sys/class/switch目录下创建某个具体设备(比如“h2w”),创建完成后出现/sys/class/switch/h2w,具体实现如下:

struct switch_dev *sdev;

sdev->dev = device_create(switch_class, NULL,
MKDEV(0, sdev->index), NULL, sdev->name); // 其中sdev->name赋值为“h2w”


3、在/sys/class/switch/h2w目录下创建设备的属性文件(比如“name”和“state”),创建完成后出现/sys/class/switch/h2w/name/sys/class/switch/h2w/state,具体实现如下:

static DEVICE_ATTR(state, S_IRUGO | S_IWUSR, state_show, NULL); // state_show实现对state属性文件读操作
static DEVICE_ATTR(name, S_IRUGO | S_IWUSR, name_show, NULL);//name_show实现对name属性文件读操作

int ret;

ret = device_create_file(sdev->dev, &dev_attr_name);
ret = device_create_file(sdev->dev, &dev_attr_state);


三、节点创建关键函数:

1、class_create

该函数用于创建一个class;


2、device_create

/**
* device_create - 创建一个设备并将它注册到sysfs文件系统里
* @class: 指向class_create函数创建的class
* @parent: pointer to the parent struct device of this new device, if any
* @devt: the dev_t for the char device to be added
* @drvdata: the data to be added to the device for callbacks
* @fmt: 设备名称
*/
struct device *device_create(struct class *class, struct device *parent,
dev_t devt, void *drvdata, const char *fmt, ...);


3、device_create_file

/**
* device_create_file - 创建设备的属性文件
* @dev: 指定具体为哪个设备创建属性文件
* @attr: 该设备对应的属性描述
*/
int device_create_file(struct device *dev,
const struct device_attribute *attr);













更多相关文章

  1. 理解Android中的自定义属性
  2. Android的Button属性使用
  3. android property属性property_set()&& property_get() selinux
  4. Ubuntu连接android手机
  5. android activity启动过程分析
  6. 【Android(安卓)Developers Training】 95. 创建一个同步适配器
  7. react-native调用Android原生控件
  8. android 1.5 SDK 模拟器无法启动问题 “Failed to find an AVD m
  9. Android简明开发教程十七:Dialog 显示图像

随机推荐

  1. Android(安卓)多语言
  2. Android(安卓)播放Gif 动画
  3. 谷歌Android手机应用开发环境的搭建
  4. android的屏幕适配
  5. Android(安卓)系统源码-1:Android(安卓)系
  6. Android(安卓)UI控件之ToggleButton、Swi
  7. Android(安卓)Camera 系统框架分析
  8. Android社交类APP常用的动态消息发布通用
  9. Android应用程序与SurfaceFlinger服务的
  10. 【Android与iOS开发对比系列】之 回调机