1 // SPDX-License-Identifier: GPL-2.0-only 2 // This file incorporates work covered by the following copyright notice: 3 // Copyright (c) 2023 Intel Corporation 4 // Copyright (c) 2024 Advanced Micro Devices, Inc. 5 6 /* 7 * soc_sdw_rt712_sdca - Helpers to handle RT712-SDCA from generic machine driver 8 */ 9 10 #include <linux/device.h> 11 #include <linux/errno.h> 12 #include <linux/soundwire/sdw.h> 13 #include <linux/soundwire/sdw_type.h> 14 #include <sound/control.h> 15 #include <sound/soc.h> 16 #include <sound/soc-acpi.h> 17 #include <sound/soc-dapm.h> 18 #include <sound/soc_sdw_utils.h> 19 20 /* 21 * dapm routes for rt712 spk will be registered dynamically according 22 * to the number of rt712 spk used. The first two entries will be registered 23 * for one codec case, and the last two entries are also registered 24 * if two rt712s are used. 25 */ 26 static const struct snd_soc_dapm_route rt712_spk_map[] = { 27 { "Speaker", NULL, "rt712 SPOL" }, 28 { "Speaker", NULL, "rt712 SPOR" }, 29 }; 30 31 int asoc_sdw_rt712_spk_rtd_init(struct snd_soc_pcm_runtime *rtd, struct snd_soc_dai *dai) 32 { 33 struct snd_soc_card *card = rtd->card; 34 int ret; 35 36 card->components = devm_kasprintf(card->dev, GFP_KERNEL, 37 "%s spk:rt712", 38 card->components); 39 if (!card->components) 40 return -ENOMEM; 41 42 ret = snd_soc_dapm_add_routes(&card->dapm, rt712_spk_map, ARRAY_SIZE(rt712_spk_map)); 43 if (ret) 44 dev_err(rtd->dev, "failed to add SPK map: %d\n", ret); 45 46 return ret; 47 } 48 EXPORT_SYMBOL_NS(asoc_sdw_rt712_spk_rtd_init, SND_SOC_SDW_UTILS); 49
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.