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