1 /* SPDX-License-Identifier: GPL-2.0 */
3 * mt2701-afe-common.h -- Mediatek 2701 audio driver definitions
5 * Copyright (c) 2016 MediaTek Inc.
6 * Author: Garlic Tseng <garlic.tseng@mediatek.com>
9 #ifndef _MT_2701_AFE_COMMON_H_
10 #define _MT_2701_AFE_COMMON_H_
12 #include <sound/soc.h>
13 #include <linux/clk.h>
14 #include <linux/regmap.h>
15 #include "mt2701-reg.h"
16 #include "../common/mtk-base-afe.h"
18 #define MT2701_PLL_DOMAIN_0_RATE 98304000
19 #define MT2701_PLL_DOMAIN_1_RATE 90316800
27 MT2701_MEMIF_DL_SINGLE_NUM,
28 MT2701_MEMIF_DLM = MT2701_MEMIF_DL_SINGLE_NUM,
37 MT2701_IO_I2S = MT2701_MEMIF_NUM,
53 enum audio_base_clock {
54 MT2701_INFRA_SYS_AUDIO,
55 MT2701_TOP_AUD_MCLK_SRC0,
56 MT2701_TOP_AUD_MCLK_SRC1,
60 MT2701_AUDSYS_AFE_CONN,
66 struct mt2701_i2s_data {
68 int i2s_asrc_fs_shift;
72 struct mt2701_i2s_path {
74 int on[MTK_STREAM_NUM];
75 int occupied[MTK_STREAM_NUM];
76 const struct mt2701_i2s_data *i2s_data[MTK_STREAM_NUM];
77 struct clk *hop_ck[MTK_STREAM_NUM];
84 struct mt2701_soc_variants {
85 bool has_one_heart_mode;
89 struct mt2701_afe_private {
90 struct mt2701_i2s_path *i2s_path;
91 struct clk *base_ck[MT2701_BASE_CLK_NUM];
93 bool mrg_enable[MTK_STREAM_NUM];
95 const struct mt2701_soc_variants *soc;