• Home
  • Raw
  • Download

Lines Matching refs:info

95 static inline void ep93xx_i2s_write_reg(struct ep93xx_i2s_info *info,  in ep93xx_i2s_write_reg()  argument
98 __raw_writel(val, info->regs + reg); in ep93xx_i2s_write_reg()
101 static inline unsigned ep93xx_i2s_read_reg(struct ep93xx_i2s_info *info, in ep93xx_i2s_read_reg() argument
104 return __raw_readl(info->regs + reg); in ep93xx_i2s_read_reg()
107 static void ep93xx_i2s_enable(struct ep93xx_i2s_info *info, int stream) in ep93xx_i2s_enable() argument
111 if ((ep93xx_i2s_read_reg(info, EP93XX_I2S_TX0EN) & 0x1) == 0 && in ep93xx_i2s_enable()
112 (ep93xx_i2s_read_reg(info, EP93XX_I2S_RX0EN) & 0x1) == 0) { in ep93xx_i2s_enable()
114 clk_enable(info->mclk); in ep93xx_i2s_enable()
115 clk_enable(info->sclk); in ep93xx_i2s_enable()
116 clk_enable(info->lrclk); in ep93xx_i2s_enable()
119 ep93xx_i2s_write_reg(info, EP93XX_I2S_GLCTRL, 1); in ep93xx_i2s_enable()
127 ep93xx_i2s_write_reg(info, base_reg, 1); in ep93xx_i2s_enable()
132 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXCTRL, in ep93xx_i2s_enable()
137 static void ep93xx_i2s_disable(struct ep93xx_i2s_info *info, int stream) in ep93xx_i2s_disable() argument
144 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXCTRL, 0); in ep93xx_i2s_disable()
151 ep93xx_i2s_write_reg(info, base_reg, 0); in ep93xx_i2s_disable()
153 if ((ep93xx_i2s_read_reg(info, EP93XX_I2S_TX0EN) & 0x1) == 0 && in ep93xx_i2s_disable()
154 (ep93xx_i2s_read_reg(info, EP93XX_I2S_RX0EN) & 0x1) == 0) { in ep93xx_i2s_disable()
156 ep93xx_i2s_write_reg(info, EP93XX_I2S_GLCTRL, 0); in ep93xx_i2s_disable()
159 clk_disable(info->lrclk); in ep93xx_i2s_disable()
160 clk_disable(info->sclk); in ep93xx_i2s_disable()
161 clk_disable(info->mclk); in ep93xx_i2s_disable()
175 struct ep93xx_i2s_info *info = dev_id; in ep93xx_i2s_interrupt() local
178 ep93xx_i2s_write_reg(info, EP93XX_I2S_TX0EN, 0); in ep93xx_i2s_interrupt()
185 while (!(ep93xx_i2s_read_reg(info, EP93XX_I2S_GLSTS) & in ep93xx_i2s_interrupt()
187 ep93xx_i2s_write_reg(info, EP93XX_I2S_I2STX0LFT, 0); in ep93xx_i2s_interrupt()
188 ep93xx_i2s_write_reg(info, EP93XX_I2S_I2STX0RT, 0); in ep93xx_i2s_interrupt()
191 ep93xx_i2s_write_reg(info, EP93XX_I2S_TX0EN, 1); in ep93xx_i2s_interrupt()
198 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_dai_probe() local
200 info->dma_params_tx.filter_data = in ep93xx_i2s_dai_probe()
202 info->dma_params_rx.filter_data = in ep93xx_i2s_dai_probe()
205 dai->playback_dma_data = &info->dma_params_tx; in ep93xx_i2s_dai_probe()
206 dai->capture_dma_data = &info->dma_params_rx; in ep93xx_i2s_dai_probe()
214 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_shutdown() local
216 ep93xx_i2s_disable(info, substream->stream); in ep93xx_i2s_shutdown()
222 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(cpu_dai); in ep93xx_i2s_set_dai_fmt() local
227 clk_cfg = ep93xx_i2s_read_reg(info, EP93XX_I2S_RXCLKCFG); in ep93xx_i2s_set_dai_fmt()
288 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXCLKCFG, clk_cfg); in ep93xx_i2s_set_dai_fmt()
289 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXCLKCFG, clk_cfg); in ep93xx_i2s_set_dai_fmt()
290 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXLINCTRLDATA, rxlin_ctrl); in ep93xx_i2s_set_dai_fmt()
291 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXLINCTRLDATA, txlin_ctrl); in ep93xx_i2s_set_dai_fmt()
299 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_hw_params() local
321 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXWRDLEN, word_len); in ep93xx_i2s_hw_params()
323 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXWRDLEN, word_len); in ep93xx_i2s_hw_params()
333 div = clk_get_rate(info->mclk) / params_rate(params); in ep93xx_i2s_hw_params()
343 err = clk_set_rate(info->sclk, clk_get_rate(info->mclk) / sdiv); in ep93xx_i2s_hw_params()
347 err = clk_set_rate(info->lrclk, clk_get_rate(info->sclk) / lrdiv); in ep93xx_i2s_hw_params()
351 ep93xx_i2s_enable(info, substream->stream); in ep93xx_i2s_hw_params()
358 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(cpu_dai); in ep93xx_i2s_set_sysclk() local
363 return clk_set_rate(info->mclk, freq); in ep93xx_i2s_set_sysclk()
369 struct ep93xx_i2s_info *info = snd_soc_component_get_drvdata(component); in ep93xx_i2s_suspend() local
374 ep93xx_i2s_disable(info, SNDRV_PCM_STREAM_PLAYBACK); in ep93xx_i2s_suspend()
375 ep93xx_i2s_disable(info, SNDRV_PCM_STREAM_CAPTURE); in ep93xx_i2s_suspend()
382 struct ep93xx_i2s_info *info = snd_soc_component_get_drvdata(component); in ep93xx_i2s_resume() local
387 ep93xx_i2s_enable(info, SNDRV_PCM_STREAM_PLAYBACK); in ep93xx_i2s_resume()
388 ep93xx_i2s_enable(info, SNDRV_PCM_STREAM_CAPTURE); in ep93xx_i2s_resume()
432 struct ep93xx_i2s_info *info; in ep93xx_i2s_probe() local
435 info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); in ep93xx_i2s_probe()
436 if (!info) in ep93xx_i2s_probe()
439 info->regs = devm_platform_ioremap_resource(pdev, 0); in ep93xx_i2s_probe()
440 if (IS_ERR(info->regs)) in ep93xx_i2s_probe()
441 return PTR_ERR(info->regs); in ep93xx_i2s_probe()
449 pdev->name, info); in ep93xx_i2s_probe()
454 info->mclk = clk_get(&pdev->dev, "mclk"); in ep93xx_i2s_probe()
455 if (IS_ERR(info->mclk)) { in ep93xx_i2s_probe()
456 err = PTR_ERR(info->mclk); in ep93xx_i2s_probe()
460 info->sclk = clk_get(&pdev->dev, "sclk"); in ep93xx_i2s_probe()
461 if (IS_ERR(info->sclk)) { in ep93xx_i2s_probe()
462 err = PTR_ERR(info->sclk); in ep93xx_i2s_probe()
466 info->lrclk = clk_get(&pdev->dev, "lrclk"); in ep93xx_i2s_probe()
467 if (IS_ERR(info->lrclk)) { in ep93xx_i2s_probe()
468 err = PTR_ERR(info->lrclk); in ep93xx_i2s_probe()
472 dev_set_drvdata(&pdev->dev, info); in ep93xx_i2s_probe()
486 clk_put(info->lrclk); in ep93xx_i2s_probe()
488 clk_put(info->sclk); in ep93xx_i2s_probe()
490 clk_put(info->mclk); in ep93xx_i2s_probe()
497 struct ep93xx_i2s_info *info = dev_get_drvdata(&pdev->dev); in ep93xx_i2s_remove() local
499 clk_put(info->lrclk); in ep93xx_i2s_remove()
500 clk_put(info->sclk); in ep93xx_i2s_remove()
501 clk_put(info->mclk); in ep93xx_i2s_remove()