1 /* 2 * Copyright (c) 2025, Mediatek Inc. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <errno.h> 8 #include <common/debug.h> 9 10 #include <audio.h> 11 #include <mt_audio_private.h> 12 #include <platform_def.h> 13 14 #define AUDIO_PWR_ACK_BITS 0xC0000000 15 #define AFE_SE_DOMAIN_SIDEBAND0_VAL 0xCCCCCCCC 16 #define AFE_SE_DOMAIN_SIDEBAND1_VAL 0xCCCCCCCC 17 #define AFE_SE_DOMAIN_SIDEBAND2_VAL 0xCCCCCCCC 18 #define AFE_SE_DOMAIN_SIDEBAND3_VAL 0xCCCCCCCC 19 #define AFE_SE_DOMAIN_SIDEBAND4_VAL 0xCCCCCCCC 20 #define AFE_SE_DOMAIN_SIDEBAND5_VAL 0xCCCCCCCC 21 #define AFE_SE_DOMAIN_SIDEBAND6_VAL 0xCCCCCCCC 22 #define AFE_SE_DOMAIN_SIDEBAND7_VAL 0xCCCCCCCC 23 #define AFE_SE_DOMAIN_SIDEBAND8_VAL 0xCCCCCCCC 24 #define AFE_SE_DOMAIN_SIDEBAND9_VAL 0xCCCCCCCC 25 26 int32_t set_audio_domain_sidebands(void) 27 { 28 uint32_t val; 29 30 val = mmio_read_32(SPM_AUDIO_PWR_CON); 31 32 if ((val & AUDIO_PWR_ACK_BITS) != AUDIO_PWR_ACK_BITS) { 33 ERROR("%s: %s, pwr_status=0x%x.\n", MODULE_TAG, __func__, val); 34 return -EIO; 35 } 36 37 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND0, AFE_SE_DOMAIN_SIDEBAND0_VAL); 38 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND1, AFE_SE_DOMAIN_SIDEBAND1_VAL); 39 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND2, AFE_SE_DOMAIN_SIDEBAND2_VAL); 40 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND3, AFE_SE_DOMAIN_SIDEBAND3_VAL); 41 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND4, AFE_SE_DOMAIN_SIDEBAND4_VAL); 42 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND5, AFE_SE_DOMAIN_SIDEBAND5_VAL); 43 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND6, AFE_SE_DOMAIN_SIDEBAND6_VAL); 44 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND7, AFE_SE_DOMAIN_SIDEBAND7_VAL); 45 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND8, AFE_SE_DOMAIN_SIDEBAND8_VAL); 46 mmio_write_32(AFE_SE_DOMAIN_SIDEBAND9, AFE_SE_DOMAIN_SIDEBAND9_VAL); 47 48 VERBOSE("%s: %s, SIDEBAND0 0x%x, SIDEBAND1 0x%x, SIDEBAND2 0x%x\n", 49 MODULE_TAG, 50 __func__, 51 mmio_read_32(AFE_SE_DOMAIN_SIDEBAND0_MON), 52 mmio_read_32(AFE_SE_DOMAIN_SIDEBAND1_MON), 53 mmio_read_32(AFE_SE_DOMAIN_SIDEBAND2_MON)); 54 55 return 0; 56 } 57