1 /* SPDX-License-Identifier: GPL-2.0 */ 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 2 3 /* 3 /* 4 * Copyright (c) 2021 MediaTek Corporation. Al 4 * Copyright (c) 2021 MediaTek Corporation. All rights reserved. 5 */ 5 */ 6 6 7 #ifndef __MTK_ADSP_HELPER_H__ 7 #ifndef __MTK_ADSP_HELPER_H__ 8 #define __MTK_ADSP_HELPER_H__ 8 #define __MTK_ADSP_HELPER_H__ 9 9 10 #include <linux/firmware/mediatek/mtk-adsp-ipc << 11 << 12 /* 10 /* 13 * Global important adsp data structure. 11 * Global important adsp data structure. 14 */ 12 */ >> 13 #define DSP_MBOX_NUM 3 >> 14 15 struct mtk_adsp_chip_info { 15 struct mtk_adsp_chip_info { 16 phys_addr_t pa_sram; 16 phys_addr_t pa_sram; 17 phys_addr_t pa_dram; /* adsp dram phys 17 phys_addr_t pa_dram; /* adsp dram physical base */ >> 18 phys_addr_t pa_shared_dram; /* adsp dram physical base */ 18 phys_addr_t pa_cfgreg; 19 phys_addr_t pa_cfgreg; >> 20 phys_addr_t pa_mboxreg[DSP_MBOX_NUM]; 19 u32 sramsize; 21 u32 sramsize; 20 u32 dramsize; 22 u32 dramsize; 21 u32 cfgregsize; 23 u32 cfgregsize; 22 void __iomem *va_sram; /* correspondin 24 void __iomem *va_sram; /* corresponding to pa_sram */ 23 void __iomem *va_dram; /* correspondin 25 void __iomem *va_dram; /* corresponding to pa_dram */ 24 void __iomem *va_cfgreg; 26 void __iomem *va_cfgreg; >> 27 void __iomem *va_mboxreg[DSP_MBOX_NUM]; >> 28 void __iomem *shared_sram; /* part of va_sram */ >> 29 void __iomem *shared_dram; /* part of va_dram */ 25 phys_addr_t adsp_bootup_addr; 30 phys_addr_t adsp_bootup_addr; 26 int dram_offset; /*dram offset between 31 int dram_offset; /*dram offset between system and dsp view*/ 27 << 28 phys_addr_t pa_secreg; << 29 u32 secregsize; << 30 void __iomem *va_secreg; << 31 << 32 phys_addr_t pa_busreg; << 33 u32 busregsize; << 34 void __iomem *va_busreg; << 35 }; 32 }; 36 33 37 struct adsp_priv { 34 struct adsp_priv { 38 struct device *dev; 35 struct device *dev; 39 struct snd_sof_dev *sdev; 36 struct snd_sof_dev *sdev; 40 struct mtk_adsp_ipc *dsp_ipc; !! 37 41 struct platform_device *ipc_dev; !! 38 /* DSP IPC handler */ >> 39 struct mbox_controller *adsp_mbox; >> 40 42 struct mtk_adsp_chip_info *adsp; 41 struct mtk_adsp_chip_info *adsp; 43 struct clk **clk; 42 struct clk **clk; 44 u32 (*ap2adsp_addr)(u32 addr, void *da 43 u32 (*ap2adsp_addr)(u32 addr, void *data); 45 u32 (*adsp2ap_addr)(u32 addr, void *da 44 u32 (*adsp2ap_addr)(u32 addr, void *data); 46 45 47 void *private_data; 46 void *private_data; 48 }; 47 }; 49 48 50 #endif 49 #endif 51 50
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.