1 ================= 2 Triggered Buffers 3 ================= 4 5 Now that we know what buffers and triggers are 6 7 IIO triggered buffer setup 8 ========================== 9 10 * :c:func:`iio_triggered_buffer_setup` — Set 11 * :c:func:`iio_triggered_buffer_cleanup` — F 12 :c:func:`iio_triggered_buffer_setup` 13 * struct iio_buffer_setup_ops — buffer setup 14 15 A typical triggered buffer setup looks like th 16 17 const struct iio_buffer_setup_ops sensor_b 18 .preenable = sensor_buffer_preenable, 19 .postenable = sensor_buffer_postenable 20 .postdisable = sensor_buffer_postdisabl 21 .predisable = sensor_buffer_predisable 22 }; 23 24 irqreturn_t sensor_iio_pollfunc(int irq, v 25 { 26 pf->timestamp = iio_get_time_ns((struc 27 return IRQ_WAKE_THREAD; 28 } 29 30 irqreturn_t sensor_trigger_handler(int irq 31 { 32 u16 buf[8]; 33 int i = 0; 34 35 /* read data for each active channel * 36 for_each_set_bit(bit, active_scan_mask 37 buf[i++] = sensor_get_data(bit) 38 39 iio_push_to_buffers_with_timestamp(ind 40 41 iio_trigger_notify_done(trigger); 42 return IRQ_HANDLED; 43 } 44 45 /* setup triggered buffer, usually in prob 46 iio_triggered_buffer_setup(indio_dev, sens 47 sensor_trigger_ 48 sensor_buffer_s 49 50 The important things to notice here are: 51 52 * :c:type:`iio_buffer_setup_ops`, the buffer s 53 predefined points in the buffer configuratio 54 after disable). If not specified, the IIO co 55 iio_triggered_buffer_setup_ops. 56 * **sensor_iio_pollfunc**, the function that w 57 function. It should do as little processing 58 interrupt context. The most common operation 59 timestamp and for this reason one can use th 60 :c:func:`iio_pollfunc_store_time` function. 61 * **sensor_trigger_handler**, the function tha 62 the poll function. This runs in the context 63 processing takes place here. It usually read 64 stores it in the internal buffer together wi 65 top half. 66 67 More details 68 ============ 69 .. kernel-doc:: drivers/iio/buffer/industriali
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.