xref: /linux/Documentation/translations/zh_CN/iio/iio_configfs.rst (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1452f81edSYanteng Si.. include:: ../disclaimer-zh_CN.rst
2452f81edSYanteng Si
38137a49eSYanteng Si:Original: Documentation/iio/iio_configfs.rst
48137a49eSYanteng Si
58137a49eSYanteng Si:翻译:
68137a49eSYanteng Si
78137a49eSYanteng Si 司延腾 Yanteng Si <siyanteng@loongson.cn>
8452f81edSYanteng Si
9452f81edSYanteng Si.. _cn_iio_configfs:
10452f81edSYanteng Si
11452f81edSYanteng Si=====================
12452f81edSYanteng Si工业 IIO configfs支持
13452f81edSYanteng Si=====================
14452f81edSYanteng Si
15452f81edSYanteng Si1. 概述
16452f81edSYanteng Si=======
17452f81edSYanteng Si
18452f81edSYanteng SiConfigfs是一种内核对象的基于文件系统的管理系统,IIO使用一些可以通过
19452f81edSYanteng Siconfigfs轻松配置的对象(例如:设备,触发器)。
20452f81edSYanteng Si
21452f81edSYanteng Si关于configfs是如何运行的,请查阅Documentation/filesystems/configfs.rst
22452f81edSYanteng Si了解更多信息。
23452f81edSYanteng Si
24452f81edSYanteng Si2. 用法
25452f81edSYanteng Si=======
26452f81edSYanteng Si为了使configfs支持IIO,我们需要在编译时选中config的CONFIG_IIO_CONFIGFS
27452f81edSYanteng Si选项。
28452f81edSYanteng Si
29452f81edSYanteng Si然后,挂载configfs文件系统(通常在 /config directory目录下)::
30452f81edSYanteng Si
31452f81edSYanteng Si  $ mkdir/config
32452f81edSYanteng Si  $ mount -t configfs none/config
33452f81edSYanteng Si
34452f81edSYanteng Si此时,将创建所有默认IIO组,并可以在/ config / iio下对其进行访问。 下一章
35452f81edSYanteng Si将介绍可用的IIO配置对象。
36452f81edSYanteng Si
37452f81edSYanteng Si3. 软件触发器
38452f81edSYanteng Si=============
39452f81edSYanteng Si
40452f81edSYanteng SiIIO默认configfs组之一是“触发器”组。挂载configfs后可以自动访问它,并且可
41452f81edSYanteng Si以在/config/iio/triggers下找到。
42452f81edSYanteng Si
43452f81edSYanteng SiIIO软件触发器为创建多种触发器类型提供了支持。通常在include/linux/iio
44452f81edSYanteng Si/sw_trigger.h:中的接口下将新的触发器类型实现为单独的内核模块:
45452f81edSYanteng Si::
46452f81edSYanteng Si
47452f81edSYanteng Si  /*
48452f81edSYanteng Si   * drivers/iio/trigger/iio-trig-sample.c
49452f81edSYanteng Si   * 一种新触发器类型的内核模块实例
50452f81edSYanteng Si   */
51452f81edSYanteng Si  #include <linux/iio/sw_trigger.h>
52452f81edSYanteng Si
53452f81edSYanteng Si
54452f81edSYanteng Si  static struct iio_sw_trigger *iio_trig_sample_probe(const char *name)
55452f81edSYanteng Si  {
56452f81edSYanteng Si	/*
57452f81edSYanteng Si	 * 这将分配并注册一个IIO触发器以及其他触发器类型特性的初始化。
58452f81edSYanteng Si	 */
59452f81edSYanteng Si  }
60452f81edSYanteng Si
61452f81edSYanteng Si  static int iio_trig_sample_remove(struct iio_sw_trigger *swt)
62452f81edSYanteng Si  {
63452f81edSYanteng Si	/*
64452f81edSYanteng Si	 * 这会废弃iio_trig_sample_probe中的操作
65452f81edSYanteng Si	 */
66452f81edSYanteng Si  }
67452f81edSYanteng Si
68452f81edSYanteng Si  static const struct iio_sw_trigger_ops iio_trig_sample_ops = {
69452f81edSYanteng Si	.probe		= iio_trig_sample_probe,
70452f81edSYanteng Si	.remove		= iio_trig_sample_remove,
71452f81edSYanteng Si  };
72452f81edSYanteng Si
73452f81edSYanteng Si  static struct iio_sw_trigger_type iio_trig_sample = {
74452f81edSYanteng Si	.name = "trig-sample",
75452f81edSYanteng Si	.owner = THIS_MODULE,
76452f81edSYanteng Si	.ops = &iio_trig_sample_ops,
77452f81edSYanteng Si  };
78452f81edSYanteng Si
79452f81edSYanteng Si  module_iio_sw_trigger_driver(iio_trig_sample);
80452f81edSYanteng Si
81452f81edSYanteng Si每种触发器类型在/config/iio/triggers下都有其自己的目录。加载iio-trig-sample
82452f81edSYanteng Si模块将创建“trig-sample”触发器类型目录/config/iio/triggers/trig-sample.
83452f81edSYanteng Si
84452f81edSYanteng Si我们支持以下中断源(触发器类型)
85452f81edSYanteng Si
86452f81edSYanteng Si	* hrtimer,使用高分辨率定时器作为中断源
87452f81edSYanteng Si
88452f81edSYanteng Si3.1 Hrtimer触发器创建与销毁
89452f81edSYanteng Si---------------------------
90452f81edSYanteng Si
91452f81edSYanteng Si加载iio-trig-hrtimer模块将注册hrtimer触发器类型,从而允许用户在
92452f81edSYanteng Si/config/iio/triggers/hrtimer下创建hrtimer触发器。
93452f81edSYanteng Si
94452f81edSYanteng Si例如::
95452f81edSYanteng Si
96452f81edSYanteng Si  $ mkdir /config/iio/triggers/hrtimer/instance1
97452f81edSYanteng Si  $ rmdir /config/iio/triggers/hrtimer/instance1
98452f81edSYanteng Si
99452f81edSYanteng Si每个触发器可以具有一个或多个独特的触发器类型的属性。
100452f81edSYanteng Si
101452f81edSYanteng Si3.2 "hrtimer" 触发器类型属性
102452f81edSYanteng Si----------------------------
103452f81edSYanteng Si
104452f81edSYanteng Si"hrtimer”触发器类型没有来自/config dir的任何可配置属性。
105*659797dcSYanteng Si它确实引入了触发目录的sampling_frequency属性。
106*659797dcSYanteng Si该属性以Hz为单位设置轮询频率,精度为mHz。