~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/iio/iio_configfs.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 ===============================
  2 Industrial IIO configfs support
  3 ===============================
  4 
  5 1. Overview
  6 ===========
  7 
  8 Configfs is a filesystem-based manager of kernel objects. IIO uses some
  9 objects that could be easily configured using configfs (e.g.: devices,
 10 triggers).
 11 
 12 See Documentation/filesystems/configfs.rst for more information
 13 about how configfs works.
 14 
 15 2. Usage
 16 ========
 17 
 18 In order to use configfs support in IIO we need to select it at compile
 19 time via CONFIG_IIO_CONFIGFS config option.
 20 
 21 Then, mount the configfs filesystem (usually under /config directory)::
 22 
 23   $ mkdir /config
 24   $ mount -t configfs none /config
 25 
 26 At this point, all default IIO groups will be created and can be accessed
 27 under /config/iio. Next chapters will describe available IIO configuration
 28 objects.
 29 
 30 3. Software triggers
 31 ====================
 32 
 33 One of the IIO default configfs groups is the "triggers" group. It is
 34 automagically accessible when the configfs is mounted and can be found
 35 under /config/iio/triggers.
 36 
 37 IIO software triggers implementation offers support for creating multiple
 38 trigger types. A new trigger type is usually implemented as a separate
 39 kernel module following the interface in include/linux/iio/sw_trigger.h::
 40 
 41   /*
 42    * drivers/iio/trigger/iio-trig-sample.c
 43    * sample kernel module implementing a new trigger type
 44    */
 45   #include <linux/iio/sw_trigger.h>
 46 
 47 
 48   static struct iio_sw_trigger *iio_trig_sample_probe(const char *name)
 49   {
 50         /*
 51          * This allocates and registers an IIO trigger plus other
 52          * trigger type specific initialization.
 53          */
 54   }
 55 
 56   static int iio_trig_sample_remove(struct iio_sw_trigger *swt)
 57   {
 58         /*
 59          * This undoes the actions in iio_trig_sample_probe
 60          */
 61   }
 62 
 63   static const struct iio_sw_trigger_ops iio_trig_sample_ops = {
 64         .probe          = iio_trig_sample_probe,
 65         .remove         = iio_trig_sample_remove,
 66   };
 67 
 68   static struct iio_sw_trigger_type iio_trig_sample = {
 69         .name = "trig-sample",
 70         .owner = THIS_MODULE,
 71         .ops = &iio_trig_sample_ops,
 72   };
 73 
 74   module_iio_sw_trigger_driver(iio_trig_sample);
 75 
 76 Each trigger type has its own directory under /config/iio/triggers. Loading
 77 iio-trig-sample module will create 'trig-sample' trigger type directory
 78 /config/iio/triggers/trig-sample.
 79 
 80 We support the following interrupt sources (trigger types):
 81 
 82         * hrtimer, uses high resolution timers as interrupt source
 83 
 84 3.1 Hrtimer triggers creation and destruction
 85 ---------------------------------------------
 86 
 87 Loading iio-trig-hrtimer module will register hrtimer trigger types allowing
 88 users to create hrtimer triggers under /config/iio/triggers/hrtimer.
 89 
 90 e.g::
 91 
 92   $ mkdir /config/iio/triggers/hrtimer/instance1
 93   $ rmdir /config/iio/triggers/hrtimer/instance1
 94 
 95 Each trigger can have one or more attributes specific to the trigger type.
 96 
 97 3.2 "hrtimer" trigger types attributes
 98 --------------------------------------
 99 
100 "hrtimer" trigger type doesn't have any configurable attribute from /config dir.
101 It does introduce the sampling_frequency attribute to trigger directory.
102 That attribute sets the polling frequency in Hz, with mHz precision.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php