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; 18*7ebd0ec6SMike Leach bool active; 19*7ebd0ec6SMike Leach int preset; 20a13d5a24SMike Leach }; 21a13d5a24SMike Leach 22a13d5a24SMike Leach /* container for feature view */ 23a13d5a24SMike Leach struct cscfg_fs_feature { 24a13d5a24SMike Leach struct cscfg_feature_desc *feat_desc; 25a13d5a24SMike Leach struct config_group group; 26a13d5a24SMike Leach }; 27a13d5a24SMike Leach 28a13d5a24SMike Leach /* container for parameter view */ 29a13d5a24SMike Leach struct cscfg_fs_param { 30a13d5a24SMike Leach int param_idx; 31a13d5a24SMike Leach struct cscfg_feature_desc *feat_desc; 32a13d5a24SMike Leach struct config_group group; 33a13d5a24SMike Leach }; 34a13d5a24SMike Leach 35a13d5a24SMike Leach /* container for preset view */ 36a13d5a24SMike Leach struct cscfg_fs_preset { 37a13d5a24SMike Leach int preset_num; 38a13d5a24SMike Leach struct cscfg_config_desc *config_desc; 39a13d5a24SMike Leach struct config_group group; 40a13d5a24SMike Leach }; 41a13d5a24SMike Leach 42a13d5a24SMike Leach int cscfg_configfs_init(struct cscfg_manager *cscfg_mgr); 43a13d5a24SMike Leach void cscfg_configfs_release(struct cscfg_manager *cscfg_mgr); 44a13d5a24SMike Leach int cscfg_configfs_add_config(struct cscfg_config_desc *config_desc); 45a13d5a24SMike Leach int cscfg_configfs_add_feature(struct cscfg_feature_desc *feat_desc); 4602bd588eSMike Leach void cscfg_configfs_del_config(struct cscfg_config_desc *config_desc); 4702bd588eSMike Leach void cscfg_configfs_del_feature(struct cscfg_feature_desc *feat_desc); 48a13d5a24SMike Leach 49a13d5a24SMike Leach #endif /* CORESIGHT_SYSCFG_CONFIGFS_H */ 50