Lines Matching refs:zx_i2s
163 struct zx_i2s_info *zx_i2s = dev_get_drvdata(dai->dev); in zx_i2s_dai_probe() local
165 snd_soc_dai_set_drvdata(dai, zx_i2s); in zx_i2s_dai_probe()
166 zx_i2s->dma_playback.addr = zx_i2s->mapbase + ZX_I2S_DATA; in zx_i2s_dai_probe()
167 zx_i2s->dma_playback.maxburst = 16; in zx_i2s_dai_probe()
168 zx_i2s->dma_capture.addr = zx_i2s->mapbase + ZX_I2S_DATA; in zx_i2s_dai_probe()
169 zx_i2s->dma_capture.maxburst = 16; in zx_i2s_dai_probe()
170 snd_soc_dai_init_dma_data(dai, &zx_i2s->dma_playback, in zx_i2s_dai_probe()
171 &zx_i2s->dma_capture); in zx_i2s_dai_probe()
287 struct zx_i2s_info *zx_i2s = dev_get_drvdata(dai->dev); in zx_i2s_trigger() local
294 zx_i2s_rx_dma_en(zx_i2s->reg_base, true); in zx_i2s_trigger()
296 zx_i2s_tx_dma_en(zx_i2s->reg_base, true); in zx_i2s_trigger()
301 zx_i2s_rx_en(zx_i2s->reg_base, true); in zx_i2s_trigger()
303 zx_i2s_tx_en(zx_i2s->reg_base, true); in zx_i2s_trigger()
308 zx_i2s_rx_dma_en(zx_i2s->reg_base, false); in zx_i2s_trigger()
310 zx_i2s_tx_dma_en(zx_i2s->reg_base, false); in zx_i2s_trigger()
315 zx_i2s_rx_en(zx_i2s->reg_base, false); in zx_i2s_trigger()
317 zx_i2s_tx_en(zx_i2s->reg_base, false); in zx_i2s_trigger()
331 struct zx_i2s_info *zx_i2s = dev_get_drvdata(dai->dev); in zx_i2s_startup() local
334 ret = clk_prepare_enable(zx_i2s->dai_wclk); in zx_i2s_startup()
338 ret = clk_prepare_enable(zx_i2s->dai_pclk); in zx_i2s_startup()
340 clk_disable_unprepare(zx_i2s->dai_wclk); in zx_i2s_startup()
350 struct zx_i2s_info *zx_i2s = dev_get_drvdata(dai->dev); in zx_i2s_shutdown() local
352 clk_disable_unprepare(zx_i2s->dai_wclk); in zx_i2s_shutdown()
353 clk_disable_unprepare(zx_i2s->dai_pclk); in zx_i2s_shutdown()
390 struct zx_i2s_info *zx_i2s; in zx_i2s_probe() local
393 zx_i2s = devm_kzalloc(&pdev->dev, sizeof(*zx_i2s), GFP_KERNEL); in zx_i2s_probe()
394 if (!zx_i2s) in zx_i2s_probe()
397 zx_i2s->dai_wclk = devm_clk_get(&pdev->dev, "wclk"); in zx_i2s_probe()
398 if (IS_ERR(zx_i2s->dai_wclk)) { in zx_i2s_probe()
400 return PTR_ERR(zx_i2s->dai_wclk); in zx_i2s_probe()
403 zx_i2s->dai_pclk = devm_clk_get(&pdev->dev, "pclk"); in zx_i2s_probe()
404 if (IS_ERR(zx_i2s->dai_pclk)) { in zx_i2s_probe()
406 return PTR_ERR(zx_i2s->dai_pclk); in zx_i2s_probe()
410 zx_i2s->mapbase = res->start; in zx_i2s_probe()
411 zx_i2s->reg_base = devm_ioremap_resource(&pdev->dev, res); in zx_i2s_probe()
412 if (IS_ERR(zx_i2s->reg_base)) { in zx_i2s_probe()
414 return PTR_ERR(zx_i2s->reg_base); in zx_i2s_probe()
417 writel_relaxed(0, zx_i2s->reg_base + ZX_I2S_FIFO_CTRL); in zx_i2s_probe()
418 platform_set_drvdata(pdev, zx_i2s); in zx_i2s_probe()