// SPDX-License-Identifier: GPL-2.0-only // Based on sof_sdw_rt5682.c // This file incorporates work covered by the following copyright notice: // Copyright (c) 2023 Intel Corporation // Copyright (c) 2024 Advanced Micro Devices, Inc.
ret = snd_soc_component_set_jack(component, jack, NULL); if (ret) {
dev_err(card->dev, "Failed to register jack: %d\n", ret); return ret;
}
ret = snd_soc_component_set_sysclk(component, CS42L43_SYSCLK, CS42L43_SYSCLK_SDW,
0, SND_SOC_CLOCK_IN); if (ret)
dev_err(card->dev, "Failed to set sysclk: %d\n", ret);
int asoc_sdw_cs42l43_spk_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai)
{ struct snd_soc_card *card = rtd->card; struct asoc_sdw_mc_private *ctx = snd_soc_card_get_drvdata(card); int ret;
if (!(ctx->mc_quirk & SOC_SDW_SIDECAR_AMPS)) { /* Will be set by the bridge code in this case */
card->components = devm_kasprintf(card->dev, GFP_KERNEL, "%s spk:cs42l43-spk",
card->components); if (!card->components) return -ENOMEM;
}
ret = snd_soc_limit_volume(card, "cs42l43 Speaker Digital Volume",
CS42L43_SPK_VOLUME_0DB); if (ret)
dev_err(card->dev, "cs42l43 speaker volume limit failed: %d\n", ret); else
dev_info(card->dev, "Setting CS42L43 Speaker volume limit to %d\n",
CS42L43_SPK_VOLUME_0DB);
ret = snd_soc_dapm_add_routes(&card->dapm, cs42l43_spk_map,
ARRAY_SIZE(cs42l43_spk_map)); if (ret)
dev_err(card->dev, "cs42l43 speaker map addition failed: %d\n", ret);
int asoc_sdw_cs42l43_spk_init(struct snd_soc_card *card, struct snd_soc_dai_link *dai_links, struct asoc_sdw_codec_info *info, bool playback)
{ /* Do init on playback link only. */ if (!playback) return 0;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.