Message ID | 1445614411-533-3-git-send-email-daniel.baluta@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Tested-by: Matt Ranostay <matt.ranostay@intel.com> On Fri, Oct 23, 2015 at 8:33 AM, Daniel Baluta <daniel.baluta@intel.com> wrote: > This patch creates the IIO configfs root group. The group > will appear under <mount-point>/iio/, usually /config/iio. > > We introduce configfs support in IIO in order to be able to easily > create IIO objects from userspace. The first supported IIO objects > are triggers introduced with next patches. > > Signed-off-by: Daniel Baluta <daniel.baluta@intel.com> > --- > drivers/iio/Kconfig | 8 ++++++ > drivers/iio/Makefile | 1 + > drivers/iio/industrialio-configfs.c | 50 +++++++++++++++++++++++++++++++++++++ > 3 files changed, 59 insertions(+) > create mode 100644 drivers/iio/industrialio-configfs.c > > diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig > index 66792e7..d0f1ddb 100644 > --- a/drivers/iio/Kconfig > +++ b/drivers/iio/Kconfig > @@ -22,6 +22,14 @@ if IIO_BUFFER > source "drivers/iio/buffer/Kconfig" > endif # IIO_BUFFER > > +config IIO_CONFIGFS > + tristate "Enable IIO configuration via configfs" > + select CONFIGFS_FS > + help > + This allows configuring various IIO bits through configfs > + (e.g. software triggers). For more info see > + Documentation/iio/iio_configfs.txt. > + > config IIO_TRIGGER > bool "Enable triggered sampling support" > help > diff --git a/drivers/iio/Makefile b/drivers/iio/Makefile > index aeca726..4e8ac82 100644 > --- a/drivers/iio/Makefile > +++ b/drivers/iio/Makefile > @@ -7,6 +7,7 @@ industrialio-y := industrialio-core.o industrialio-event.o inkern.o > industrialio-$(CONFIG_IIO_BUFFER) += industrialio-buffer.o > industrialio-$(CONFIG_IIO_TRIGGER) += industrialio-trigger.o > > +obj-$(CONFIG_IIO_CONFIGFS) += industrialio-configfs.o > obj-$(CONFIG_IIO_TRIGGERED_EVENT) += industrialio-triggered-event.o > > obj-y += accel/ > diff --git a/drivers/iio/industrialio-configfs.c b/drivers/iio/industrialio-configfs.c > new file mode 100644 > index 0000000..83563dd > --- /dev/null > +++ b/drivers/iio/industrialio-configfs.c > @@ -0,0 +1,50 @@ > +/* > + * Industrial I/O configfs bits > + * > + * Copyright (c) 2015 Intel Corporation > + * > + * This program is free software; you can redistribute it and/or modify it > + * under the terms of the GNU General Public License version 2 as published by > + * the Free Software Foundation. > + */ > + > +#include <linux/configfs.h> > +#include <linux/module.h> > +#include <linux/init.h> > +#include <linux/kmod.h> > +#include <linux/slab.h> > + > +#include <linux/iio/iio.h> > + > +static struct config_item_type iio_root_group_type = { > + .ct_owner = THIS_MODULE, > +}; > + > +struct configfs_subsystem iio_configfs_subsys = { > + .su_group = { > + .cg_item = { > + .ci_namebuf = "iio", > + .ci_type = &iio_root_group_type, > + }, > + }, > + .su_mutex = __MUTEX_INITIALIZER(iio_configfs_subsys.su_mutex), > +}; > +EXPORT_SYMBOL(iio_configfs_subsys); > + > +static int __init iio_configfs_init(void) > +{ > + config_group_init(&iio_configfs_subsys.su_group); > + > + return configfs_register_subsystem(&iio_configfs_subsys); > +} > +module_init(iio_configfs_init); > + > +static void __exit iio_configfs_exit(void) > +{ > + configfs_unregister_subsystem(&iio_configfs_subsys); > +} > +module_exit(iio_configfs_exit); > + > +MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com>"); > +MODULE_DESCRIPTION("Industrial I/O configfs support"); > +MODULE_LICENSE("GPL v2"); > -- > 1.9.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/iio/Kconfig b/drivers/iio/Kconfig index 66792e7..d0f1ddb 100644 --- a/drivers/iio/Kconfig +++ b/drivers/iio/Kconfig @@ -22,6 +22,14 @@ if IIO_BUFFER source "drivers/iio/buffer/Kconfig" endif # IIO_BUFFER +config IIO_CONFIGFS + tristate "Enable IIO configuration via configfs" + select CONFIGFS_FS + help + This allows configuring various IIO bits through configfs + (e.g. software triggers). For more info see + Documentation/iio/iio_configfs.txt. + config IIO_TRIGGER bool "Enable triggered sampling support" help diff --git a/drivers/iio/Makefile b/drivers/iio/Makefile index aeca726..4e8ac82 100644 --- a/drivers/iio/Makefile +++ b/drivers/iio/Makefile @@ -7,6 +7,7 @@ industrialio-y := industrialio-core.o industrialio-event.o inkern.o industrialio-$(CONFIG_IIO_BUFFER) += industrialio-buffer.o industrialio-$(CONFIG_IIO_TRIGGER) += industrialio-trigger.o +obj-$(CONFIG_IIO_CONFIGFS) += industrialio-configfs.o obj-$(CONFIG_IIO_TRIGGERED_EVENT) += industrialio-triggered-event.o obj-y += accel/ diff --git a/drivers/iio/industrialio-configfs.c b/drivers/iio/industrialio-configfs.c new file mode 100644 index 0000000..83563dd --- /dev/null +++ b/drivers/iio/industrialio-configfs.c @@ -0,0 +1,50 @@ +/* + * Industrial I/O configfs bits + * + * Copyright (c) 2015 Intel Corporation + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include <linux/configfs.h> +#include <linux/module.h> +#include <linux/init.h> +#include <linux/kmod.h> +#include <linux/slab.h> + +#include <linux/iio/iio.h> + +static struct config_item_type iio_root_group_type = { + .ct_owner = THIS_MODULE, +}; + +struct configfs_subsystem iio_configfs_subsys = { + .su_group = { + .cg_item = { + .ci_namebuf = "iio", + .ci_type = &iio_root_group_type, + }, + }, + .su_mutex = __MUTEX_INITIALIZER(iio_configfs_subsys.su_mutex), +}; +EXPORT_SYMBOL(iio_configfs_subsys); + +static int __init iio_configfs_init(void) +{ + config_group_init(&iio_configfs_subsys.su_group); + + return configfs_register_subsystem(&iio_configfs_subsys); +} +module_init(iio_configfs_init); + +static void __exit iio_configfs_exit(void) +{ + configfs_unregister_subsystem(&iio_configfs_subsys); +} +module_exit(iio_configfs_exit); + +MODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com>"); +MODULE_DESCRIPTION("Industrial I/O configfs support"); +MODULE_LICENSE("GPL v2");
This patch creates the IIO configfs root group. The group will appear under <mount-point>/iio/, usually /config/iio. We introduce configfs support in IIO in order to be able to easily create IIO objects from userspace. The first supported IIO objects are triggers introduced with next patches. Signed-off-by: Daniel Baluta <daniel.baluta@intel.com> --- drivers/iio/Kconfig | 8 ++++++ drivers/iio/Makefile | 1 + drivers/iio/industrialio-configfs.c | 50 +++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 drivers/iio/industrialio-configfs.c