brintos

brintos / linux-shallow public Read only

0
0
Text · 1.4 KiB · 5127210 Raw
49 lines · c
1// SPDX-License-Identifier: GPL-2.0-only2// This file incorporates work covered by the following copyright notice:3// Copyright (c) 2023 Intel Corporation4// Copyright (c) 2024 Advanced Micro Devices, Inc.5 6/*7 *  soc_sdw_rt712_sdca - Helpers to handle RT712-SDCA from generic machine driver8 */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 according22 * to the number of rt712 spk used. The first two entries will be registered23 * for one codec case, and the last two entries are also registered24 * if two rt712s are used.25 */26static const struct snd_soc_dapm_route rt712_spk_map[] = {27	{ "Speaker", NULL, "rt712 SPOL" },28	{ "Speaker", NULL, "rt712 SPOR" },29};30 31int 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}48EXPORT_SYMBOL_NS(asoc_sdw_rt712_spk_rtd_init, SND_SOC_SDW_UTILS);49