1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __MACH_MXC_SDMA_H__
3 #define __MACH_MXC_SDMA_H__
4 
5 /**
6  * struct sdma_script_start_addrs - SDMA script start pointers
7  *
8  * start addresses of the different functions in the physical
9  * address space of the SDMA engine.
10  */
11 struct sdma_script_start_addrs {
12 	s32 ap_2_ap_addr;
13 	s32 ap_2_bp_addr;
14 	s32 ap_2_ap_fixed_addr;
15 	s32 bp_2_ap_addr;
16 	s32 loopback_on_dsp_side_addr;
17 	s32 mcu_interrupt_only_addr;
18 	s32 firi_2_per_addr;
19 	s32 firi_2_mcu_addr;
20 	s32 per_2_firi_addr;
21 	s32 mcu_2_firi_addr;
22 	s32 uart_2_per_addr;
23 	s32 uart_2_mcu_addr;
24 	s32 per_2_app_addr;
25 	s32 mcu_2_app_addr;
26 	s32 per_2_per_addr;
27 	s32 uartsh_2_per_addr;
28 	s32 uartsh_2_mcu_addr;
29 	s32 per_2_shp_addr;
30 	s32 mcu_2_shp_addr;
31 	s32 ata_2_mcu_addr;
32 	s32 mcu_2_ata_addr;
33 	s32 app_2_per_addr;
34 	s32 app_2_mcu_addr;
35 	s32 shp_2_per_addr;
36 	s32 shp_2_mcu_addr;
37 	s32 mshc_2_mcu_addr;
38 	s32 mcu_2_mshc_addr;
39 	s32 spdif_2_mcu_addr;
40 	s32 mcu_2_spdif_addr;
41 	s32 asrc_2_mcu_addr;
42 	s32 ext_mem_2_ipu_addr;
43 	s32 descrambler_addr;
44 	s32 dptc_dvfs_addr;
45 	s32 utra_addr;
46 	s32 ram_code_start_addr;
47 	/* End of v1 array */
48 	s32 mcu_2_ssish_addr;
49 	s32 ssish_2_mcu_addr;
50 	s32 hdmi_dma_addr;
51 	/* End of v2 array */
52 	s32 zcanfd_2_mcu_addr;
53 	s32 zqspi_2_mcu_addr;
54 	s32 mcu_2_ecspi_addr;
55 	/* End of v3 array */
56 	s32 mcu_2_zqspi_addr;
57 	/* End of v4 array */
58 };
59 
60 /**
61  * struct sdma_platform_data - platform specific data for SDMA engine
62  *
63  * @fw_name		The firmware name
64  * @script_addrs	SDMA scripts addresses in SDMA ROM
65  */
66 struct sdma_platform_data {
67 	char *fw_name;
68 	struct sdma_script_start_addrs *script_addrs;
69 };
70 
71 #endif /* __MACH_MXC_SDMA_H__ */
72