• Home
  • Raw
  • Download

Lines Matching refs:info

84 static inline void ep93xx_i2s_write_reg(struct ep93xx_i2s_info *info,  in ep93xx_i2s_write_reg()  argument
87 __raw_writel(val, info->regs + reg); in ep93xx_i2s_write_reg()
90 static inline unsigned ep93xx_i2s_read_reg(struct ep93xx_i2s_info *info, in ep93xx_i2s_read_reg() argument
93 return __raw_readl(info->regs + reg); in ep93xx_i2s_read_reg()
96 static void ep93xx_i2s_enable(struct ep93xx_i2s_info *info, int stream) in ep93xx_i2s_enable() argument
101 if ((ep93xx_i2s_read_reg(info, EP93XX_I2S_TX0EN) & 0x1) == 0 && in ep93xx_i2s_enable()
102 (ep93xx_i2s_read_reg(info, EP93XX_I2S_RX0EN) & 0x1) == 0) { in ep93xx_i2s_enable()
104 clk_enable(info->mclk); in ep93xx_i2s_enable()
105 clk_enable(info->sclk); in ep93xx_i2s_enable()
106 clk_enable(info->lrclk); in ep93xx_i2s_enable()
109 ep93xx_i2s_write_reg(info, EP93XX_I2S_GLCTRL, 1); in ep93xx_i2s_enable()
118 ep93xx_i2s_write_reg(info, base_reg + (i * 4), 1); in ep93xx_i2s_enable()
121 static void ep93xx_i2s_disable(struct ep93xx_i2s_info *info, int stream) in ep93xx_i2s_disable() argument
132 ep93xx_i2s_write_reg(info, base_reg + (i * 4), 0); in ep93xx_i2s_disable()
134 if ((ep93xx_i2s_read_reg(info, EP93XX_I2S_TX0EN) & 0x1) == 0 && in ep93xx_i2s_disable()
135 (ep93xx_i2s_read_reg(info, EP93XX_I2S_RX0EN) & 0x1) == 0) { in ep93xx_i2s_disable()
137 ep93xx_i2s_write_reg(info, EP93XX_I2S_GLCTRL, 0); in ep93xx_i2s_disable()
140 clk_disable(info->lrclk); in ep93xx_i2s_disable()
141 clk_disable(info->sclk); in ep93xx_i2s_disable()
142 clk_disable(info->mclk); in ep93xx_i2s_disable()
148 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_dai_probe() local
150 info->dma_params_tx.filter_data = in ep93xx_i2s_dai_probe()
152 info->dma_params_rx.filter_data = in ep93xx_i2s_dai_probe()
155 dai->playback_dma_data = &info->dma_params_tx; in ep93xx_i2s_dai_probe()
156 dai->capture_dma_data = &info->dma_params_rx; in ep93xx_i2s_dai_probe()
164 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_shutdown() local
166 ep93xx_i2s_disable(info, substream->stream); in ep93xx_i2s_shutdown()
172 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(cpu_dai); in ep93xx_i2s_set_dai_fmt() local
175 clk_cfg = ep93xx_i2s_read_reg(info, EP93XX_I2S_RXCLKCFG); in ep93xx_i2s_set_dai_fmt()
176 lin_ctrl = ep93xx_i2s_read_reg(info, EP93XX_I2S_RXLINCTRLDATA); in ep93xx_i2s_set_dai_fmt()
238 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXCLKCFG, clk_cfg); in ep93xx_i2s_set_dai_fmt()
239 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXCLKCFG, clk_cfg); in ep93xx_i2s_set_dai_fmt()
240 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXLINCTRLDATA, lin_ctrl); in ep93xx_i2s_set_dai_fmt()
241 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXLINCTRLDATA, lin_ctrl); in ep93xx_i2s_set_dai_fmt()
249 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_hw_params() local
271 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXWRDLEN, word_len); in ep93xx_i2s_hw_params()
273 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXWRDLEN, word_len); in ep93xx_i2s_hw_params()
283 div = clk_get_rate(info->mclk) / params_rate(params); in ep93xx_i2s_hw_params()
293 err = clk_set_rate(info->sclk, clk_get_rate(info->mclk) / sdiv); in ep93xx_i2s_hw_params()
297 err = clk_set_rate(info->lrclk, clk_get_rate(info->sclk) / lrdiv); in ep93xx_i2s_hw_params()
301 ep93xx_i2s_enable(info, substream->stream); in ep93xx_i2s_hw_params()
308 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(cpu_dai); in ep93xx_i2s_set_sysclk() local
313 return clk_set_rate(info->mclk, freq); in ep93xx_i2s_set_sysclk()
319 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_suspend() local
324 ep93xx_i2s_disable(info, SNDRV_PCM_STREAM_PLAYBACK); in ep93xx_i2s_suspend()
325 ep93xx_i2s_disable(info, SNDRV_PCM_STREAM_CAPTURE); in ep93xx_i2s_suspend()
332 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_resume() local
337 ep93xx_i2s_enable(info, SNDRV_PCM_STREAM_PLAYBACK); in ep93xx_i2s_resume()
338 ep93xx_i2s_enable(info, SNDRV_PCM_STREAM_CAPTURE); in ep93xx_i2s_resume()
382 struct ep93xx_i2s_info *info; in ep93xx_i2s_probe() local
386 info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); in ep93xx_i2s_probe()
387 if (!info) in ep93xx_i2s_probe()
391 info->regs = devm_ioremap_resource(&pdev->dev, res); in ep93xx_i2s_probe()
392 if (IS_ERR(info->regs)) in ep93xx_i2s_probe()
393 return PTR_ERR(info->regs); in ep93xx_i2s_probe()
395 info->mclk = clk_get(&pdev->dev, "mclk"); in ep93xx_i2s_probe()
396 if (IS_ERR(info->mclk)) { in ep93xx_i2s_probe()
397 err = PTR_ERR(info->mclk); in ep93xx_i2s_probe()
401 info->sclk = clk_get(&pdev->dev, "sclk"); in ep93xx_i2s_probe()
402 if (IS_ERR(info->sclk)) { in ep93xx_i2s_probe()
403 err = PTR_ERR(info->sclk); in ep93xx_i2s_probe()
407 info->lrclk = clk_get(&pdev->dev, "lrclk"); in ep93xx_i2s_probe()
408 if (IS_ERR(info->lrclk)) { in ep93xx_i2s_probe()
409 err = PTR_ERR(info->lrclk); in ep93xx_i2s_probe()
413 dev_set_drvdata(&pdev->dev, info); in ep93xx_i2s_probe()
429 clk_put(info->lrclk); in ep93xx_i2s_probe()
431 clk_put(info->sclk); in ep93xx_i2s_probe()
433 clk_put(info->mclk); in ep93xx_i2s_probe()
440 struct ep93xx_i2s_info *info = dev_get_drvdata(&pdev->dev); in ep93xx_i2s_remove() local
443 clk_put(info->lrclk); in ep93xx_i2s_remove()
444 clk_put(info->sclk); in ep93xx_i2s_remove()
445 clk_put(info->mclk); in ep93xx_i2s_remove()