81 lines
2.6 KiB
C
81 lines
2.6 KiB
C
|
/* 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 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 ADSP_ALTVECSEL_C0 BIT(1)
|
||
|
|
||
|
/* 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
|