summaryrefslogtreecommitdiffstats
path: root/plat/mediatek/drivers/audio/mt8188/audio_domain.c
blob: cbafd1990fdedd5c9d167d9a34c59c86202511f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
 * Copyright (c) 2022, Mediatek Inc. All rights reserved.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

#include <errno.h>
#include <common/debug.h>

#include <audio.h>
#include <mt_audio_private.h>
#include <mtk_mmap_pool.h>
#include <platform_def.h>
#include <spm_reg.h>

#define MODULE_TAG "[AUDIO_DOMAIN]"

int32_t set_audio_domain_sidebands(void)
{
	uint32_t val = mmio_read_32(PWR_STATUS);

	if ((val & BIT(SPM_PWR_STATUS_AUDIO_BIT)) == 0) {
		ERROR("%s: %s, pwr_status=0x%x, w/o [%d]AUDIO!\n",
		      MODULE_TAG, __func__, val, SPM_PWR_STATUS_AUDIO_BIT);
		return -EIO;
	}

	mmio_write_32(AFE_SE_SECURE_CON, 0x0);

	mmio_write_32(AFE_SECURE_SIDEBAND0, 0x0);
	mmio_write_32(AFE_SECURE_SIDEBAND1, 0x0);
	mmio_write_32(AFE_SECURE_SIDEBAND2, 0x0);
	mmio_write_32(AFE_SECURE_SIDEBAND3, 0x0);

	VERBOSE("%s: %s, SE_SECURE_CON=0x%x, SIDEBAND0/1/2/3=0x%x/0x%x/0x%x/0x%x\n",
		MODULE_TAG, __func__,
		mmio_read_32(AFE_SE_SECURE_CON),
		mmio_read_32(AFE_SECURE_SIDEBAND0),
		mmio_read_32(AFE_SECURE_SIDEBAND1),
		mmio_read_32(AFE_SECURE_SIDEBAND2),
		mmio_read_32(AFE_SECURE_SIDEBAND3));

	return 0;
}