Lines Matching +full:spdif +full:- +full:out

1 // SPDX-License-Identifier: GPL-2.0+
16 struct device_node *spdif_np, *np = pdev->dev.of_node; in imx_spdif_audio_probe()
21 spdif_np = of_parse_phandle(np, "spdif-controller", 0); in imx_spdif_audio_probe()
23 dev_err(&pdev->dev, "failed to find spdif-controller\n"); in imx_spdif_audio_probe()
24 ret = -EINVAL; in imx_spdif_audio_probe()
28 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); in imx_spdif_audio_probe()
29 comp = devm_kzalloc(&pdev->dev, sizeof(*comp), GFP_KERNEL); in imx_spdif_audio_probe()
31 ret = -ENOMEM; in imx_spdif_audio_probe()
37 * platform is using soc-generic-dmaengine-pcm in imx_spdif_audio_probe()
39 data->dai.cpus = in imx_spdif_audio_probe()
40 data->dai.platforms = comp; in imx_spdif_audio_probe()
41 data->dai.codecs = &asoc_dummy_dlc; in imx_spdif_audio_probe()
43 data->dai.num_cpus = 1; in imx_spdif_audio_probe()
44 data->dai.num_codecs = 1; in imx_spdif_audio_probe()
45 data->dai.num_platforms = 1; in imx_spdif_audio_probe()
47 data->dai.name = "S/PDIF PCM"; in imx_spdif_audio_probe()
48 data->dai.stream_name = "S/PDIF PCM"; in imx_spdif_audio_probe()
49 data->dai.cpus->of_node = spdif_np; in imx_spdif_audio_probe()
50 data->dai.playback_only = true; in imx_spdif_audio_probe()
51 data->dai.capture_only = true; in imx_spdif_audio_probe()
53 if (of_property_read_bool(np, "spdif-out")) in imx_spdif_audio_probe()
54 data->dai.capture_only = false; in imx_spdif_audio_probe()
56 if (of_property_read_bool(np, "spdif-in")) in imx_spdif_audio_probe()
57 data->dai.playback_only = false; in imx_spdif_audio_probe()
59 if (data->dai.playback_only && data->dai.capture_only) { in imx_spdif_audio_probe()
60 dev_err(&pdev->dev, "no enabled S/PDIF DAI link\n"); in imx_spdif_audio_probe()
64 data->card.dev = &pdev->dev; in imx_spdif_audio_probe()
65 data->card.dai_link = &data->dai; in imx_spdif_audio_probe()
66 data->card.num_links = 1; in imx_spdif_audio_probe()
67 data->card.owner = THIS_MODULE; in imx_spdif_audio_probe()
69 ret = snd_soc_of_parse_card_name(&data->card, "model"); in imx_spdif_audio_probe()
73 ret = devm_snd_soc_register_card(&pdev->dev, &data->card); in imx_spdif_audio_probe()
75 dev_err_probe(&pdev->dev, ret, "snd_soc_register_card failed\n"); in imx_spdif_audio_probe()
84 { .compatible = "fsl,imx-audio-spdif", },
91 .name = "imx-spdif",
103 MODULE_ALIAS("platform:imx-spdif");