Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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#endif