18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Industrial I/O configfs bits 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (c) 2015 Intel Corporation 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/configfs.h> 98c2ecf20Sopenharmony_ci#include <linux/module.h> 108c2ecf20Sopenharmony_ci#include <linux/init.h> 118c2ecf20Sopenharmony_ci#include <linux/kmod.h> 128c2ecf20Sopenharmony_ci#include <linux/slab.h> 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci#include <linux/iio/iio.h> 158c2ecf20Sopenharmony_ci#include <linux/iio/configfs.h> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistatic const struct config_item_type iio_root_group_type = { 188c2ecf20Sopenharmony_ci .ct_owner = THIS_MODULE, 198c2ecf20Sopenharmony_ci}; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_cistruct configfs_subsystem iio_configfs_subsys = { 228c2ecf20Sopenharmony_ci .su_group = { 238c2ecf20Sopenharmony_ci .cg_item = { 248c2ecf20Sopenharmony_ci .ci_namebuf = "iio", 258c2ecf20Sopenharmony_ci .ci_type = &iio_root_group_type, 268c2ecf20Sopenharmony_ci }, 278c2ecf20Sopenharmony_ci }, 288c2ecf20Sopenharmony_ci .su_mutex = __MUTEX_INITIALIZER(iio_configfs_subsys.su_mutex), 298c2ecf20Sopenharmony_ci}; 308c2ecf20Sopenharmony_ciEXPORT_SYMBOL(iio_configfs_subsys); 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_cistatic int __init iio_configfs_init(void) 338c2ecf20Sopenharmony_ci{ 348c2ecf20Sopenharmony_ci config_group_init(&iio_configfs_subsys.su_group); 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci return configfs_register_subsystem(&iio_configfs_subsys); 378c2ecf20Sopenharmony_ci} 388c2ecf20Sopenharmony_cimodule_init(iio_configfs_init); 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_cistatic void __exit iio_configfs_exit(void) 418c2ecf20Sopenharmony_ci{ 428c2ecf20Sopenharmony_ci configfs_unregister_subsystem(&iio_configfs_subsys); 438c2ecf20Sopenharmony_ci} 448c2ecf20Sopenharmony_cimodule_exit(iio_configfs_exit); 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ciMODULE_AUTHOR("Daniel Baluta <daniel.baluta@intel.com>"); 478c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("Industrial I/O configfs support"); 488c2ecf20Sopenharmony_ciMODULE_LICENSE("GPL v2"); 49