Lines Matching refs:i2s
78 static void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on) in s3c2412_snd_txctrl() argument
80 void __iomem *regs = i2s->regs; in s3c2412_snd_txctrl()
108 dev_err(i2s->dev, "TXEN: Invalid MODE %x in IISMOD\n", in s3c2412_snd_txctrl()
137 dev_err(i2s->dev, "TXDIS: Invalid MODE %x in IISMOD\n", in s3c2412_snd_txctrl()
151 static void s3c2412_snd_rxctrl(struct s3c_i2sv2_info *i2s, int on) in s3c2412_snd_rxctrl() argument
153 void __iomem *regs = i2s->regs; in s3c2412_snd_rxctrl()
181 dev_err(i2s->dev, "RXEN: Invalid MODE %x in IISMOD\n", in s3c2412_snd_rxctrl()
206 dev_err(i2s->dev, "RXDIS: Invalid MODE %x in IISMOD\n", in s3c2412_snd_rxctrl()
224 static int s3c2412_snd_lrsync(struct s3c_i2sv2_info *i2s) in s3c2412_snd_lrsync() argument
232 iiscon = readl(i2s->regs + S3C2412_IISCON); in s3c2412_snd_lrsync()
253 struct s3c_i2sv2_info *i2s = to_info(cpu_dai); in s3c2412_i2s_set_fmt() local
258 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_set_fmt()
263 i2s->master = 0; in s3c2412_i2s_set_fmt()
267 i2s->master = 1; in s3c2412_i2s_set_fmt()
295 writel(iismod, i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_set_fmt()
304 struct s3c_i2sv2_info *i2s = to_info(dai); in s3c_i2sv2_hw_params() local
311 dma_data = i2s->dma_playback; in s3c_i2sv2_hw_params()
313 dma_data = i2s->dma_capture; in s3c_i2sv2_hw_params()
318 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c_i2sv2_hw_params()
334 writel(iismod, i2s->regs + S3C2412_IISMOD); in s3c_i2sv2_hw_params()
343 struct s3c_i2sv2_info *i2s = to_info(cpu_dai); in s3c_i2sv2_set_sysclk() local
344 u32 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c_i2sv2_set_sysclk()
360 if (!(i2s->feature & S3C_FEATURE_CDCLKCON)) in s3c_i2sv2_set_sysclk()
379 writel(iismod, i2s->regs + S3C2412_IISMOD); in s3c_i2sv2_set_sysclk()
389 struct s3c_i2sv2_info *i2s = to_info(rtd->cpu_dai); in s3c2412_i2s_trigger() local
401 i2s->regs + S3C2412_IISFIC); in s3c2412_i2s_trigger()
404 writel(0x0, i2s->regs + S3C2412_IISFIC); in s3c2412_i2s_trigger()
408 if (!i2s->master) { in s3c2412_i2s_trigger()
409 ret = s3c2412_snd_lrsync(i2s); in s3c2412_i2s_trigger()
417 s3c2412_snd_rxctrl(i2s, 1); in s3c2412_i2s_trigger()
419 s3c2412_snd_txctrl(i2s, 1); in s3c2412_i2s_trigger()
431 s3c2412_snd_rxctrl(i2s, 0); in s3c2412_i2s_trigger()
433 s3c2412_snd_txctrl(i2s, 0); in s3c2412_i2s_trigger()
452 struct s3c_i2sv2_info *i2s = to_info(cpu_dai); in s3c2412_i2s_set_clkdiv() local
480 reg = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_set_clkdiv()
482 writel(reg | div, i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_set_clkdiv()
484 pr_debug("%s: MOD=%08x\n", __func__, readl(i2s->regs + S3C2412_IISMOD)); in s3c2412_i2s_set_clkdiv()
509 reg = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_set_clkdiv()
511 writel(reg | div, i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_set_clkdiv()
512 pr_debug("%s: MOD=%08x\n", __func__, readl(i2s->regs + S3C2412_IISMOD)); in s3c2412_i2s_set_clkdiv()
518 i2s->regs + S3C2412_IISPSR); in s3c2412_i2s_set_clkdiv()
520 writel(0x0, i2s->regs + S3C2412_IISPSR); in s3c2412_i2s_set_clkdiv()
522 pr_debug("%s: PSR=%08x\n", __func__, readl(i2s->regs + S3C2412_IISPSR)); in s3c2412_i2s_set_clkdiv()
535 struct s3c_i2sv2_info *i2s = to_info(dai); in s3c2412_i2s_delay() local
536 u32 reg = readl(i2s->regs + S3C2412_IISFIC); in s3c2412_i2s_delay()
549 struct s3c_i2sv2_info *i2s = to_info(cpu_dai); in s3c_i2sv2_get_clock() local
550 u32 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c_i2sv2_get_clock()
553 return i2s->iis_cclk; in s3c_i2sv2_get_clock()
555 return i2s->iis_pclk; in s3c_i2sv2_get_clock()
625 struct s3c_i2sv2_info *i2s, in s3c_i2sv2_probe() argument
631 i2s->dev = dev; in s3c_i2sv2_probe()
634 snd_soc_dai_set_drvdata(dai, i2s); in s3c_i2sv2_probe()
636 i2s->iis_pclk = clk_get(dev, "iis"); in s3c_i2sv2_probe()
637 if (IS_ERR(i2s->iis_pclk)) { in s3c_i2sv2_probe()
639 iounmap(i2s->regs); in s3c_i2sv2_probe()
643 clk_enable(i2s->iis_pclk); in s3c_i2sv2_probe()
647 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c_i2sv2_probe()
649 writel(iismod, i2s->regs + S3C2412_IISMOD); in s3c_i2sv2_probe()
650 s3c2412_snd_txctrl(i2s, 0); in s3c_i2sv2_probe()
651 s3c2412_snd_rxctrl(i2s, 0); in s3c_i2sv2_probe()
660 struct s3c_i2sv2_info *i2s = to_info(dai); in s3c2412_i2s_suspend() local
664 i2s->suspend_iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_suspend()
665 i2s->suspend_iiscon = readl(i2s->regs + S3C2412_IISCON); in s3c2412_i2s_suspend()
666 i2s->suspend_iispsr = readl(i2s->regs + S3C2412_IISPSR); in s3c2412_i2s_suspend()
670 iismod = readl(i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_suspend()
687 struct s3c_i2sv2_info *i2s = to_info(dai); in s3c2412_i2s_resume() local
690 dai->active, i2s->suspend_iismod, i2s->suspend_iiscon); in s3c2412_i2s_resume()
693 writel(i2s->suspend_iiscon, i2s->regs + S3C2412_IISCON); in s3c2412_i2s_resume()
694 writel(i2s->suspend_iismod, i2s->regs + S3C2412_IISMOD); in s3c2412_i2s_resume()
695 writel(i2s->suspend_iispsr, i2s->regs + S3C2412_IISPSR); in s3c2412_i2s_resume()
698 i2s->regs + S3C2412_IISFIC); in s3c2412_i2s_resume()
701 writel(0x0, i2s->regs + S3C2412_IISFIC); in s3c2412_i2s_resume()