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

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/iio/triggers.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/driver-api/iio/triggers.rst (Version linux-6.12-rc7) and /Documentation/driver-api/iio/triggers.rst (Version linux-4.10.17)


  1 ========                                          
  2 Triggers                                          
  3 ========                                          
  4                                                   
  5 * struct iio_trigger — industrial I/O trigge    
  6 * :c:func:`devm_iio_trigger_alloc` — Resourc    
  7 * :c:func:`devm_iio_trigger_register` — Reso    
  8   iio_trigger_unregister                          
  9 * :c:func:`iio_trigger_validate_own_device` †   
 10   device belong to the same device                
 11                                                   
 12 In many situations it is useful for a driver t    
 13 on some external event (trigger) as opposed to    
 14 An IIO trigger can be provided by a device dri    
 15 based on hardware generated events (e.g. data     
 16 provided by a separate driver from an independ    
 17 line connected to some external system, timer     
 18 a specific file in sysfs). A trigger may initi    
 19 sensors and also it may be completely unrelate    
 20                                                   
 21 IIO trigger sysfs interface                       
 22 ===========================                       
 23                                                   
 24 There are two locations in sysfs related to tr    
 25                                                   
 26 * :file:`/sys/bus/iio/devices/trigger{Y}/*`, t    
 27   IIO trigger is registered with the IIO core     
 28   with index Y.                                   
 29   Because triggers can be very different depen    
 30   standard attributes that we can describe her    
 31                                                   
 32   * :file:`name`, trigger name that can be lat    
 33     device.                                       
 34   * :file:`sampling_frequency`, some timer bas    
 35     specify the frequency for trigger calls.      
 36                                                   
 37 * :file:`/sys/bus/iio/devices/iio:device{X}/tr    
 38   created once the device supports a triggered    
 39   trigger with our device by writing the trigg    
 40   :file:`current_trigger` file.                   
 41                                                   
 42 IIO trigger setup                                 
 43 =================                                 
 44                                                   
 45 Let's see a simple example of how to setup a t    
 46                                                   
 47       struct iio_trigger_ops trigger_ops = {      
 48           .set_trigger_state = sample_trigger_    
 49           .validate_device = sample_validate_d    
 50       }                                           
 51                                                   
 52       struct iio_trigger *trig;                   
 53                                                   
 54       /* first, allocate memory for our trigge    
 55       trig = iio_trigger_alloc(dev, "trig-%s-%    
 56                                                   
 57       /* setup trigger operations field */        
 58       trig->ops = &trigger_ops;                   
 59                                                   
 60       /* now register the trigger with the IIO    
 61       iio_trigger_register(trig);                 
 62                                                   
 63 IIO trigger ops                                   
 64 ===============                                   
 65                                                   
 66 * struct iio_trigger_ops — operations struct    
 67                                                   
 68 Notice that a trigger has a set of operations     
 69                                                   
 70 * :file:`set_trigger_state`, switch the trigge    
 71 * :file:`validate_device`, function to validat    
 72   trigger gets changed.                           
 73                                                   
 74 More details                                      
 75 ============                                      
 76 .. kernel-doc:: include/linux/iio/trigger.h       
 77 .. kernel-doc:: drivers/iio/industrialio-trigg    
 78    :export:                                       
                                                      

~ [ 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