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