55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0 */
 | |
| 
 | |
| /*
 | |
|  * Copyright (c) 2021 MediaTek Corporation. All rights reserved.
 | |
|  */
 | |
| 
 | |
| #ifndef __MTK_ADSP_HELPER_H__
 | |
| #define __MTK_ADSP_HELPER_H__
 | |
| 
 | |
| #include <linux/firmware/mediatek/mtk-adsp-ipc.h>
 | |
| 
 | |
| /*
 | |
|  * Global important adsp data structure.
 | |
|  */
 | |
| struct mtk_adsp_chip_info {
 | |
| 	phys_addr_t pa_sram;
 | |
| 	phys_addr_t pa_dram; /* adsp dram physical base */
 | |
| 	phys_addr_t pa_shared_dram; /* adsp dram physical base */
 | |
| 	phys_addr_t pa_cfgreg;
 | |
| 	u32 sramsize;
 | |
| 	u32 dramsize;
 | |
| 	u32 cfgregsize;
 | |
| 	u32 shared_size;
 | |
| 	void __iomem *va_sram; /* corresponding to pa_sram */
 | |
| 	void __iomem *va_dram; /* corresponding to pa_dram */
 | |
| 	void __iomem *va_cfgreg;
 | |
| 	void __iomem *shared_sram; /* part of  va_sram */
 | |
| 	void __iomem *shared_dram; /* part of  va_dram */
 | |
| 	phys_addr_t adsp_bootup_addr;
 | |
| 	int dram_offset; /*dram offset between system and dsp view*/
 | |
| 
 | |
| 	phys_addr_t pa_secreg;
 | |
| 	u32 secregsize;
 | |
| 	void __iomem *va_secreg;
 | |
| 
 | |
| 	phys_addr_t pa_busreg;
 | |
| 	u32 busregsize;
 | |
| 	void __iomem *va_busreg;
 | |
| };
 | |
| 
 | |
| struct adsp_priv {
 | |
| 	struct device *dev;
 | |
| 	struct snd_sof_dev *sdev;
 | |
| 	struct mtk_adsp_ipc *dsp_ipc;
 | |
| 	struct platform_device *ipc_dev;
 | |
| 	struct mtk_adsp_chip_info *adsp;
 | |
| 	struct clk **clk;
 | |
| 	u32 (*ap2adsp_addr)(u32 addr, void *data);
 | |
| 	u32 (*adsp2ap_addr)(u32 addr, void *data);
 | |
| 
 | |
| 	void *private_data;
 | |
| };
 | |
| 
 | |
| #endif
 |