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
set_audio_domain_sidebands(void)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