1.. include:: ../disclaimer-zh_CN.rst
2
3:Original: :doc:`../../../iio/iio_configfs`
4:Translator: Yanteng Si <siyanteng@loongson.cn>
5
6.. _cn_iio_configfs:
7
8
9=====================
10工业 IIO configfs支持
11=====================
12
131. 概述
14=======
15
16Configfs是一种内核对象的基于文件系统的管理系统,IIO使用一些可以通过
17configfs轻松配置的对象(例如:设备,触发器)。
18
19关于configfs是如何运行的,请查阅Documentation/filesystems/configfs.rst
20了解更多信息。
21
222. 用法
23=======
24为了使configfs支持IIO,我们需要在编译时选中config的CONFIG_IIO_CONFIGFS
25选项。
26
27然后,挂载configfs文件系统(通常在 /config directory目录下)::
28
29  $ mkdir/config
30  $ mount -t configfs none/config
31
32此时,将创建所有默认IIO组,并可以在/ config / iio下对其进行访问。 下一章
33将介绍可用的IIO配置对象。
34
353. 软件触发器
36=============
37
38IIO默认configfs组之一是“触发器”组。 挂载configfs后可以自动访问它,并且可
39以在/config/iio/triggers下找到。
40
41IIO软件触发器为创建多种触发器类型提供了支持。 通常在include/linux/iio
42/sw_trigger.h:中的接口下将新的触发器类型实现为单独的内核模块:
43::
44
45  /*
46   * drivers/iio/trigger/iio-trig-sample.c
47   * 一种新触发器类型的内核模块实例
48   */
49  #include <linux/iio/sw_trigger.h>
50
51
52  static struct iio_sw_trigger *iio_trig_sample_probe(const char *name)
53  {
54	/*
55	 * 这将分配并注册一个IIO触发器以及其他触发器类型特性的初始化。
56	 */
57  }
58
59  static int iio_trig_sample_remove(struct iio_sw_trigger *swt)
60  {
61	/*
62	 * 这会废弃iio_trig_sample_probe中的操作
63	 */
64  }
65
66  static const struct iio_sw_trigger_ops iio_trig_sample_ops = {
67	.probe		= iio_trig_sample_probe,
68	.remove		= iio_trig_sample_remove,
69  };
70
71  static struct iio_sw_trigger_type iio_trig_sample = {
72	.name = "trig-sample",
73	.owner = THIS_MODULE,
74	.ops = &iio_trig_sample_ops,
75  };
76
77module_iio_sw_trigger_driver(iio_trig_sample);
78
79每种触发器类型在/config/iio/triggers下都有其自己的目录。 加载iio-trig-sample
80模块将创建“ trig-sample”触发器类型目录/config/iio/triggers/trig-sample.
81
82我们支持以下中断源(触发器类型)
83
84	* hrtimer,使用高分辨率定时器作为中断源
85
863.1 Hrtimer触发器创建与销毁
87---------------------------
88
89加载iio-trig-hrtimer模块将注册hrtimer触发器类型,从而允许用户在
90/config/iio/triggers/hrtimer下创建hrtimer触发器。
91
92例如::
93
94  $ mkdir /config/iio/triggers/hrtimer/instance1
95  $ rmdir /config/iio/triggers/hrtimer/instance1
96
97每个触发器可以具有一个或多个独特的触发器类型的属性。
98
993.2 "hrtimer" 触发器类型属性
100----------------------------
101
102"hrtimer”触发器类型没有来自/config dir的任何可配置属性。
103