39 lines
1013 B
Plaintext
39 lines
1013 B
Plaintext
|
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.
|