| IIO trigger drivers. |
| |
| Many triggers are provided by hardware that will also be registered as |
| an IIO device. Whilst this can create device specific complexities |
| such triggers are registered with the core in the same way as |
| stand-alone triggers. |
| |
| struct iio_trig *trig = iio_allocate_trigger(); |
| |
| allocates a trigger structure. The key elements to then fill in within |
| a driver are: |
| |
| trig->control_attrs |
| Any sysfs attributes needed to control parameters of the trigger |
| |
| trig->private_data |
| Device specific private data. |
| |
| trig->owner |
| Typically set to THIS_MODULE. Used to ensure correct |
| ownership of core allocated resources. |
| |
| trig->name |
| A unique name for the trigger. |
| |
| When these have been set call: |
| |
| iio_trigger_register(trig); |
| |
| to register the trigger with the core, making it available to trigger |
| consumers. |
| |
| |
| Trigger Consumers |
| |
| Currently triggers are only used for the filling of software ring |
| buffers and as such any device supporting INDIO_RING_TRIGGERED has the |
| consumer interface automatically created. |