This patchset introduces IIO software triggers, offers a way of configuring them via configfs and adds the IIO hrtimer based interrupt source to be used with software triggers. The arhitecture is now split in 3 parts, to remove all IIO trigger specific parts from IIO configfs core: (1) IIO configfs - offers a generic way of creating IIO objects. So far there is one default group for triggers. (2) IIO software triggers - software trigger implementation. (3) IIO hrtimer trigger - is the first interrupt source for software triggers (with syfs to follow). Each trigger type can implement its own set of attributes. Also this patchset introduces configfs_(un)register_group to the configfs core in order to allow drivers to dynamically create groups on demand. Changes since v6: * implemented Lars-Peter's idea (https://lkml.org/lkml/2015/5/13/302) to switch from /config/iio/triggers/hrtimer-instance1 to /config/iio/triggers/instance1. Changes since v5: (after Lars comments) * the most important change is that we moved sampling_frequency attribute from configfs to trigger's directory in /sys. * couple of const added to strings * documentation to public API in sw_trigger.h * replace pr_err with WARN_ONCE in trigger_make_group to avoid spamming kernel log, but without leaving user clueless in case of errors. * we still need to decide if we get a real gain by adding min/max limits for sampling frequency in /config dir. Anyhow, this can be done in a later patch. * fix race in hrtimer_remove Changes since v4: * patch 1/4 - fixed "new line" nit in industrialio-sw-trigger.c - added license header in sw_trigger.h o * patch 2/4 - none * patch 3/4 - none * patch 4/4 - removed "Further work" chapter in iio_configfs.txt - added configfs-iio file in Documentation/ABI/testing Daniel Baluta (5): configfs: Allow dynamic group (un)registration iio: core: Introduce IIO configfs support iio: core: Introduce IIO software triggers iio: trigger: Introduce IIO hrtimer based trigger iio: Documentation: Add IIO configfs documentation Documentation/ABI/testing/configfs-iio | 20 ++++ Documentation/iio/iio_configfs.txt | 57 ++++++++++ drivers/iio/Kconfig | 16 +++ drivers/iio/Makefile | 2 + drivers/iio/industrialio-configfs.c | 116 ++++++++++++++++++++ drivers/iio/industrialio-sw-trigger.c | 119 ++++++++++++++++++++ drivers/iio/trigger/Kconfig | 10 ++ drivers/iio/trigger/Makefile | 2 + drivers/iio/trigger/iio-trig-hrtimer.c | 193 +++++++++++++++++++++++++++++++++ fs/configfs/dir.c | 39 ++++++- include/linux/configfs.h | 4 + include/linux/iio/sw_trigger.h | 99 +++++++++++++++++ 12 files changed, 675 insertions(+), 2 deletions(-) create mode 100644 Documentation/ABI/testing/configfs-iio create mode 100644 Documentation/iio/iio_configfs.txt create mode 100644 drivers/iio/industrialio-configfs.c create mode 100644 drivers/iio/industrialio-sw-trigger.c create mode 100644 drivers/iio/trigger/iio-trig-hrtimer.c create mode 100644 include/linux/iio/sw_trigger.h -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html