Lines Matching refs:iface

42 	struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
57 iface->slots = slots;
81 iface->slot_width = slot_width;
103 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
107 if (!iface->mclk) {
110 ret = clk_set_rate(iface->mclk, freq);
112 iface->mclk_rate = freq;
121 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
125 if (!iface->mclk) {
142 iface->fmt = fmt;
149 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
163 iface->rate);
168 MAX_SCLK / (iface->slots * iface->slot_width);
175 dev_err(dai->dev, "can't set iface rate constraint\n");
186 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
192 iface->rate = params_rate(params);
200 if (iface->slot_width < width) {
216 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
220 ret = clk_set_rate(iface->lrclk, params_rate(params));
226 switch (iface->fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
249 ret = clk_set_duty_cycle(iface->lrclk, ratio_num, 2);
257 ret = clk_set_phase(iface->lrclk,
258 axg_tdm_lrclk_invert(iface->fmt) ? 180 : 0);
271 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
275 srate = iface->slots * iface->slot_width * params_rate(params);
277 if (!iface->mclk_rate) {
279 clk_set_rate(iface->mclk, 2 * srate);
282 if (iface->mclk_rate % srate) {
285 srate, iface->mclk_rate);
290 ret = clk_set_rate(iface->sclk, srate);
297 ret = clk_set_phase(iface->sclk,
298 axg_tdm_sclk_invert(iface->fmt) ? 0 : 180);
311 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
315 switch (iface->fmt & SND_SOC_DAIFMT_FORMAT_MASK) {
319 if (iface->slots > 2) {
321 iface->slots);
339 if ((iface->fmt & SND_SOC_DAIFMT_CLOCK_PROVIDER_MASK) ==
350 ret = axg_tdm_stream_set_cont_clocks(ts, iface->fmt);
406 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai);
415 ts = axg_tdm_stream_alloc(iface);
475 struct axg_tdm_iface *iface = snd_soc_component_get_drvdata(component);
483 ret = clk_prepare_enable(iface->mclk);
488 clk_disable_unprepare(iface->mclk);
516 { .compatible = "amlogic,axg-tdm-iface", },
525 struct axg_tdm_iface *iface;
528 iface = devm_kzalloc(dev, sizeof(*iface), GFP_KERNEL);
529 if (!iface)
531 platform_set_drvdata(pdev, iface);
548 iface->sclk = devm_clk_get(dev, "sclk");
549 if (IS_ERR(iface->sclk))
550 return dev_err_probe(dev, PTR_ERR(iface->sclk), "failed to get sclk\n");
553 iface->lrclk = devm_clk_get(dev, "lrclk");
554 if (IS_ERR(iface->lrclk))
555 return dev_err_probe(dev, PTR_ERR(iface->lrclk), "failed to get lrclk\n");
563 iface->mclk = devm_clk_get_optional(dev, "mclk");
564 if (IS_ERR(iface->mclk))
565 return dev_err_probe(dev, PTR_ERR(iface->mclk), "failed to get mclk\n");
575 .name = "axg-tdm-iface",