brintos

brintos / linux-shallow public Read only

0
0
Text · 1.1 KiB · 3552756 Raw
51 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2 3/*4 * Copyright (c) 2021 MediaTek Corporation. All rights reserved.5 */6 7#ifndef __MTK_ADSP_HELPER_H__8#define __MTK_ADSP_HELPER_H__9 10#include <linux/firmware/mediatek/mtk-adsp-ipc.h>11 12/*13 * Global important adsp data structure.14 */15struct mtk_adsp_chip_info {16	phys_addr_t pa_sram;17	phys_addr_t pa_dram; /* adsp dram physical base */18	phys_addr_t pa_cfgreg;19	u32 sramsize;20	u32 dramsize;21	u32 cfgregsize;22	void __iomem *va_sram; /* corresponding to pa_sram */23	void __iomem *va_dram; /* corresponding to pa_dram */24	void __iomem *va_cfgreg;25	phys_addr_t adsp_bootup_addr;26	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};36 37struct adsp_priv {38	struct device *dev;39	struct snd_sof_dev *sdev;40	struct mtk_adsp_ipc *dsp_ipc;41	struct platform_device *ipc_dev;42	struct mtk_adsp_chip_info *adsp;43	struct clk **clk;44	u32 (*ap2adsp_addr)(u32 addr, void *data);45	u32 (*adsp2ap_addr)(u32 addr, void *data);46 47	void *private_data;48};49 50#endif51