1a13d5a24SMike Leach /* SPDX-License-Identifier: GPL-2.0-only */ 2a13d5a24SMike Leach /* 3a13d5a24SMike Leach * Coresight system configuration driver - support for configfs. 4a13d5a24SMike Leach */ 5a13d5a24SMike Leach 6a13d5a24SMike Leach #ifndef CORESIGHT_SYSCFG_CONFIGFS_H 7a13d5a24SMike Leach #define CORESIGHT_SYSCFG_CONFIGFS_H 8a13d5a24SMike Leach 9a13d5a24SMike Leach #include <linux/configfs.h> 10a13d5a24SMike Leach #include "coresight-syscfg.h" 11a13d5a24SMike Leach 12a13d5a24SMike Leach #define CSCFG_FS_SUBSYS_NAME "cs-syscfg" 13a13d5a24SMike Leach 14a13d5a24SMike Leach /* container for configuration view */ 15a13d5a24SMike Leach struct cscfg_fs_config { 16a13d5a24SMike Leach struct cscfg_config_desc *config_desc; 17a13d5a24SMike Leach struct config_group group; 18a13d5a24SMike Leach }; 19a13d5a24SMike Leach 20a13d5a24SMike Leach /* container for feature view */ 21a13d5a24SMike Leach struct cscfg_fs_feature { 22a13d5a24SMike Leach struct cscfg_feature_desc *feat_desc; 23a13d5a24SMike Leach struct config_group group; 24a13d5a24SMike Leach }; 25a13d5a24SMike Leach 26a13d5a24SMike Leach /* container for parameter view */ 27a13d5a24SMike Leach struct cscfg_fs_param { 28a13d5a24SMike Leach int param_idx; 29a13d5a24SMike Leach struct cscfg_feature_desc *feat_desc; 30a13d5a24SMike Leach struct config_group group; 31a13d5a24SMike Leach }; 32a13d5a24SMike Leach 33a13d5a24SMike Leach /* container for preset view */ 34a13d5a24SMike Leach struct cscfg_fs_preset { 35a13d5a24SMike Leach int preset_num; 36a13d5a24SMike Leach struct cscfg_config_desc *config_desc; 37a13d5a24SMike Leach struct config_group group; 38a13d5a24SMike Leach }; 39a13d5a24SMike Leach 40a13d5a24SMike Leach int cscfg_configfs_init(struct cscfg_manager *cscfg_mgr); 41a13d5a24SMike Leach void cscfg_configfs_release(struct cscfg_manager *cscfg_mgr); 42a13d5a24SMike Leach int cscfg_configfs_add_config(struct cscfg_config_desc *config_desc); 43a13d5a24SMike Leach int cscfg_configfs_add_feature(struct cscfg_feature_desc *feat_desc); 44*02bd588eSMike Leach void cscfg_configfs_del_config(struct cscfg_config_desc *config_desc); 45*02bd588eSMike Leach void cscfg_configfs_del_feature(struct cscfg_feature_desc *feat_desc); 46a13d5a24SMike Leach 47a13d5a24SMike Leach #endif /* CORESIGHT_SYSCFG_CONFIGFS_H */ 48