/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */

/*
 * Copyright (c) 2022 MediaTek Corporation. All rights reserved.
 *
 *  Header file for the mt8186 DSP register definition
 */

#ifndef __MT8186_H
#define __MT8186_H

struct mtk_adsp_chip_info;
struct snd_sof_dev;

#define DSP_REG_BAR			4
#define DSP_SECREG_BAR			5
#define DSP_BUSREG_BAR			6

/*****************************************************************************
 *                  R E G I S T E R       TABLE
 *****************************************************************************/
/* dsp cfg */
#define ADSP_CFGREG_SW_RSTN		0x0000
#define SW_DBG_RSTN_C0			BIT(0)
#define SW_RSTN_C0			BIT(4)
#define ADSP_HIFI_IO_CONFIG		0x000C
#define TRACEMEMREADY			BIT(15)
#define RUNSTALL			BIT(31)
#define ADSP_IRQ_MASK			0x0030
#define ADSP_DVFSRC_REQ			0x0040
#define ADSP_DDREN_REQ_0		0x0044
#define ADSP_SEMAPHORE			0x0064
#define ADSP_WDT_CON_C0			0x007C
#define ADSP_MBOX_IRQ_EN		0x009C
#define DSP_MBOX0_IRQ_EN		BIT(0)
#define DSP_MBOX1_IRQ_EN		BIT(1)
#define DSP_MBOX2_IRQ_EN		BIT(2)
#define DSP_MBOX3_IRQ_EN		BIT(3)
#define DSP_MBOX4_IRQ_EN		BIT(4)
#define DSP_PDEBUGPC			0x013C
#define DSP_PDEBUGDATA			0x0140
#define DSP_PDEBUGINST			0x0144
#define DSP_PDEBUGLS0STAT		0x0148
#define DSP_PDEBUGSTATUS		0x014C
#define DSP_PFAULTINFO			0x0150
#define ADSP_CK_EN			0x1000
#define CORE_CLK_EN			BIT(0)
#define COREDBG_EN			BIT(1)
#define TIMER_EN			BIT(3)
#define DMA_EN				BIT(4)
#define UART_EN				BIT(5)
#define ADSP_UART_CTRL			0x1010
#define UART_BCLK_CG			BIT(0)
#define UART_RSTN			BIT(3)

/* dsp sec */
#define ADSP_PRID			0x0
#define ADSP_ALTVEC_C0			0x04
#define ADSP_ALTVECSEL			0x0C
#define MT8188_ADSP_ALTVECSEL_C0	BIT(0)
#define MT8186_ADSP_ALTVECSEL_C0	BIT(1)

/*
 * On MT8188, BIT(1) is not evaluated and on MT8186 BIT(0) is not evaluated:
 * We can simplify the driver by safely setting both bits regardless of the SoC.
 */
#define ADSP_ALTVECSEL_C0		(MT8188_ADSP_ALTVECSEL_C0 | \
					 MT8186_ADSP_ALTVECSEL_C0)

/* dsp bus */
#define ADSP_SRAM_POOL_CON		0x190
#define DSP_SRAM_POOL_PD_MASK		0xF00F /* [0:3] and [12:15] */
#define DSP_C0_EMI_MAP_ADDR		0xA00  /* ADSP Core0 To EMI Address Remap */
#define DSP_C0_DMAEMI_MAP_ADDR		0xA08  /* DMA0 To EMI Address Remap */

/* DSP memories */
#define MBOX_OFFSET			0x500000 /* DRAM */
#define MBOX_SIZE			0x1000   /* consistent with which in memory.h of sof fw */
#define DSP_DRAM_SIZE			0xA00000 /* 16M */

/*remap dram between AP and DSP view, 4KB aligned*/
#define SRAM_PHYS_BASE_FROM_DSP_VIEW	0x4E100000 /* MT8186 DSP view */
#define DRAM_PHYS_BASE_FROM_DSP_VIEW	0x60000000 /* MT8186 DSP view */
#define DRAM_REMAP_SHIFT		12
#define DRAM_REMAP_MASK			0xFFF

#define SIZE_SHARED_DRAM_DL			0x40000 /*Shared buffer for Downlink*/
#define SIZE_SHARED_DRAM_UL			0x40000 /*Shared buffer for Uplink*/
#define TOTAL_SIZE_SHARED_DRAM_FROM_TAIL	(SIZE_SHARED_DRAM_DL + SIZE_SHARED_DRAM_UL)

void mt8186_sof_hifixdsp_boot_sequence(struct snd_sof_dev *sdev, u32 boot_addr);
void mt8186_sof_hifixdsp_shutdown(struct snd_sof_dev *sdev);
#endif
