From 1c349f4fd36e7f957217402f3a7f87031dc8a0b7 Mon Sep 17 00:00:00 2001 From: Mauro Carvalho Chehab Date: Tue, 18 Jun 2019 17:53:40 -0300 Subject: docs: iio: convert to ReST Rename the iio documentation files to ReST, add an index for them and adjust in order to produce a nice html output via the Sphinx build system. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Cameron --- Documentation/iio/ep93xx_adc.rst | 40 +++++++++++++++ Documentation/iio/ep93xx_adc.txt | 29 ----------- Documentation/iio/iio_configfs.rst | 101 +++++++++++++++++++++++++++++++++++++ Documentation/iio/iio_configfs.txt | 93 ---------------------------------- Documentation/iio/index.rst | 12 +++++ 5 files changed, 153 insertions(+), 122 deletions(-) create mode 100644 Documentation/iio/ep93xx_adc.rst delete mode 100644 Documentation/iio/ep93xx_adc.txt create mode 100644 Documentation/iio/iio_configfs.rst delete mode 100644 Documentation/iio/iio_configfs.txt create mode 100644 Documentation/iio/index.rst (limited to 'Documentation/iio') diff --git a/Documentation/iio/ep93xx_adc.rst b/Documentation/iio/ep93xx_adc.rst new file mode 100644 index 000000000000..4fd8dea3f6b8 --- /dev/null +++ b/Documentation/iio/ep93xx_adc.rst @@ -0,0 +1,40 @@ +============================== +Cirrus Logic EP93xx ADC driver +============================== + +1. Overview +=========== + +The driver is intended to work on both low-end (EP9301, EP9302) devices with +5-channel ADC and high-end (EP9307, EP9312, EP9315) devices with 10-channel +touchscreen/ADC module. + +2. Channel numbering +==================== + +Numbering scheme for channels 0..4 is defined in EP9301 and EP9302 datasheets. +EP9307, EP9312 and EP9312 have 3 channels more (total 8), but the numbering is +not defined. So the last three are numbered randomly, let's say. + +Assuming ep93xx_adc is IIO device0, you'd find the following entries under +/sys/bus/iio/devices/iio:device0/: + + +-----------------+---------------+ + | sysfs entry | ball/pin name | + +=================+===============+ + | in_voltage0_raw | YM | + +-----------------+---------------+ + | in_voltage1_raw | SXP | + +-----------------+---------------+ + | in_voltage2_raw | SXM | + +-----------------+---------------+ + | in_voltage3_raw | SYP | + +-----------------+---------------+ + | in_voltage4_raw | SYM | + +-----------------+---------------+ + | in_voltage5_raw | XP | + +-----------------+---------------+ + | in_voltage6_raw | XM | + +-----------------+---------------+ + | in_voltage7_raw | YP | + +-----------------+---------------+ diff --git a/Documentation/iio/ep93xx_adc.txt b/Documentation/iio/ep93xx_adc.txt deleted file mode 100644 index 23053e7817bd..000000000000 --- a/Documentation/iio/ep93xx_adc.txt +++ /dev/null @@ -1,29 +0,0 @@ -Cirrus Logic EP93xx ADC driver. - -1. Overview - -The driver is intended to work on both low-end (EP9301, EP9302) devices with -5-channel ADC and high-end (EP9307, EP9312, EP9315) devices with 10-channel -touchscreen/ADC module. - -2. Channel numbering - -Numbering scheme for channels 0..4 is defined in EP9301 and EP9302 datasheets. -EP9307, EP9312 and EP9312 have 3 channels more (total 8), but the numbering is -not defined. So the last three are numbered randomly, let's say. - -Assuming ep93xx_adc is IIO device0, you'd find the following entries under -/sys/bus/iio/devices/iio:device0/: - - +-----------------+---------------+ - | sysfs entry | ball/pin name | - +-----------------+---------------+ - | in_voltage0_raw | YM | - | in_voltage1_raw | SXP | - | in_voltage2_raw | SXM | - | in_voltage3_raw | SYP | - | in_voltage4_raw | SYM | - | in_voltage5_raw | XP | - | in_voltage6_raw | XM | - | in_voltage7_raw | YP | - +-----------------+---------------+ diff --git a/Documentation/iio/iio_configfs.rst b/Documentation/iio/iio_configfs.rst new file mode 100644 index 000000000000..ecbfdb3afef7 --- /dev/null +++ b/Documentation/iio/iio_configfs.rst @@ -0,0 +1,101 @@ +=============================== +Industrial IIO configfs support +=============================== + +1. Overview +=========== + +Configfs is a filesystem-based manager of kernel objects. IIO uses some +objects that could be easily configured using configfs (e.g.: devices, +triggers). + +See Documentation/filesystems/configfs/configfs.txt for more information +about how configfs works. + +2. Usage +======== + +In order to use configfs support in IIO we need to select it at compile +time via CONFIG_IIO_CONFIGFS config option. + +Then, mount the configfs filesystem (usually under /config directory):: + + $ mkdir /config + $ mount -t configfs none /config + +At this point, all default IIO groups will be created and can be accessed +under /config/iio. Next chapters will describe available IIO configuration +objects. + +3. Software triggers +==================== + +One of the IIO default configfs groups is the "triggers" group. It is +automagically accessible when the configfs is mounted and can be found +under /config/iio/triggers. + +IIO software triggers implementation offers support for creating multiple +trigger types. A new trigger type is usually implemented as a separate +kernel module following the interface in include/linux/iio/sw_trigger.h:: + + /* + * drivers/iio/trigger/iio-trig-sample.c + * sample kernel module implementing a new trigger type + */ + #include + + + static struct iio_sw_trigger *iio_trig_sample_probe(const char *name) + { + /* + * This allocates and registers an IIO trigger plus other + * trigger type specific initialization. + */ + } + + static int iio_trig_hrtimer_remove(struct iio_sw_trigger *swt) + { + /* + * This undoes the actions in iio_trig_sample_probe + */ + } + + static const struct iio_sw_trigger_ops iio_trig_sample_ops = { + .probe = iio_trig_sample_probe, + .remove = iio_trig_sample_remove, + }; + + static struct iio_sw_trigger_type iio_trig_sample = { + .name = "trig-sample", + .owner = THIS_MODULE, + .ops = &iio_trig_sample_ops, + }; + +module_iio_sw_trigger_driver(iio_trig_sample); + +Each trigger type has its own directory under /config/iio/triggers. Loading +iio-trig-sample module will create 'trig-sample' trigger type directory +/config/iio/triggers/trig-sample. + +We support the following interrupt sources (trigger types): + + * hrtimer, uses high resolution timers as interrupt source + +3.1 Hrtimer triggers creation and destruction +--------------------------------------------- + +Loading iio-trig-hrtimer module will register hrtimer trigger types allowing +users to create hrtimer triggers under /config/iio/triggers/hrtimer. + +e.g:: + + $ mkdir /config/iio/triggers/hrtimer/instance1 + $ rmdir /config/iio/triggers/hrtimer/instance1 + +Each trigger can have one or more attributes specific to the trigger type. + +3.2 "hrtimer" trigger types attributes +-------------------------------------- + +"hrtimer" trigger type doesn't have any configurable attribute from /config dir. +It does introduce the sampling_frequency attribute to trigger directory. diff --git a/Documentation/iio/iio_configfs.txt b/Documentation/iio/iio_configfs.txt deleted file mode 100644 index 4e5f101837a8..000000000000 --- a/Documentation/iio/iio_configfs.txt +++ /dev/null @@ -1,93 +0,0 @@ -Industrial IIO configfs support - -1. Overview - -Configfs is a filesystem-based manager of kernel objects. IIO uses some -objects that could be easily configured using configfs (e.g.: devices, -triggers). - -See Documentation/filesystems/configfs/configfs.txt for more information -about how configfs works. - -2. Usage - -In order to use configfs support in IIO we need to select it at compile -time via CONFIG_IIO_CONFIGFS config option. - -Then, mount the configfs filesystem (usually under /config directory): - -$ mkdir /config -$ mount -t configfs none /config - -At this point, all default IIO groups will be created and can be accessed -under /config/iio. Next chapters will describe available IIO configuration -objects. - -3. Software triggers - -One of the IIO default configfs groups is the "triggers" group. It is -automagically accessible when the configfs is mounted and can be found -under /config/iio/triggers. - -IIO software triggers implementation offers support for creating multiple -trigger types. A new trigger type is usually implemented as a separate -kernel module following the interface in include/linux/iio/sw_trigger.h: - -/* - * drivers/iio/trigger/iio-trig-sample.c - * sample kernel module implementing a new trigger type - */ -#include - - -static struct iio_sw_trigger *iio_trig_sample_probe(const char *name) -{ - /* - * This allocates and registers an IIO trigger plus other - * trigger type specific initialization. - */ -} - -static int iio_trig_hrtimer_remove(struct iio_sw_trigger *swt) -{ - /* - * This undoes the actions in iio_trig_sample_probe - */ -} - -static const struct iio_sw_trigger_ops iio_trig_sample_ops = { - .probe = iio_trig_sample_probe, - .remove = iio_trig_sample_remove, -}; - -static struct iio_sw_trigger_type iio_trig_sample = { - .name = "trig-sample", - .owner = THIS_MODULE, - .ops = &iio_trig_sample_ops, -}; - -module_iio_sw_trigger_driver(iio_trig_sample); - -Each trigger type has its own directory under /config/iio/triggers. Loading -iio-trig-sample module will create 'trig-sample' trigger type directory -/config/iio/triggers/trig-sample. - -We support the following interrupt sources (trigger types): - * hrtimer, uses high resolution timers as interrupt source - -3.1 Hrtimer triggers creation and destruction - -Loading iio-trig-hrtimer module will register hrtimer trigger types allowing -users to create hrtimer triggers under /config/iio/triggers/hrtimer. - -e.g: - -$ mkdir /config/iio/triggers/hrtimer/instance1 -$ rmdir /config/iio/triggers/hrtimer/instance1 - -Each trigger can have one or more attributes specific to the trigger type. - -3.2 "hrtimer" trigger types attributes - -"hrtimer" trigger type doesn't have any configurable attribute from /config dir. -It does introduce the sampling_frequency attribute to trigger directory. diff --git a/Documentation/iio/index.rst b/Documentation/iio/index.rst new file mode 100644 index 000000000000..0593dca89a94 --- /dev/null +++ b/Documentation/iio/index.rst @@ -0,0 +1,12 @@ +:orphan: + +============== +Industrial I/O +============== + +.. toctree:: + :maxdepth: 1 + + iio_configfs + + ep93xx_adc -- cgit