xref: /openbmc/linux/lib/842/842_debugfs.h (revision 0898782247ae533d1f4e47a06bc5d4870931b284)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
22da572c9SDan Streetman 
32da572c9SDan Streetman #ifndef __842_DEBUGFS_H__
42da572c9SDan Streetman #define __842_DEBUGFS_H__
52da572c9SDan Streetman 
62da572c9SDan Streetman #include <linux/debugfs.h>
72da572c9SDan Streetman 
82da572c9SDan Streetman static bool sw842_template_counts;
92da572c9SDan Streetman module_param_named(template_counts, sw842_template_counts, bool, 0444);
102da572c9SDan Streetman 
112da572c9SDan Streetman static atomic_t template_count[OPS_MAX], template_repeat_count,
122da572c9SDan Streetman 	template_zeros_count, template_short_data_count, template_end_count;
132da572c9SDan Streetman 
142da572c9SDan Streetman static struct dentry *sw842_debugfs_root;
152da572c9SDan Streetman 
sw842_debugfs_create(void)162da572c9SDan Streetman static int __init sw842_debugfs_create(void)
172da572c9SDan Streetman {
182da572c9SDan Streetman 	umode_t m = S_IRUGO | S_IWUSR;
192da572c9SDan Streetman 	int i;
202da572c9SDan Streetman 
212da572c9SDan Streetman 	if (!debugfs_initialized())
222da572c9SDan Streetman 		return -ENODEV;
232da572c9SDan Streetman 
242da572c9SDan Streetman 	sw842_debugfs_root = debugfs_create_dir(MODULE_NAME, NULL);
252da572c9SDan Streetman 
262da572c9SDan Streetman 	for (i = 0; i < ARRAY_SIZE(template_count); i++) {
272da572c9SDan Streetman 		char name[32];
282da572c9SDan Streetman 
292da572c9SDan Streetman 		snprintf(name, 32, "template_%02x", i);
302da572c9SDan Streetman 		debugfs_create_atomic_t(name, m, sw842_debugfs_root,
312da572c9SDan Streetman 					&template_count[i]);
322da572c9SDan Streetman 	}
332da572c9SDan Streetman 	debugfs_create_atomic_t("template_repeat", m, sw842_debugfs_root,
342da572c9SDan Streetman 				&template_repeat_count);
352da572c9SDan Streetman 	debugfs_create_atomic_t("template_zeros", m, sw842_debugfs_root,
362da572c9SDan Streetman 				&template_zeros_count);
372da572c9SDan Streetman 	debugfs_create_atomic_t("template_short_data", m, sw842_debugfs_root,
382da572c9SDan Streetman 				&template_short_data_count);
392da572c9SDan Streetman 	debugfs_create_atomic_t("template_end", m, sw842_debugfs_root,
402da572c9SDan Streetman 				&template_end_count);
412da572c9SDan Streetman 
422da572c9SDan Streetman 	return 0;
432da572c9SDan Streetman }
442da572c9SDan Streetman 
sw842_debugfs_remove(void)452da572c9SDan Streetman static void __exit sw842_debugfs_remove(void)
462da572c9SDan Streetman {
472da572c9SDan Streetman 	debugfs_remove_recursive(sw842_debugfs_root);
482da572c9SDan Streetman }
492da572c9SDan Streetman 
502da572c9SDan Streetman #endif
51