1*32d7e03dSYC Hung /* SPDX-License-Identifier: GPL-2.0 */ 2*32d7e03dSYC Hung 3*32d7e03dSYC Hung /* 4*32d7e03dSYC Hung * Copyright (c) 2021 MediaTek Corporation. All rights reserved. 5*32d7e03dSYC Hung */ 6*32d7e03dSYC Hung 7*32d7e03dSYC Hung #ifndef __MTK_ADSP_HELPER_H__ 8*32d7e03dSYC Hung #define __MTK_ADSP_HELPER_H__ 9*32d7e03dSYC Hung 10*32d7e03dSYC Hung /* 11*32d7e03dSYC Hung * Global important adsp data structure. 12*32d7e03dSYC Hung */ 13*32d7e03dSYC Hung #define DSP_MBOX_NUM 3 14*32d7e03dSYC Hung 15*32d7e03dSYC Hung struct mtk_adsp_chip_info { 16*32d7e03dSYC Hung phys_addr_t pa_sram; 17*32d7e03dSYC Hung phys_addr_t pa_dram; /* adsp dram physical base */ 18*32d7e03dSYC Hung phys_addr_t pa_shared_dram; /* adsp dram physical base */ 19*32d7e03dSYC Hung phys_addr_t pa_cfgreg; 20*32d7e03dSYC Hung phys_addr_t pa_mboxreg[DSP_MBOX_NUM]; 21*32d7e03dSYC Hung u32 sramsize; 22*32d7e03dSYC Hung u32 dramsize; 23*32d7e03dSYC Hung u32 cfgregsize; 24*32d7e03dSYC Hung void __iomem *va_sram; /* corresponding to pa_sram */ 25*32d7e03dSYC Hung void __iomem *va_dram; /* corresponding to pa_dram */ 26*32d7e03dSYC Hung void __iomem *va_cfgreg; 27*32d7e03dSYC Hung void __iomem *va_mboxreg[DSP_MBOX_NUM]; 28*32d7e03dSYC Hung void __iomem *shared_sram; /* part of va_sram */ 29*32d7e03dSYC Hung void __iomem *shared_dram; /* part of va_dram */ 30*32d7e03dSYC Hung phys_addr_t adsp_bootup_addr; 31*32d7e03dSYC Hung int dram_offset; /*dram offset between system and dsp view*/ 32*32d7e03dSYC Hung }; 33*32d7e03dSYC Hung 34*32d7e03dSYC Hung struct adsp_priv { 35*32d7e03dSYC Hung struct device *dev; 36*32d7e03dSYC Hung struct snd_sof_dev *sdev; 37*32d7e03dSYC Hung 38*32d7e03dSYC Hung /* DSP IPC handler */ 39*32d7e03dSYC Hung struct mbox_controller *adsp_mbox; 40*32d7e03dSYC Hung 41*32d7e03dSYC Hung struct mtk_adsp_chip_info *adsp; 42*32d7e03dSYC Hung 43*32d7e03dSYC Hung u32 (*ap2adsp_addr)(u32 addr, void *data); 44*32d7e03dSYC Hung u32 (*adsp2ap_addr)(u32 addr, void *data); 45*32d7e03dSYC Hung 46*32d7e03dSYC Hung void *private_data; 47*32d7e03dSYC Hung }; 48*32d7e03dSYC Hung 49*32d7e03dSYC Hung #endif 50