• Home
  • Raw
  • Download

Lines Matching refs:pcm

154 static void s3c_pcm_snd_txctrl(struct s3c_pcm_info *pcm, int on)  in s3c_pcm_snd_txctrl()  argument
156 void __iomem *regs = pcm->regs; in s3c_pcm_snd_txctrl()
176 if (!pcm->idleclk) in s3c_pcm_snd_txctrl()
185 static void s3c_pcm_snd_rxctrl(struct s3c_pcm_info *pcm, int on) in s3c_pcm_snd_rxctrl() argument
187 void __iomem *regs = pcm->regs; in s3c_pcm_snd_rxctrl()
207 if (!pcm->idleclk) in s3c_pcm_snd_rxctrl()
220 struct s3c_pcm_info *pcm = snd_soc_dai_get_drvdata(rtd->cpu_dai); in s3c_pcm_trigger() local
223 dev_dbg(pcm->dev, "Entered %s\n", __func__); in s3c_pcm_trigger()
229 spin_lock_irqsave(&pcm->lock, flags); in s3c_pcm_trigger()
232 s3c_pcm_snd_rxctrl(pcm, 1); in s3c_pcm_trigger()
234 s3c_pcm_snd_txctrl(pcm, 1); in s3c_pcm_trigger()
236 spin_unlock_irqrestore(&pcm->lock, flags); in s3c_pcm_trigger()
242 spin_lock_irqsave(&pcm->lock, flags); in s3c_pcm_trigger()
245 s3c_pcm_snd_rxctrl(pcm, 0); in s3c_pcm_trigger()
247 s3c_pcm_snd_txctrl(pcm, 0); in s3c_pcm_trigger()
249 spin_unlock_irqrestore(&pcm->lock, flags); in s3c_pcm_trigger()
264 struct s3c_pcm_info *pcm = snd_soc_dai_get_drvdata(rtd->cpu_dai); in s3c_pcm_hw_params() local
265 void __iomem *regs = pcm->regs; in s3c_pcm_hw_params()
271 dev_dbg(pcm->dev, "Entered %s\n", __func__); in s3c_pcm_hw_params()
281 spin_lock_irqsave(&pcm->lock, flags); in s3c_pcm_hw_params()
286 clk = pcm->pclk; in s3c_pcm_hw_params()
288 clk = pcm->cclk; in s3c_pcm_hw_params()
291 sclk_div = clk_get_rate(clk) / pcm->sclk_per_fs / in s3c_pcm_hw_params()
300 sync_div = pcm->sclk_per_fs - 1; in s3c_pcm_hw_params()
309 spin_unlock_irqrestore(&pcm->lock, flags); in s3c_pcm_hw_params()
311 dev_dbg(pcm->dev, "PCMSOURCE_CLK-%lu SCLK=%ufs SCLK_DIV=%d SYNC_DIV=%d\n", in s3c_pcm_hw_params()
312 clk_get_rate(clk), pcm->sclk_per_fs, in s3c_pcm_hw_params()
321 struct s3c_pcm_info *pcm = snd_soc_dai_get_drvdata(cpu_dai); in s3c_pcm_set_fmt() local
322 void __iomem *regs = pcm->regs; in s3c_pcm_set_fmt()
327 dev_dbg(pcm->dev, "Entered %s\n", __func__); in s3c_pcm_set_fmt()
329 spin_lock_irqsave(&pcm->lock, flags); in s3c_pcm_set_fmt()
338 dev_err(pcm->dev, "Unsupported clock inversion!\n"); in s3c_pcm_set_fmt()
348 dev_err(pcm->dev, "Unsupported master/slave format!\n"); in s3c_pcm_set_fmt()
355 pcm->idleclk = 1; in s3c_pcm_set_fmt()
358 pcm->idleclk = 0; in s3c_pcm_set_fmt()
361 dev_err(pcm->dev, "Invalid Clock gating request!\n"); in s3c_pcm_set_fmt()
376 dev_err(pcm->dev, "Unsupported data format!\n"); in s3c_pcm_set_fmt()
384 spin_unlock_irqrestore(&pcm->lock, flags); in s3c_pcm_set_fmt()
392 struct s3c_pcm_info *pcm = snd_soc_dai_get_drvdata(cpu_dai); in s3c_pcm_set_clkdiv() local
396 pcm->sclk_per_fs = div; in s3c_pcm_set_clkdiv()
409 struct s3c_pcm_info *pcm = snd_soc_dai_get_drvdata(cpu_dai); in s3c_pcm_set_sysclk() local
410 void __iomem *regs = pcm->regs; in s3c_pcm_set_sysclk()
421 if (clk_get_rate(pcm->cclk) != freq) in s3c_pcm_set_sysclk()
422 clk_set_rate(pcm->cclk, freq); in s3c_pcm_set_sysclk()
445 struct s3c_pcm_info *pcm = snd_soc_dai_get_drvdata(dai); in s3c_pcm_dai_probe() local
447 snd_soc_dai_init_dma_data(dai, pcm->dma_playback, pcm->dma_capture); in s3c_pcm_dai_probe()
488 struct s3c_pcm_info *pcm; in s3c_pcm_dev_probe() local
513 pcm = &s3c_pcm[pdev->id]; in s3c_pcm_dev_probe()
514 pcm->dev = &pdev->dev; in s3c_pcm_dev_probe()
516 spin_lock_init(&pcm->lock); in s3c_pcm_dev_probe()
519 pcm->sclk_per_fs = 128; in s3c_pcm_dev_probe()
521 pcm->cclk = devm_clk_get(&pdev->dev, "audio-bus"); in s3c_pcm_dev_probe()
522 if (IS_ERR(pcm->cclk)) { in s3c_pcm_dev_probe()
524 ret = PTR_ERR(pcm->cclk); in s3c_pcm_dev_probe()
527 clk_prepare_enable(pcm->cclk); in s3c_pcm_dev_probe()
530 dev_set_drvdata(&pdev->dev, pcm); in s3c_pcm_dev_probe()
539 pcm->regs = ioremap(mem_res->start, 0x100); in s3c_pcm_dev_probe()
540 if (pcm->regs == NULL) { in s3c_pcm_dev_probe()
546 pcm->pclk = devm_clk_get(&pdev->dev, "pcm"); in s3c_pcm_dev_probe()
547 if (IS_ERR(pcm->pclk)) { in s3c_pcm_dev_probe()
552 clk_prepare_enable(pcm->pclk); in s3c_pcm_dev_probe()
564 pcm->dma_capture = &s3c_pcm_stereo_in[pdev->id]; in s3c_pcm_dev_probe()
565 pcm->dma_playback = &s3c_pcm_stereo_out[pdev->id]; in s3c_pcm_dev_probe()
585 clk_disable_unprepare(pcm->pclk); in s3c_pcm_dev_probe()
587 iounmap(pcm->regs); in s3c_pcm_dev_probe()
591 clk_disable_unprepare(pcm->cclk); in s3c_pcm_dev_probe()
598 struct s3c_pcm_info *pcm = &s3c_pcm[pdev->id]; in s3c_pcm_dev_remove() local
603 iounmap(pcm->regs); in s3c_pcm_dev_remove()
608 clk_disable_unprepare(pcm->cclk); in s3c_pcm_dev_remove()
609 clk_disable_unprepare(pcm->pclk); in s3c_pcm_dev_remove()