Lines Matching defs:spdif

45 	{ .compatible = "rockchip,rk3066-spdif",
47 { .compatible = "rockchip,rk3188-spdif",
49 { .compatible = "rockchip,rk3228-spdif",
51 { .compatible = "rockchip,rk3288-spdif",
53 { .compatible = "rockchip,rk3328-spdif",
55 { .compatible = "rockchip,rk3366-spdif",
57 { .compatible = "rockchip,rk3368-spdif",
59 { .compatible = "rockchip,rk3399-spdif",
61 { .compatible = "rockchip,rk3568-spdif",
69 struct rk_spdif_dev *spdif = dev_get_drvdata(dev);
71 regcache_cache_only(spdif->regmap, true);
72 clk_disable_unprepare(spdif->mclk);
73 clk_disable_unprepare(spdif->hclk);
80 struct rk_spdif_dev *spdif = dev_get_drvdata(dev);
83 ret = clk_prepare_enable(spdif->mclk);
85 dev_err(spdif->dev, "mclk clock enable failed %d\n", ret);
89 ret = clk_prepare_enable(spdif->hclk);
91 clk_disable_unprepare(spdif->mclk);
92 dev_err(spdif->dev, "hclk clock enable failed %d\n", ret);
96 regcache_cache_only(spdif->regmap, false);
97 regcache_mark_dirty(spdif->regmap);
99 ret = regcache_sync(spdif->regmap);
101 clk_disable_unprepare(spdif->mclk);
102 clk_disable_unprepare(spdif->hclk);
112 struct rk_spdif_dev *spdif = snd_soc_dai_get_drvdata(dai);
135 ret = clk_set_rate(spdif->mclk, mclk);
137 dev_err(spdif->dev, "Failed to set module clock rate: %d\n",
142 ret = regmap_update_bits(spdif->regmap, SPDIF_CFGR,
153 struct rk_spdif_dev *spdif = snd_soc_dai_get_drvdata(dai);
160 ret = regmap_update_bits(spdif->regmap, SPDIF_DMACR,
169 ret = regmap_update_bits(spdif->regmap, SPDIF_XFER,
176 ret = regmap_update_bits(spdif->regmap, SPDIF_DMACR,
183 ret = regmap_update_bits(spdif->regmap, SPDIF_XFER,
197 struct rk_spdif_dev *spdif = snd_soc_dai_get_drvdata(dai);
199 snd_soc_dai_dma_data_set_playback(dai, &spdif->playback_dma_data);
228 .name = "rockchip-spdif",
287 struct rk_spdif_dev *spdif;
310 spdif = devm_kzalloc(&pdev->dev, sizeof(*spdif), GFP_KERNEL);
311 if (!spdif)
314 spdif->hclk = devm_clk_get(&pdev->dev, "hclk");
315 if (IS_ERR(spdif->hclk))
316 return PTR_ERR(spdif->hclk);
318 spdif->mclk = devm_clk_get(&pdev->dev, "mclk");
319 if (IS_ERR(spdif->mclk))
320 return PTR_ERR(spdif->mclk);
326 spdif->regmap = devm_regmap_init_mmio_clk(&pdev->dev, "hclk", regs,
328 if (IS_ERR(spdif->regmap))
329 return PTR_ERR(spdif->regmap);
331 spdif->playback_dma_data.addr = res->start + SPDIF_SMPDR;
332 spdif->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
333 spdif->playback_dma_data.maxburst = 4;
335 spdif->dev = &pdev->dev;
336 dev_set_drvdata(&pdev->dev, spdif);
386 .name = "rockchip-spdif",
393 MODULE_ALIAS("platform:rockchip-spdif");