Lines Matching +full:feedback +full:- +full:pin
1 // SPDX-License-Identifier: GPL-2.0-only
6 * sof_ssp_amp.c - ASoc Machine driver for Intel platforms
114 if (!ctx->idisp_codec) in sof_card_late_probe()
117 if (list_empty(&ctx->hdmi_pcm_list)) in sof_card_late_probe()
118 return -EINVAL; in sof_card_late_probe()
120 if (ctx->common_hdmi_codec_drv) { in sof_card_late_probe()
121 pcm = list_first_entry(&ctx->hdmi_pcm_list, struct sof_hdmi_pcm, in sof_card_late_probe()
123 component = pcm->codec_dai->component; in sof_card_late_probe()
128 list_for_each_entry(pcm, &ctx->hdmi_pcm_list, head) { in sof_card_late_probe()
129 component = pcm->codec_dai->component; in sof_card_late_probe()
131 "HDMI/DP, pcm=%d Jack", pcm->device); in sof_card_late_probe()
133 SND_JACK_AVOUT, &pcm->sof_hdmi); in sof_card_late_probe()
138 err = hdac_hdmi_jack_init(pcm->codec_dai, pcm->device, in sof_card_late_probe()
139 &pcm->sof_hdmi); in sof_card_late_probe()
146 return hdac_hdmi_jack_port_init(component, &card->dapm); in sof_card_late_probe()
169 .name = "dmic-codec",
170 .dai_name = "dmic-hifi",
176 .name = "snd-soc-dummy",
177 .dai_name = "snd-soc-dummy-dai",
183 struct sof_card_private *ctx = snd_soc_card_get_drvdata(rtd->card); in sof_hdmi_init()
187 pcm = devm_kzalloc(rtd->card->dev, sizeof(*pcm), GFP_KERNEL); in sof_hdmi_init()
189 return -ENOMEM; in sof_hdmi_init()
192 pcm->device = rtd->dai_link->id; in sof_hdmi_init()
193 pcm->codec_dai = dai; in sof_hdmi_init()
195 list_add_tail(&pcm->head, &ctx->hdmi_pcm_list); in sof_hdmi_init()
220 /* HDMI-In SSP */ in sof_card_dai_links_create()
232 links[id].cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL, in sof_card_dai_links_create()
233 "SSP%d Pin", port); in sof_card_dai_links_create()
234 if (!links[id].cpus->dai_name) in sof_card_dai_links_create()
236 links[id].name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-HDMI", port); in sof_card_dai_links_create()
252 links[id].name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-Codec", ssp_codec); in sof_card_dai_links_create()
262 /* feedback from amplifier */ in sof_card_dai_links_create()
271 links[id].cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d Pin", ssp_codec); in sof_card_dai_links_create()
272 if (!links[id].cpus->dai_name) in sof_card_dai_links_create()
282 links[id].cpus->dai_name = "DMIC01 Pin"; in sof_card_dai_links_create()
287 links[id + 1].cpus->dai_name = "DMIC16k Pin"; in sof_card_dai_links_create()
325 links[id].cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL, in sof_card_dai_links_create()
326 "iDisp%d Pin", i); in sof_card_dai_links_create()
327 if (!links[id].cpus->dai_name) in sof_card_dai_links_create()
331 idisp_components[i - 1].name = "ehdaudio0D2"; in sof_card_dai_links_create()
332 idisp_components[i - 1].dai_name = devm_kasprintf(dev, in sof_card_dai_links_create()
334 "intel-hdmi-hifi%d", in sof_card_dai_links_create()
336 if (!idisp_components[i - 1].dai_name) in sof_card_dai_links_create()
339 idisp_components[i - 1].name = "snd-soc-dummy"; in sof_card_dai_links_create()
340 idisp_components[i - 1].dai_name = "snd-soc-dummy-dai"; in sof_card_dai_links_create()
343 links[id].codecs = &idisp_components[i - 1]; in sof_card_dai_links_create()
361 links[id].cpus->dai_name = devm_kasprintf(dev, GFP_KERNEL, in sof_card_dai_links_create()
362 "SSP%d Pin", port); in sof_card_dai_links_create()
363 if (!links[id].cpus->dai_name) in sof_card_dai_links_create()
365 links[id].name = devm_kasprintf(dev, GFP_KERNEL, "SSP%d-BT", port); in sof_card_dai_links_create()
392 ctx = devm_kzalloc(&pdev->dev, sizeof(*ctx), GFP_KERNEL); in sof_ssp_amp_probe()
394 return -ENOMEM; in sof_ssp_amp_probe()
396 if (pdev->id_entry && pdev->id_entry->driver_data) in sof_ssp_amp_probe()
397 sof_ssp_amp_quirk = (unsigned long)pdev->id_entry->driver_data; in sof_ssp_amp_probe()
399 mach = pdev->dev.platform_data; in sof_ssp_amp_probe()
401 if (dmi_check_system(chromebook_platforms) || mach->mach_params.dmic_num > 0) in sof_ssp_amp_probe()
420 if (mach->mach_params.codec_mask & IDISP_CODEC_MASK) in sof_ssp_amp_probe()
421 ctx->idisp_codec = true; in sof_ssp_amp_probe()
429 …dai_links = sof_card_dai_links_create(&pdev->dev, ssp_codec, dmic_be_num, hdmi_num, ctx->idisp_cod… in sof_ssp_amp_probe()
431 return -ENOMEM; in sof_ssp_amp_probe()
440 INIT_LIST_HEAD(&ctx->hdmi_pcm_list); in sof_ssp_amp_probe()
442 sof_ssp_amp_card.dev = &pdev->dev; in sof_ssp_amp_probe()
446 mach->mach_params.platform); in sof_ssp_amp_probe()
450 ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv; in sof_ssp_amp_probe()
454 return devm_snd_soc_register_card(&pdev->dev, &sof_ssp_amp_card); in sof_ssp_amp_probe()