[][openwrt][mt7988][tops][add cpu utilization fetching]

[Description]
Add cpu utilization fetching and refactor debugfs of trm and tops

Via reading debugfs file(/sys/kernel/debug/tops/trm/cpu-utilization)
to fetch each core's cpu utilization

[Release-log]
N/A

Change-Id: Iff4c965294c3054a54ba92263191856cd5c722c7
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7907085
diff --git a/package-21.02/kernel/tops/src/inc/debugfs.h b/package-21.02/kernel/tops/src/inc/debugfs.h
new file mode 100644
index 0000000..ea1847c
--- /dev/null
+++ b/package-21.02/kernel/tops/src/inc/debugfs.h
@@ -0,0 +1,13 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2023 MediaTek Inc. All Rights Reserved.
+ *
+ * Author: Alvin Kuo <alvin.kuo@mediatek.com>
+ */
+
+#ifndef _TOPS_DEBUGFS_H_
+#define _TOPS_DEBUGFS_H_
+
+extern struct dentry *tops_debugfs_root;
+
+#endif /* _TOPS_DEBUGFS_H_ */
diff --git a/package-21.02/kernel/tops/src/inc/mbox_id.h b/package-21.02/kernel/tops/src/inc/mbox_id.h
index bb46250..4ce3f6d 100644
--- a/package-21.02/kernel/tops/src/inc/mbox_id.h
+++ b/package-21.02/kernel/tops/src/inc/mbox_id.h
@@ -20,6 +20,7 @@
 	MBOX_AP2CM_CMD_CORE_CTRL = 0,
 	MBOX_AP2CM_CMD_NET = 1,
 	MBOX_AP2CM_CMD_WDT = 2,
+	MBOX_AP2CM_CMD_TRM = 3,
 	MBOX_AP2CM_CMD_TNL_OFFLOAD = 11,
 	MBOX_AP2CM_CMD_TEST = 31,
 	__MBOX_AP2CM_CMD_MAX = 32,
@@ -35,6 +36,7 @@
 	MBOX_AP2CX_CMD_CORE_CTRL = 0,
 	MBOX_AP2CX_CMD_NET = 1,
 	MBOX_AP2CX_CMD_WDT = 2,
+	MBOX_AP2CX_CMD_TRM = 3,
 	__MBOX_AP2CX_CMD_MAX = 32,
 };
 
diff --git a/package-21.02/kernel/tops/src/inc/trm-debugfs.h b/package-21.02/kernel/tops/src/inc/trm-debugfs.h
new file mode 100644
index 0000000..5425485
--- /dev/null
+++ b/package-21.02/kernel/tops/src/inc/trm-debugfs.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (c) 2023 MediaTek Inc. All Rights Reserved.
+ *
+ * Author: Alvin Kuo <alvin.kuo@mediatek.com>
+ */
+
+#ifndef _TRM_DEBUGFS_H_
+#define _TRM_DEBUGFS_H_
+
+#include <linux/debugfs.h>
+
+extern struct dentry *trm_debugfs_root;
+
+int mtk_trm_debugfs_init(void);
+void mtk_trm_debugfs_deinit(void);
+#endif /* _TRM_DEBUGFS_H_ */
diff --git a/package-21.02/kernel/tops/src/inc/trm.h b/package-21.02/kernel/tops/src/inc/trm.h
index 4b5118f..2acf54a 100644
--- a/package-21.02/kernel/tops/src/inc/trm.h
+++ b/package-21.02/kernel/tops/src/inc/trm.h
@@ -56,6 +56,13 @@
 #define TRM_RSN_FE_RESET			(TRM_RSN(FE_RESET))
 #define TRM_RSN_MCU_STATE_ACT_FAIL		(TRM_RSN(MCU_STATE_ACT_FAIL))
 
+enum trm_cmd_type {
+	TRM_CMD_TYPE_NULL,
+	TRM_CMD_TYPE_CPU_UTILIZATION,
+
+	__TRM_CMD_TYPE_MAX,
+};
+
 enum trm_config_flag {
 	TRM_CONFIG_F_ENABLE_BIT,
 	TRM_CONFIG_F_CORE_DUMP_BIT,
@@ -97,6 +104,7 @@
 	int (*trm_hw_dump)(void *dst, u32 ofs, u32 len);
 };
 
+int mtk_trm_cpu_utilization(enum core_id core, u32 *cpu_utilization);
 int mtk_trm_dump(u32 dump_rsn);
 int mtk_trm_cfg_setup(char *name, u32 offset, u32 size, u8 enable);
 int mtk_tops_trm_init(void);