18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci// Copyright (c) 2020 Intel Corporation 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci/* 58c2ecf20Sopenharmony_ci * sof_sdw_rt715 - Helpers to handle RT715 from generic machine driver 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#include <linux/device.h> 98c2ecf20Sopenharmony_ci#include <linux/errno.h> 108c2ecf20Sopenharmony_ci#include <sound/soc.h> 118c2ecf20Sopenharmony_ci#include <sound/soc-acpi.h> 128c2ecf20Sopenharmony_ci#include "sof_sdw_common.h" 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_cistatic int rt715_rtd_init(struct snd_soc_pcm_runtime *rtd) 158c2ecf20Sopenharmony_ci{ 168c2ecf20Sopenharmony_ci struct snd_soc_card *card = rtd->card; 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_ci card->components = devm_kasprintf(card->dev, GFP_KERNEL, 198c2ecf20Sopenharmony_ci "%s mic:rt715", 208c2ecf20Sopenharmony_ci card->components); 218c2ecf20Sopenharmony_ci if (!card->components) 228c2ecf20Sopenharmony_ci return -ENOMEM; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci return 0; 258c2ecf20Sopenharmony_ci} 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ciint sof_sdw_rt715_init(const struct snd_soc_acpi_link_adr *link, 288c2ecf20Sopenharmony_ci struct snd_soc_dai_link *dai_links, 298c2ecf20Sopenharmony_ci struct sof_sdw_codec_info *info, 308c2ecf20Sopenharmony_ci bool playback) 318c2ecf20Sopenharmony_ci{ 328c2ecf20Sopenharmony_ci /* 338c2ecf20Sopenharmony_ci * DAI ID is fixed at SDW_DMIC_DAI_ID for 715 to 348c2ecf20Sopenharmony_ci * keep sdw DMIC and HDMI setting static in UCM 358c2ecf20Sopenharmony_ci */ 368c2ecf20Sopenharmony_ci if (sof_sdw_quirk & SOF_RT715_DAI_ID_FIX) 378c2ecf20Sopenharmony_ci dai_links->id = SDW_DMIC_DAI_ID; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci dai_links->init = rt715_rtd_init; 408c2ecf20Sopenharmony_ci 418c2ecf20Sopenharmony_ci return 0; 428c2ecf20Sopenharmony_ci} 43