tegra-virt-alt: Added changes for XBAR

Jira TAS-2292

Change-Id: I69c47dcfe4de3bf0c958dc0f9b0954b66dd52830
This commit is contained in:
pmedawala
2024-04-16 16:23:15 +00:00
committed by Jon Hunter
parent 021bbbedb0
commit 4a8d285e19
3 changed files with 984 additions and 552 deletions

View File

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /*
* Copyright (c) 2021-2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved. * Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
*/ */
#ifndef __TEGRA_VIRT_ALT_XBAR_H__ #ifndef __TEGRA_VIRT_ALT_XBAR_H__
@@ -31,10 +31,19 @@
static struct soc_enum name = SOC_VALUE_ENUM_WIDE(xreg, shift, \ static struct soc_enum name = SOC_VALUE_ENUM_WIDE(xreg, shift, \
ARRAY_SIZE(xtexts), xtexts, xvalues) ARRAY_SIZE(xtexts), xtexts, xvalues)
#define MUX_ENUM_CTRL_DECL_186(ename, id) \ #define MUX_ENUM_CTRL_DECL_234(ename, id) \
SOC_VALUE_ENUM_WIDE_DECL(ename##_enum, MUX_REG(id), 0, \ SOC_VALUE_ENUM_WIDE_DECL(ename##_enum, MUX_REG(id), 0, \
tegra_virt_t186ref_source_text, \ tegra_virt_t234ref_source_text, \
tegra_virt_t186ref_source_value); \ tegra_virt_t234ref_source_value); \
static const struct snd_kcontrol_new ename##_control = \
SOC_DAPM_ENUM_EXT("Route", ename##_enum,\
tegra_virt_get_route,\
tegra_virt_put_route)
#define MUX_ENUM_CTRL_DECL_264(ename, id) \
SOC_VALUE_ENUM_WIDE_DECL(ename##_enum, MUX_REG(id), 0, \
tegra_virt_t264ref_source_text, \
tegra_virt_t264ref_source_value); \
static const struct snd_kcontrol_new ename##_control = \ static const struct snd_kcontrol_new ename##_control = \
SOC_DAPM_ENUM_EXT("Route", ename##_enum,\ SOC_DAPM_ENUM_EXT("Route", ename##_enum,\
tegra_virt_get_route,\ tegra_virt_get_route,\
@@ -79,4 +88,4 @@ int tegra_virt_put_route(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol); struct snd_ctl_elem_value *ucontrol);
void tegra_virt_set_enum_source(const struct soc_enum *enum_virt); void tegra_virt_set_enum_source(const struct soc_enum *enum_virt);
int tegra_virt_xbar_register_codec(struct platform_device *pdev); int tegra_virt_xbar_register_codec(struct platform_device *pdev);
#endif #endif

View File

@@ -84,6 +84,14 @@ static int tegra_virt_machine_driver_probe(struct platform_device *pdev)
if (!match) if (!match)
return -ENODEV; return -ENODEV;
soc_data = (struct tegra_virt_admaif_soc_data *)match->data; soc_data = (struct tegra_virt_admaif_soc_data *)match->data;
} else if (of_device_is_compatible(pdev->dev.of_node,
"nvidia,tegra264-virt-pcm")) {
card = &tegra_virt_t186ref_card;
match = of_match_device(tegra_virt_machine_of_match,
&pdev->dev);
if (!match)
return -ENODEV;
soc_data = (struct tegra_virt_admaif_soc_data *)match->data;
} else { } else {
card = &tegra_virt_t186ref_card; card = &tegra_virt_t186ref_card;
match = of_match_device(tegra_virt_machine_of_match, match = of_match_device(tegra_virt_machine_of_match,