Lines Matching +full:playback +full:- +full:channels
1 // SPDX-License-Identifier: GPL-2.0
31 return -EINVAL; in xlnx_i2s_set_sclkout_div()
48 reg_off = I2S_CH0_OFFSET + ((chan_id - 1) * 4); in xlnx_i2s_hw_params()
50 chan_id--; in xlnx_i2s_hw_params()
73 return -EINVAL; in xlnx_i2s_trigger()
90 { .compatible = "xlnx,i2s-transmitter-1.0", },
91 { .compatible = "xlnx,i2s-receiver-1.0", },
102 struct device *dev = &pdev->dev; in xlnx_i2s_probe()
103 struct device_node *node = dev->of_node; in xlnx_i2s_probe()
105 dai_drv = devm_kzalloc(&pdev->dev, sizeof(*dai_drv), GFP_KERNEL); in xlnx_i2s_probe()
107 return -ENOMEM; in xlnx_i2s_probe()
113 ret = of_property_read_u32(node, "xlnx,num-channels", &ch); in xlnx_i2s_probe()
115 dev_err(dev, "cannot get supported channels\n"); in xlnx_i2s_probe()
133 return -EINVAL; in xlnx_i2s_probe()
136 if (of_device_is_compatible(node, "xlnx,i2s-transmitter-1.0")) { in xlnx_i2s_probe()
137 dai_drv->name = "xlnx_i2s_playback"; in xlnx_i2s_probe()
138 dai_drv->playback.stream_name = "Playback"; in xlnx_i2s_probe()
139 dai_drv->playback.formats = format; in xlnx_i2s_probe()
140 dai_drv->playback.channels_min = ch; in xlnx_i2s_probe()
141 dai_drv->playback.channels_max = ch; in xlnx_i2s_probe()
142 dai_drv->playback.rates = SNDRV_PCM_RATE_8000_192000; in xlnx_i2s_probe()
143 dai_drv->ops = &xlnx_i2s_dai_ops; in xlnx_i2s_probe()
144 } else if (of_device_is_compatible(node, "xlnx,i2s-receiver-1.0")) { in xlnx_i2s_probe()
145 dai_drv->name = "xlnx_i2s_capture"; in xlnx_i2s_probe()
146 dai_drv->capture.stream_name = "Capture"; in xlnx_i2s_probe()
147 dai_drv->capture.formats = format; in xlnx_i2s_probe()
148 dai_drv->capture.channels_min = ch; in xlnx_i2s_probe()
149 dai_drv->capture.channels_max = ch; in xlnx_i2s_probe()
150 dai_drv->capture.rates = SNDRV_PCM_RATE_8000_192000; in xlnx_i2s_probe()
151 dai_drv->ops = &xlnx_i2s_dai_ops; in xlnx_i2s_probe()
153 return -ENODEV; in xlnx_i2s_probe()
156 dev_set_drvdata(&pdev->dev, base); in xlnx_i2s_probe()
158 ret = devm_snd_soc_register_component(&pdev->dev, &xlnx_i2s_component, in xlnx_i2s_probe()
161 dev_err(&pdev->dev, "i2s component registration failed\n"); in xlnx_i2s_probe()
165 dev_info(&pdev->dev, "%s DAI registered\n", dai_drv->name); in xlnx_i2s_probe()