1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * mt7986-afe-common.h  --  MediaTek 7986 audio driver definitions
4 *
5 * Copyright (c) 2023 MediaTek Inc.
6 * Authors: Vic Wu <vic.wu@mediatek.com>
7 *          Maso Huang <maso.huang@mediatek.com>
8 */
9
10#ifndef _MT_7986_AFE_COMMON_H_
11#define _MT_7986_AFE_COMMON_H_
12
13#include <sound/soc.h>
14#include <linux/clk.h>
15#include <linux/list.h>
16#include <linux/regmap.h>
17#include "../common/mtk-base-afe.h"
18
19enum {
20	MT7986_MEMIF_DL1,
21	MT7986_MEMIF_VUL12,
22	MT7986_MEMIF_NUM,
23	MT7986_DAI_ETDM = MT7986_MEMIF_NUM,
24	MT7986_DAI_NUM,
25};
26
27enum {
28	MT7986_IRQ_0,
29	MT7986_IRQ_1,
30	MT7986_IRQ_2,
31	MT7986_IRQ_NUM,
32};
33
34struct mt7986_afe_private {
35	struct clk_bulk_data *clks;
36	int num_clks;
37
38	int pm_runtime_bypass_reg_ctl;
39
40	/* dai */
41	void *dai_priv[MT7986_DAI_NUM];
42};
43
44unsigned int mt7986_afe_rate_transform(struct device *dev,
45				       unsigned int rate);
46
47/* dai register */
48int mt7986_dai_etdm_register(struct mtk_base_afe *afe);
49#endif
50