xref: /rk3399_ARM-atf/plat/mediatek/drivers/audio/mt8188/audio_domain.c (revision c70f567ad75c30a990cb60c71b6c0b02538366fd)
1*c70f567aSTrevor Wu /*
2*c70f567aSTrevor Wu  * Copyright (c) 2022, Mediatek Inc. All rights reserved.
3*c70f567aSTrevor Wu  *
4*c70f567aSTrevor Wu  * SPDX-License-Identifier: BSD-3-Clause
5*c70f567aSTrevor Wu  */
6*c70f567aSTrevor Wu 
7*c70f567aSTrevor Wu #include <errno.h>
8*c70f567aSTrevor Wu #include <common/debug.h>
9*c70f567aSTrevor Wu 
10*c70f567aSTrevor Wu #include <audio.h>
11*c70f567aSTrevor Wu #include <mt_audio_private.h>
12*c70f567aSTrevor Wu #include <mtk_mmap_pool.h>
13*c70f567aSTrevor Wu #include <platform_def.h>
14*c70f567aSTrevor Wu #include <spm_reg.h>
15*c70f567aSTrevor Wu 
16*c70f567aSTrevor Wu #define MODULE_TAG "[AUDIO_DOMAIN]"
17*c70f567aSTrevor Wu 
18*c70f567aSTrevor Wu int32_t set_audio_domain_sidebands(void)
19*c70f567aSTrevor Wu {
20*c70f567aSTrevor Wu 	uint32_t val = mmio_read_32(PWR_STATUS);
21*c70f567aSTrevor Wu 
22*c70f567aSTrevor Wu 	if ((val & BIT(SPM_PWR_STATUS_AUDIO_BIT)) == 0) {
23*c70f567aSTrevor Wu 		ERROR("%s: %s, pwr_status=0x%x, w/o [%d]AUDIO!\n",
24*c70f567aSTrevor Wu 		      MODULE_TAG, __func__, val, SPM_PWR_STATUS_AUDIO_BIT);
25*c70f567aSTrevor Wu 		return -EIO;
26*c70f567aSTrevor Wu 	}
27*c70f567aSTrevor Wu 
28*c70f567aSTrevor Wu 	mmio_write_32(AFE_SE_SECURE_CON, 0x0);
29*c70f567aSTrevor Wu 
30*c70f567aSTrevor Wu 	mmio_write_32(AFE_SECURE_SIDEBAND0, 0x0);
31*c70f567aSTrevor Wu 	mmio_write_32(AFE_SECURE_SIDEBAND1, 0x0);
32*c70f567aSTrevor Wu 	mmio_write_32(AFE_SECURE_SIDEBAND2, 0x0);
33*c70f567aSTrevor Wu 	mmio_write_32(AFE_SECURE_SIDEBAND3, 0x0);
34*c70f567aSTrevor Wu 
35*c70f567aSTrevor Wu 	VERBOSE("%s: %s, SE_SECURE_CON=0x%x, SIDEBAND0/1/2/3=0x%x/0x%x/0x%x/0x%x\n",
36*c70f567aSTrevor Wu 		MODULE_TAG, __func__,
37*c70f567aSTrevor Wu 		mmio_read_32(AFE_SE_SECURE_CON),
38*c70f567aSTrevor Wu 		mmio_read_32(AFE_SECURE_SIDEBAND0),
39*c70f567aSTrevor Wu 		mmio_read_32(AFE_SECURE_SIDEBAND1),
40*c70f567aSTrevor Wu 		mmio_read_32(AFE_SECURE_SIDEBAND2),
41*c70f567aSTrevor Wu 		mmio_read_32(AFE_SECURE_SIDEBAND3));
42*c70f567aSTrevor Wu 
43*c70f567aSTrevor Wu 	return 0;
44*c70f567aSTrevor Wu }
45