Lines Matching full:iface
39 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_set_tdm_slots() local
69 iface->slots = slots; in axg_tdm_set_tdm_slots()
74 iface->slot_width = 32; in axg_tdm_set_tdm_slots()
80 iface->slot_width = slot_width; in axg_tdm_set_tdm_slots()
94 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_iface_set_sysclk() local
98 if (!iface->mclk) { in axg_tdm_iface_set_sysclk()
101 ret = clk_set_rate(iface->mclk, freq); in axg_tdm_iface_set_sysclk()
103 iface->mclk_rate = freq; in axg_tdm_iface_set_sysclk()
112 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_iface_set_fmt() local
116 if (!iface->mclk) { in axg_tdm_iface_set_fmt()
133 iface->fmt = fmt; in axg_tdm_iface_set_fmt()
140 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_iface_startup() local
154 iface->rate); in axg_tdm_iface_startup()
157 "can't set iface rate constraint\n"); in axg_tdm_iface_startup()
169 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_iface_set_stream() local
175 iface->rate = params_rate(params); in axg_tdm_iface_set_stream()
183 if (iface->slot_width < width) { in axg_tdm_iface_set_stream()
199 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_iface_set_lrclk() local
203 ret = clk_set_rate(iface->lrclk, params_rate(params)); in axg_tdm_iface_set_lrclk()
209 switch (iface->fmt & SND_SOC_DAIFMT_FORMAT_MASK) { in axg_tdm_iface_set_lrclk()
232 ret = clk_set_duty_cycle(iface->lrclk, ratio_num, 2); in axg_tdm_iface_set_lrclk()
240 ret = clk_set_phase(iface->lrclk, in axg_tdm_iface_set_lrclk()
241 axg_tdm_lrclk_invert(iface->fmt) ? 180 : 0); in axg_tdm_iface_set_lrclk()
254 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_iface_set_sclk() local
258 srate = iface->slots * iface->slot_width * params_rate(params); in axg_tdm_iface_set_sclk()
260 if (!iface->mclk_rate) { in axg_tdm_iface_set_sclk()
262 clk_set_rate(iface->mclk, 4 * srate); in axg_tdm_iface_set_sclk()
265 if (iface->mclk_rate % srate) { in axg_tdm_iface_set_sclk()
268 srate, iface->mclk_rate); in axg_tdm_iface_set_sclk()
273 ret = clk_set_rate(iface->sclk, srate); in axg_tdm_iface_set_sclk()
280 ret = clk_set_phase(iface->sclk, in axg_tdm_iface_set_sclk()
281 axg_tdm_sclk_invert(iface->fmt) ? 0 : 180); in axg_tdm_iface_set_sclk()
294 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_iface_hw_params() local
297 switch (iface->fmt & SND_SOC_DAIFMT_FORMAT_MASK) { in axg_tdm_iface_hw_params()
301 if (iface->slots > 2) { in axg_tdm_iface_hw_params()
303 iface->slots); in axg_tdm_iface_hw_params()
321 if ((iface->fmt & SND_SOC_DAIFMT_MASTER_MASK) == in axg_tdm_iface_hw_params()
368 struct axg_tdm_iface *iface = snd_soc_dai_get_drvdata(dai); in axg_tdm_iface_probe_dai() local
371 dai->capture_dma_data = axg_tdm_stream_alloc(iface); in axg_tdm_iface_probe_dai()
377 dai->playback_dma_data = axg_tdm_stream_alloc(iface); in axg_tdm_iface_probe_dai()
438 struct axg_tdm_iface *iface = snd_soc_component_get_drvdata(component); in axg_tdm_iface_set_bias_level() local
446 ret = clk_prepare_enable(iface->mclk); in axg_tdm_iface_set_bias_level()
451 clk_disable_unprepare(iface->mclk); in axg_tdm_iface_set_bias_level()
467 { .compatible = "amlogic,axg-tdm-iface", },
476 struct axg_tdm_iface *iface; in axg_tdm_iface_probe() local
479 iface = devm_kzalloc(dev, sizeof(*iface), GFP_KERNEL); in axg_tdm_iface_probe()
480 if (!iface) in axg_tdm_iface_probe()
482 platform_set_drvdata(pdev, iface); in axg_tdm_iface_probe()
499 iface->sclk = devm_clk_get(dev, "sclk"); in axg_tdm_iface_probe()
500 if (IS_ERR(iface->sclk)) { in axg_tdm_iface_probe()
501 ret = PTR_ERR(iface->sclk); in axg_tdm_iface_probe()
508 iface->lrclk = devm_clk_get(dev, "lrclk"); in axg_tdm_iface_probe()
509 if (IS_ERR(iface->lrclk)) { in axg_tdm_iface_probe()
510 ret = PTR_ERR(iface->lrclk); in axg_tdm_iface_probe()
522 iface->mclk = devm_clk_get(dev, "mclk"); in axg_tdm_iface_probe()
523 if (IS_ERR(iface->mclk)) { in axg_tdm_iface_probe()
524 ret = PTR_ERR(iface->mclk); in axg_tdm_iface_probe()
526 iface->mclk = NULL; in axg_tdm_iface_probe()
542 .name = "axg-tdm-iface",