Lines Matching defs:spdif

18 #include "spdif.h"
71 * @pclk: The peri-clock pointer for spdif master operation.
105 static void spdif_snd_txctrl(struct samsung_spdif_info *spdif, int on)
107 void __iomem *regs = spdif->regs;
110 dev_dbg(spdif->dev, "Entered %s\n", __func__);
122 struct samsung_spdif_info *spdif = to_info(cpu_dai);
125 dev_dbg(spdif->dev, "Entered %s\n", __func__);
127 clkcon = readl(spdif->regs + CLKCON);
134 writel(clkcon, spdif->regs + CLKCON);
136 spdif->clk_rate = freq;
145 struct samsung_spdif_info *spdif = to_info(asoc_rtd_to_cpu(rtd, 0));
148 dev_dbg(spdif->dev, "Entered %s\n", __func__);
154 spin_lock_irqsave(&spdif->lock, flags);
155 spdif_snd_txctrl(spdif, 1);
156 spin_unlock_irqrestore(&spdif->lock, flags);
161 spin_lock_irqsave(&spdif->lock, flags);
162 spdif_snd_txctrl(spdif, 0);
163 spin_unlock_irqrestore(&spdif->lock, flags);
181 struct samsung_spdif_info *spdif = to_info(asoc_rtd_to_cpu(rtd, 0));
182 void __iomem *regs = spdif->regs;
188 dev_dbg(spdif->dev, "Entered %s\n", __func__);
191 dma_data = spdif->dma_playback;
193 dev_err(spdif->dev, "Capture is not supported\n");
199 spin_lock_irqsave(&spdif->lock, flags);
216 dev_err(spdif->dev, "Unsupported data size.\n");
220 ratio = spdif->clk_rate / params_rate(params);
225 dev_err(spdif->dev, "Invalid clock ratio %ld/%d\n",
226 spdif->clk_rate, params_rate(params));
258 dev_err(spdif->dev, "Invalid sampling rate %d\n",
271 spin_unlock_irqrestore(&spdif->lock, flags);
275 spin_unlock_irqrestore(&spdif->lock, flags);
283 struct samsung_spdif_info *spdif = to_info(asoc_rtd_to_cpu(rtd, 0));
284 void __iomem *regs = spdif->regs;
287 dev_dbg(spdif->dev, "Entered %s\n", __func__);
301 struct samsung_spdif_info *spdif = component_to_info(component);
302 u32 con = spdif->saved_con;
304 dev_dbg(spdif->dev, "Entered %s\n", __func__);
306 spdif->saved_clkcon = readl(spdif->regs + CLKCON) & CLKCTL_MASK;
307 spdif->saved_con = readl(spdif->regs + CON) & CON_MASK;
308 spdif->saved_cstas = readl(spdif->regs + CSTAS) & CSTAS_MASK;
310 writel(con | CON_SW_RESET, spdif->regs + CON);
318 struct samsung_spdif_info *spdif = component_to_info(component);
320 dev_dbg(spdif->dev, "Entered %s\n", __func__);
322 writel(spdif->saved_clkcon, spdif->regs + CLKCON);
323 writel(spdif->saved_con, spdif->regs + CON);
324 writel(spdif->saved_cstas, spdif->regs + CSTAS);
341 .name = "samsung-spdif",
355 .name = "samsung-spdif",
364 struct samsung_spdif_info *spdif;
384 spdif = &spdif_info;
385 spdif->dev = &pdev->dev;
387 spin_lock_init(&spdif->lock);
389 spdif->pclk = devm_clk_get(&pdev->dev, "spdif");
390 if (IS_ERR(spdif->pclk)) {
395 ret = clk_prepare_enable(spdif->pclk);
399 spdif->sclk = devm_clk_get(&pdev->dev, "sclk_spdif");
400 if (IS_ERR(spdif->sclk)) {
405 ret = clk_prepare_enable(spdif->sclk);
411 resource_size(mem_res), "samsung-spdif")) {
417 spdif->regs = ioremap(mem_res->start, 0x100);
418 if (spdif->regs == NULL) {
431 spdif->dma_playback = &spdif_stereo_out;
440 dev_set_drvdata(&pdev->dev, spdif);
451 iounmap(spdif->regs);
455 clk_disable_unprepare(spdif->sclk);
457 clk_disable_unprepare(spdif->pclk);
464 struct samsung_spdif_info *spdif = &spdif_info;
467 iounmap(spdif->regs);
473 clk_disable_unprepare(spdif->sclk);
474 clk_disable_unprepare(spdif->pclk);
483 .name = "samsung-spdif",
492 MODULE_ALIAS("platform:samsung-spdif");