Lines Matching defs:i2s
21 #include "regs-i2s-v2.h"
22 #include "s3c-i2s-v2.h"
72 static void s3c2412_snd_txctrl(struct s3c_i2sv2_info *i2s, int on)
74 void __iomem *regs = i2s->regs;
102 dev_err(i2s->dev, "TXEN: Invalid MODE %x in IISMOD\n",
131 dev_err(i2s->dev, "TXDIS: Invalid MODE %x in IISMOD\n",
145 static void s3c2412_snd_rxctrl(struct s3c_i2sv2_info *i2s, int on)
147 void __iomem *regs = i2s->regs;
175 dev_err(i2s->dev, "RXEN: Invalid MODE %x in IISMOD\n",
200 dev_err(i2s->dev, "RXDIS: Invalid MODE %x in IISMOD\n",
218 static int s3c2412_snd_lrsync(struct s3c_i2sv2_info *i2s)
226 iiscon = readl(i2s->regs + S3C2412_IISCON);
247 struct s3c_i2sv2_info *i2s = to_info(cpu_dai);
252 iismod = readl(i2s->regs + S3C2412_IISMOD);
257 i2s->master = 0;
261 i2s->master = 1;
289 writel(iismod, i2s->regs + S3C2412_IISMOD);
298 struct s3c_i2sv2_info *i2s = to_info(dai);
305 dma_data = i2s->dma_playback;
307 dma_data = i2s->dma_capture;
312 iismod = readl(i2s->regs + S3C2412_IISMOD);
328 writel(iismod, i2s->regs + S3C2412_IISMOD);
337 struct s3c_i2sv2_info *i2s = to_info(cpu_dai);
338 u32 iismod = readl(i2s->regs + S3C2412_IISMOD);
354 if (!(i2s->feature & S3C_FEATURE_CDCLKCON))
373 writel(iismod, i2s->regs + S3C2412_IISMOD);
383 struct s3c_i2sv2_info *i2s = to_info(asoc_rtd_to_cpu(rtd, 0));
395 i2s->regs + S3C2412_IISFIC);
398 writel(0x0, i2s->regs + S3C2412_IISFIC);
402 if (!i2s->master) {
403 ret = s3c2412_snd_lrsync(i2s);
411 s3c2412_snd_rxctrl(i2s, 1);
413 s3c2412_snd_txctrl(i2s, 1);
425 s3c2412_snd_rxctrl(i2s, 0);
427 s3c2412_snd_txctrl(i2s, 0);
446 struct s3c_i2sv2_info *i2s = to_info(cpu_dai);
474 reg = readl(i2s->regs + S3C2412_IISMOD);
476 writel(reg | div, i2s->regs + S3C2412_IISMOD);
478 pr_debug("%s: MOD=%08x\n", __func__, readl(i2s->regs + S3C2412_IISMOD));
503 reg = readl(i2s->regs + S3C2412_IISMOD);
505 writel(reg | div, i2s->regs + S3C2412_IISMOD);
506 pr_debug("%s: MOD=%08x\n", __func__, readl(i2s->regs + S3C2412_IISMOD));
512 i2s->regs + S3C2412_IISPSR);
514 writel(0x0, i2s->regs + S3C2412_IISPSR);
516 pr_debug("%s: PSR=%08x\n", __func__, readl(i2s->regs + S3C2412_IISPSR));
529 struct s3c_i2sv2_info *i2s = to_info(dai);
530 u32 reg = readl(i2s->regs + S3C2412_IISFIC);
543 struct s3c_i2sv2_info *i2s = to_info(cpu_dai);
544 u32 iismod = readl(i2s->regs + S3C2412_IISMOD);
547 return i2s->iis_cclk;
549 return i2s->iis_pclk;
619 struct s3c_i2sv2_info *i2s)
624 i2s->dev = dev;
626 /* record our i2s structure for later use in the callbacks */
627 snd_soc_dai_set_drvdata(dai, i2s);
629 i2s->iis_pclk = clk_get(dev, "iis");
630 if (IS_ERR(i2s->iis_pclk)) {
635 clk_prepare_enable(i2s->iis_pclk);
639 iismod = readl(i2s->regs + S3C2412_IISMOD);
641 writel(iismod, i2s->regs + S3C2412_IISMOD);
642 s3c2412_snd_txctrl(i2s, 0);
643 s3c2412_snd_rxctrl(i2s, 0);
650 struct s3c_i2sv2_info *i2s)
652 clk_disable_unprepare(i2s->iis_pclk);
653 clk_put(i2s->iis_pclk);
654 i2s->iis_pclk = NULL;