• Home
  • Raw
  • Download

Lines Matching refs:info

86 static inline void ep93xx_i2s_write_reg(struct ep93xx_i2s_info *info,  in ep93xx_i2s_write_reg()  argument
89 __raw_writel(val, info->regs + reg); in ep93xx_i2s_write_reg()
92 static inline unsigned ep93xx_i2s_read_reg(struct ep93xx_i2s_info *info, in ep93xx_i2s_read_reg() argument
95 return __raw_readl(info->regs + reg); in ep93xx_i2s_read_reg()
98 static void ep93xx_i2s_enable(struct ep93xx_i2s_info *info, int stream) in ep93xx_i2s_enable() argument
103 if ((ep93xx_i2s_read_reg(info, EP93XX_I2S_TX0EN) & 0x1) == 0 && in ep93xx_i2s_enable()
104 (ep93xx_i2s_read_reg(info, EP93XX_I2S_RX0EN) & 0x1) == 0) { in ep93xx_i2s_enable()
106 clk_enable(info->mclk); in ep93xx_i2s_enable()
107 clk_enable(info->sclk); in ep93xx_i2s_enable()
108 clk_enable(info->lrclk); in ep93xx_i2s_enable()
111 ep93xx_i2s_write_reg(info, EP93XX_I2S_GLCTRL, 1); in ep93xx_i2s_enable()
120 ep93xx_i2s_write_reg(info, base_reg + (i * 4), 1); in ep93xx_i2s_enable()
123 static void ep93xx_i2s_disable(struct ep93xx_i2s_info *info, int stream) in ep93xx_i2s_disable() argument
134 ep93xx_i2s_write_reg(info, base_reg + (i * 4), 0); in ep93xx_i2s_disable()
136 if ((ep93xx_i2s_read_reg(info, EP93XX_I2S_TX0EN) & 0x1) == 0 && in ep93xx_i2s_disable()
137 (ep93xx_i2s_read_reg(info, EP93XX_I2S_RX0EN) & 0x1) == 0) { in ep93xx_i2s_disable()
139 ep93xx_i2s_write_reg(info, EP93XX_I2S_GLCTRL, 0); in ep93xx_i2s_disable()
142 clk_disable(info->lrclk); in ep93xx_i2s_disable()
143 clk_disable(info->sclk); in ep93xx_i2s_disable()
144 clk_disable(info->mclk); in ep93xx_i2s_disable()
150 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_dai_probe() local
152 info->dma_params_tx.filter_data = in ep93xx_i2s_dai_probe()
154 info->dma_params_rx.filter_data = in ep93xx_i2s_dai_probe()
157 dai->playback_dma_data = &info->dma_params_tx; in ep93xx_i2s_dai_probe()
158 dai->capture_dma_data = &info->dma_params_rx; in ep93xx_i2s_dai_probe()
166 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_shutdown() local
168 ep93xx_i2s_disable(info, substream->stream); in ep93xx_i2s_shutdown()
174 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(cpu_dai); in ep93xx_i2s_set_dai_fmt() local
179 clk_cfg = ep93xx_i2s_read_reg(info, EP93XX_I2S_RXCLKCFG); in ep93xx_i2s_set_dai_fmt()
240 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXCLKCFG, clk_cfg); in ep93xx_i2s_set_dai_fmt()
241 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXCLKCFG, clk_cfg); in ep93xx_i2s_set_dai_fmt()
242 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXLINCTRLDATA, rxlin_ctrl); in ep93xx_i2s_set_dai_fmt()
243 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXLINCTRLDATA, txlin_ctrl); in ep93xx_i2s_set_dai_fmt()
251 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_hw_params() local
273 ep93xx_i2s_write_reg(info, EP93XX_I2S_TXWRDLEN, word_len); in ep93xx_i2s_hw_params()
275 ep93xx_i2s_write_reg(info, EP93XX_I2S_RXWRDLEN, word_len); in ep93xx_i2s_hw_params()
285 div = clk_get_rate(info->mclk) / params_rate(params); in ep93xx_i2s_hw_params()
295 err = clk_set_rate(info->sclk, clk_get_rate(info->mclk) / sdiv); in ep93xx_i2s_hw_params()
299 err = clk_set_rate(info->lrclk, clk_get_rate(info->sclk) / lrdiv); in ep93xx_i2s_hw_params()
303 ep93xx_i2s_enable(info, substream->stream); in ep93xx_i2s_hw_params()
310 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(cpu_dai); in ep93xx_i2s_set_sysclk() local
315 return clk_set_rate(info->mclk, freq); in ep93xx_i2s_set_sysclk()
321 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_suspend() local
326 ep93xx_i2s_disable(info, SNDRV_PCM_STREAM_PLAYBACK); in ep93xx_i2s_suspend()
327 ep93xx_i2s_disable(info, SNDRV_PCM_STREAM_CAPTURE); in ep93xx_i2s_suspend()
334 struct ep93xx_i2s_info *info = snd_soc_dai_get_drvdata(dai); in ep93xx_i2s_resume() local
339 ep93xx_i2s_enable(info, SNDRV_PCM_STREAM_PLAYBACK); in ep93xx_i2s_resume()
340 ep93xx_i2s_enable(info, SNDRV_PCM_STREAM_CAPTURE); in ep93xx_i2s_resume()
384 struct ep93xx_i2s_info *info; in ep93xx_i2s_probe() local
388 info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); in ep93xx_i2s_probe()
389 if (!info) in ep93xx_i2s_probe()
393 info->regs = devm_ioremap_resource(&pdev->dev, res); in ep93xx_i2s_probe()
394 if (IS_ERR(info->regs)) in ep93xx_i2s_probe()
395 return PTR_ERR(info->regs); in ep93xx_i2s_probe()
397 info->mclk = clk_get(&pdev->dev, "mclk"); in ep93xx_i2s_probe()
398 if (IS_ERR(info->mclk)) { in ep93xx_i2s_probe()
399 err = PTR_ERR(info->mclk); in ep93xx_i2s_probe()
403 info->sclk = clk_get(&pdev->dev, "sclk"); in ep93xx_i2s_probe()
404 if (IS_ERR(info->sclk)) { in ep93xx_i2s_probe()
405 err = PTR_ERR(info->sclk); in ep93xx_i2s_probe()
409 info->lrclk = clk_get(&pdev->dev, "lrclk"); in ep93xx_i2s_probe()
410 if (IS_ERR(info->lrclk)) { in ep93xx_i2s_probe()
411 err = PTR_ERR(info->lrclk); in ep93xx_i2s_probe()
415 dev_set_drvdata(&pdev->dev, info); in ep93xx_i2s_probe()
431 clk_put(info->lrclk); in ep93xx_i2s_probe()
433 clk_put(info->sclk); in ep93xx_i2s_probe()
435 clk_put(info->mclk); in ep93xx_i2s_probe()
442 struct ep93xx_i2s_info *info = dev_get_drvdata(&pdev->dev); in ep93xx_i2s_remove() local
445 clk_put(info->lrclk); in ep93xx_i2s_remove()
446 clk_put(info->sclk); in ep93xx_i2s_remove()
447 clk_put(info->mclk); in ep93xx_i2s_remove()