162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * mt6797-afe-common.h  --  Mediatek 6797 audio driver definitions
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2018 MediaTek Inc.
662306a36Sopenharmony_ci * Author: KaiChieh Chuang <kaichieh.chuang@mediatek.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifndef _MT_6797_AFE_COMMON_H_
1062306a36Sopenharmony_ci#define _MT_6797_AFE_COMMON_H_
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#include <sound/soc.h>
1362306a36Sopenharmony_ci#include <linux/list.h>
1462306a36Sopenharmony_ci#include <linux/regmap.h>
1562306a36Sopenharmony_ci#include "../common/mtk-base-afe.h"
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cienum {
1862306a36Sopenharmony_ci	MT6797_MEMIF_DL1,
1962306a36Sopenharmony_ci	MT6797_MEMIF_DL2,
2062306a36Sopenharmony_ci	MT6797_MEMIF_DL3,
2162306a36Sopenharmony_ci	MT6797_MEMIF_VUL,
2262306a36Sopenharmony_ci	MT6797_MEMIF_AWB,
2362306a36Sopenharmony_ci	MT6797_MEMIF_VUL12,
2462306a36Sopenharmony_ci	MT6797_MEMIF_DAI,
2562306a36Sopenharmony_ci	MT6797_MEMIF_MOD_DAI,
2662306a36Sopenharmony_ci	MT6797_MEMIF_NUM,
2762306a36Sopenharmony_ci	MT6797_DAI_ADDA = MT6797_MEMIF_NUM,
2862306a36Sopenharmony_ci	MT6797_DAI_PCM_1,
2962306a36Sopenharmony_ci	MT6797_DAI_PCM_2,
3062306a36Sopenharmony_ci	MT6797_DAI_HOSTLESS_LPBK,
3162306a36Sopenharmony_ci	MT6797_DAI_HOSTLESS_SPEECH,
3262306a36Sopenharmony_ci	MT6797_DAI_NUM,
3362306a36Sopenharmony_ci};
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_cienum {
3662306a36Sopenharmony_ci	MT6797_IRQ_1,
3762306a36Sopenharmony_ci	MT6797_IRQ_2,
3862306a36Sopenharmony_ci	MT6797_IRQ_3,
3962306a36Sopenharmony_ci	MT6797_IRQ_4,
4062306a36Sopenharmony_ci	MT6797_IRQ_7,
4162306a36Sopenharmony_ci	MT6797_IRQ_NUM,
4262306a36Sopenharmony_ci};
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_cistruct clk;
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_cistruct mt6797_afe_private {
4762306a36Sopenharmony_ci	struct clk **clk;
4862306a36Sopenharmony_ci};
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciunsigned int mt6797_general_rate_transform(struct device *dev,
5162306a36Sopenharmony_ci					   unsigned int rate);
5262306a36Sopenharmony_ciunsigned int mt6797_rate_transform(struct device *dev,
5362306a36Sopenharmony_ci				   unsigned int rate, int aud_blk);
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci/* dai register */
5662306a36Sopenharmony_ciint mt6797_dai_adda_register(struct mtk_base_afe *afe);
5762306a36Sopenharmony_ciint mt6797_dai_pcm_register(struct mtk_base_afe *afe);
5862306a36Sopenharmony_ciint mt6797_dai_hostless_register(struct mtk_base_afe *afe);
5962306a36Sopenharmony_ci#endif
60