/* SPDX-License-Identifier: GPL-2.0 */ /* * Copyright (c) 2021 MediaTek Inc. * Author: Gene Chen */ #ifndef _GENERIC_DEBUGFS_H #define _GENERIC_DEBUGFS_H #include struct dbg_internal { struct dentry *rt_root; struct dentry *ic_root; bool rt_dir_create; struct mutex io_lock; u16 reg; u16 size; u16 data_buffer_size; void *data_buffer; bool access_lock; }; struct dbg_info { const char *dirname; const char *devname; const char *typestr; void *io_drvdata; int (*io_read)(void *drvdata, u16 reg, void *val, u16 size); int (*io_write)(void *drvdata, u16 reg, const void *val, u16 size); struct dbg_internal internal; }; #if IS_ENABLED(CONFIG_MTK_SUBPMIC_DEBUGFS) extern int generic_debugfs_register(struct dbg_info *di); extern void generic_debugfs_unregister(struct dbg_info *di); #else static inline int generic_debugfs_register(struct dbg_info *di) { return 0; } static inline void generic_debugfs_unregister(struct dbg_info *di) {} #endif /* CONFIG_DEBUG_FS */ #endif /* _GENERIC_DEBUGFS_H */