162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * mt7986-afe-common.h  --  MediaTek 7986 audio driver definitions
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2023 MediaTek Inc.
662306a36Sopenharmony_ci * Authors: Vic Wu <vic.wu@mediatek.com>
762306a36Sopenharmony_ci *          Maso Huang <maso.huang@mediatek.com>
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#ifndef _MT_7986_AFE_COMMON_H_
1162306a36Sopenharmony_ci#define _MT_7986_AFE_COMMON_H_
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include <sound/soc.h>
1462306a36Sopenharmony_ci#include <linux/clk.h>
1562306a36Sopenharmony_ci#include <linux/list.h>
1662306a36Sopenharmony_ci#include <linux/regmap.h>
1762306a36Sopenharmony_ci#include "../common/mtk-base-afe.h"
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_cienum {
2062306a36Sopenharmony_ci	MT7986_MEMIF_DL1,
2162306a36Sopenharmony_ci	MT7986_MEMIF_VUL12,
2262306a36Sopenharmony_ci	MT7986_MEMIF_NUM,
2362306a36Sopenharmony_ci	MT7986_DAI_ETDM = MT7986_MEMIF_NUM,
2462306a36Sopenharmony_ci	MT7986_DAI_NUM,
2562306a36Sopenharmony_ci};
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cienum {
2862306a36Sopenharmony_ci	MT7986_IRQ_0,
2962306a36Sopenharmony_ci	MT7986_IRQ_1,
3062306a36Sopenharmony_ci	MT7986_IRQ_2,
3162306a36Sopenharmony_ci	MT7986_IRQ_NUM,
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cistruct mt7986_afe_private {
3562306a36Sopenharmony_ci	struct clk_bulk_data *clks;
3662306a36Sopenharmony_ci	int num_clks;
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	int pm_runtime_bypass_reg_ctl;
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci	/* dai */
4162306a36Sopenharmony_ci	void *dai_priv[MT7986_DAI_NUM];
4262306a36Sopenharmony_ci};
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ciunsigned int mt7986_afe_rate_transform(struct device *dev,
4562306a36Sopenharmony_ci				       unsigned int rate);
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci/* dai register */
4862306a36Sopenharmony_ciint mt7986_dai_etdm_register(struct mtk_base_afe *afe);
4962306a36Sopenharmony_ci#endif
50