/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
 */

#ifndef __TEGRA_ASOC_MACHINE_VIRT_ALT_H__
#define __TEGRA_ASOC_MACHINE_VIRT_ALT_H__

#include "tegra210_virt_alt_admaif.h"

enum tegra210_xbar_dai_link {
	TEGRA210_DAI_LINK_ADMAIF1,
	TEGRA210_DAI_LINK_ADMAIF2,
	TEGRA210_DAI_LINK_ADMAIF3,
	TEGRA210_DAI_LINK_ADMAIF4,
	TEGRA210_DAI_LINK_ADMAIF5,
	TEGRA210_DAI_LINK_ADMAIF6,
	TEGRA210_DAI_LINK_ADMAIF7,
	TEGRA210_DAI_LINK_ADMAIF8,
	TEGRA210_DAI_LINK_ADMAIF9,
	TEGRA210_DAI_LINK_ADMAIF10,
	TEGRA210_XBAR_DAI_LINKS, /* Total number of xbar dai links */
};

enum tegra186_xbar_dai_link {
	TEGRA186_DAI_LINK_ADMAIF1,
	TEGRA186_DAI_LINK_ADMAIF2,
	TEGRA186_DAI_LINK_ADMAIF3,
	TEGRA186_DAI_LINK_ADMAIF4,
	TEGRA186_DAI_LINK_ADMAIF5,
	TEGRA186_DAI_LINK_ADMAIF6,
	TEGRA186_DAI_LINK_ADMAIF7,
	TEGRA186_DAI_LINK_ADMAIF8,
	TEGRA186_DAI_LINK_ADMAIF9,
	TEGRA186_DAI_LINK_ADMAIF10,
	TEGRA186_DAI_LINK_ADMAIF11,
	TEGRA186_DAI_LINK_ADMAIF12,
	TEGRA186_DAI_LINK_ADMAIF13,
	TEGRA186_DAI_LINK_ADMAIF14,
	TEGRA186_DAI_LINK_ADMAIF15,
	TEGRA186_DAI_LINK_ADMAIF16,
	TEGRA186_DAI_LINK_ADMAIF17,
	TEGRA186_DAI_LINK_ADMAIF18,
	TEGRA186_DAI_LINK_ADMAIF19,
	TEGRA186_DAI_LINK_ADMAIF20,
	TEGRA186_DAI_LINK_ADSP_ADMAIF1,
	TEGRA186_DAI_LINK_ADSP_ADMAIF2,
	TEGRA186_DAI_LINK_ADSP_ADMAIF3,
	TEGRA186_DAI_LINK_ADSP_ADMAIF4,
	TEGRA186_DAI_LINK_ADSP_ADMAIF5,
	TEGRA186_DAI_LINK_ADSP_ADMAIF6,
	TEGRA186_DAI_LINK_ADSP_ADMAIF7,
	TEGRA186_DAI_LINK_ADSP_ADMAIF8,
	TEGRA186_DAI_LINK_ADSP_ADMAIF9,
	TEGRA186_DAI_LINK_ADSP_ADMAIF10,
	TEGRA186_DAI_LINK_ADSP_ADMAIF11,
	TEGRA186_DAI_LINK_ADSP_ADMAIF12,
	TEGRA186_DAI_LINK_ADSP_ADMAIF13,
	TEGRA186_DAI_LINK_ADSP_ADMAIF14,
	TEGRA186_DAI_LINK_ADSP_ADMAIF15,
	TEGRA186_DAI_LINK_ADSP_ADMAIF16,
	TEGRA186_DAI_LINK_ADSP_ADMAIF17,
	TEGRA186_DAI_LINK_ADSP_ADMAIF18,
	TEGRA186_DAI_LINK_ADSP_ADMAIF19,
	TEGRA186_DAI_LINK_ADSP_ADMAIF20,
	TEGRA186_DAI_LINK_ADSP_PCM1,
	TEGRA186_DAI_LINK_ADSP_PCM2,
	TEGRA186_DAI_LINK_ADSP_PCM3,
	TEGRA186_DAI_LINK_ADSP_PCM4,
	TEGRA186_DAI_LINK_ADSP_PCM5,
	TEGRA186_DAI_LINK_ADSP_PCM6,
	TEGRA186_DAI_LINK_ADSP_PCM7,
	TEGRA186_DAI_LINK_ADSP_PCM8,
	TEGRA186_DAI_LINK_ADSP_PCM9,
	TEGRA186_DAI_LINK_ADSP_PCM10,
	TEGRA186_DAI_LINK_ADSP_PCM11,
	TEGRA186_DAI_LINK_ADSP_PCM12,
	TEGRA186_DAI_LINK_ADSP_PCM13,
	TEGRA186_DAI_LINK_ADSP_PCM14,
	TEGRA186_DAI_LINK_ADSP_PCM15,
	TEGRA186_XBAR_DAI_LINKS, /* Total number of xbar dai links */
};

struct snd_soc_dai_link *tegra_virt_machine_get_dai_link(void);
unsigned int tegra_virt_machine_get_num_dai_links(void);
void tegra_virt_machine_set_num_dai_links(unsigned int val);
void tegra_virt_machine_set_adsp_admaif_dai_params(
		uint32_t id, struct snd_soc_pcm_stream *params);
#endif