1
0
mirror of https://github.com/physwizz/a155-U-u1.git synced 2025-08-04 15:30:24 +00:00
Files
a155-U-u1/kernel-5.10/drivers/misc/mediatek/adsp/adsp_bus_monitor.h
physwizz 99537be4e2 first
2024-03-11 06:53:12 +11:00

45 lines
1.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#ifndef __ADSP_BUS_MONITOR_H__
#define __ADSP_BUS_MONITOR_H__
#include "adsp_reg.h"
/* bus monitor registers */
#define ADSP_BUS_DBG_CON (ADSP_BUS_MON_BASE + 0x0000)
#define ADSP_BUS_DBG_TIMER_CON0 (ADSP_BUS_MON_BASE + 0x0004)
#define ADSP_BUS_DBG_TIMER_CON1 (ADSP_BUS_MON_BASE + 0x0008)
#define ADSP_BUS_DBG_TIMER0 (ADSP_BUS_MON_BASE + 0x000C)
#define ADSP_BUS_DBG_TIMER1 (ADSP_BUS_MON_BASE + 0x0010)
#define ADSP_BUS_DBG_WP (ADSP_BUS_MON_BASE + 0x0014)
#define ADSP_BUS_DBG_WP_MASK (ADSP_BUS_MON_BASE + 0x0018)
/* bus monitor enum */
enum bus_monitor_stage {
STAGE_OFF = 0,
STAGE_RUN = 1,
STAGE_1ST = 2,
STAGE_2ND = 3,
};
/* bus monitor structure */
struct bus_monitor_cblk { /* hw related */
u32 ctrl;
u32 timer_ctrl[2];
u32 timer_dbg[2];
u32 watch_point_addr;
u32 watch_point_mask;
u32 r_tracks[8]; /* read tracker 8 channel in hw */
u32 w_tracks[8]; /* write tracker 8 channel in hw */
};
/* bus monitor methods, be care all of them need adsp clk on */
int adsp_bus_monitor_init(void);
bool is_adsp_bus_monitor_alert(void);
void adsp_bus_monitor_dump(void);
#endif