Lines Matching refs:spdif
52 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_trigger() local
70 regmap_update_bits(spdif->regmap, AXI_SPDIF_REG_CTRL, in axi_spdif_trigger()
79 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_hw_params() local
98 clkdiv = DIV_ROUND_CLOSEST(clk_get_rate(spdif->clk_ref), in axi_spdif_hw_params()
102 regmap_write(spdif->regmap, AXI_SPDIF_REG_STAT, stat); in axi_spdif_hw_params()
103 regmap_update_bits(spdif->regmap, AXI_SPDIF_REG_CTRL, in axi_spdif_hw_params()
111 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_dai_probe() local
113 snd_soc_dai_init_dma_data(dai, &spdif->dma_data, NULL); in axi_spdif_dai_probe()
121 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_startup() local
126 &spdif->rate_constraints); in axi_spdif_startup()
130 ret = clk_prepare_enable(spdif->clk_ref); in axi_spdif_startup()
134 regmap_update_bits(spdif->regmap, AXI_SPDIF_REG_CTRL, in axi_spdif_startup()
143 struct axi_spdif *spdif = snd_soc_dai_get_drvdata(dai); in axi_spdif_shutdown() local
145 regmap_update_bits(spdif->regmap, AXI_SPDIF_REG_CTRL, in axi_spdif_shutdown()
148 clk_disable_unprepare(spdif->clk_ref); in axi_spdif_shutdown()
182 struct axi_spdif *spdif; in axi_spdif_probe() local
187 spdif = devm_kzalloc(&pdev->dev, sizeof(*spdif), GFP_KERNEL); in axi_spdif_probe()
188 if (!spdif) in axi_spdif_probe()
191 platform_set_drvdata(pdev, spdif); in axi_spdif_probe()
198 spdif->regmap = devm_regmap_init_mmio(&pdev->dev, base, in axi_spdif_probe()
200 if (IS_ERR(spdif->regmap)) in axi_spdif_probe()
201 return PTR_ERR(spdif->regmap); in axi_spdif_probe()
203 spdif->clk = devm_clk_get(&pdev->dev, "axi"); in axi_spdif_probe()
204 if (IS_ERR(spdif->clk)) in axi_spdif_probe()
205 return PTR_ERR(spdif->clk); in axi_spdif_probe()
207 spdif->clk_ref = devm_clk_get(&pdev->dev, "ref"); in axi_spdif_probe()
208 if (IS_ERR(spdif->clk_ref)) in axi_spdif_probe()
209 return PTR_ERR(spdif->clk_ref); in axi_spdif_probe()
211 ret = clk_prepare_enable(spdif->clk); in axi_spdif_probe()
215 spdif->dma_data.addr = res->start + AXI_SPDIF_REG_TX_FIFO; in axi_spdif_probe()
216 spdif->dma_data.addr_width = 4; in axi_spdif_probe()
217 spdif->dma_data.maxburst = 1; in axi_spdif_probe()
219 spdif->ratnum.num = clk_get_rate(spdif->clk_ref) / 128; in axi_spdif_probe()
220 spdif->ratnum.den_step = 1; in axi_spdif_probe()
221 spdif->ratnum.den_min = 1; in axi_spdif_probe()
222 spdif->ratnum.den_max = 64; in axi_spdif_probe()
224 spdif->rate_constraints.rats = &spdif->ratnum; in axi_spdif_probe()
225 spdif->rate_constraints.nrats = 1; in axi_spdif_probe()
239 clk_disable_unprepare(spdif->clk); in axi_spdif_probe()
245 struct axi_spdif *spdif = platform_get_drvdata(pdev); in axi_spdif_dev_remove() local
247 clk_disable_unprepare(spdif->clk); in axi_spdif_dev_remove()