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",
67 struct rk_spdif_dev *spdif = dev_get_drvdata(dev);
69 regcache_cache_only(spdif->regmap, true);
70 clk_disable_unprepare(spdif->mclk);
71 clk_disable_unprepare(spdif->hclk);
78 struct rk_spdif_dev *spdif = dev_get_drvdata(dev);
81 ret = clk_prepare_enable(spdif->mclk);
83 dev_err(spdif->dev, "mclk clock enable failed %d\n", ret);
87 ret = clk_prepare_enable(spdif->hclk);
89 clk_disable_unprepare(spdif->mclk);
90 dev_err(spdif->dev, "hclk clock enable failed %d\n", ret);
94 regcache_cache_only(spdif->regmap, false);
95 regcache_mark_dirty(spdif->regmap);
97 ret = regcache_sync(spdif->regmap);
99 clk_disable_unprepare(spdif->mclk);
100 clk_disable_unprepare(spdif->hclk);
110 struct rk_spdif_dev *spdif = snd_soc_dai_get_drvdata(dai);
133 ret = clk_set_rate(spdif->mclk, mclk);
135 dev_err(spdif->dev, "Failed to set module clock rate: %d\n",
140 ret = regmap_update_bits(spdif->regmap, SPDIF_CFGR,
151 struct rk_spdif_dev *spdif = snd_soc_dai_get_drvdata(dai);
158 ret = regmap_update_bits(spdif->regmap, SPDIF_DMACR,
167 ret = regmap_update_bits(spdif->regmap, SPDIF_XFER,
174 ret = regmap_update_bits(spdif->regmap, SPDIF_DMACR,
181 ret = regmap_update_bits(spdif->regmap, SPDIF_XFER,
195 struct rk_spdif_dev *spdif = snd_soc_dai_get_drvdata(dai);
197 dai->playback_dma_data = &spdif->playback_dma_data;
226 .name = "rockchip-spdif",
282 struct rk_spdif_dev *spdif;
305 spdif = devm_kzalloc(&pdev->dev, sizeof(*spdif), GFP_KERNEL);
306 if (!spdif)
309 spdif->hclk = devm_clk_get(&pdev->dev, "hclk");
310 if (IS_ERR(spdif->hclk))
311 return PTR_ERR(spdif->hclk);
313 spdif->mclk = devm_clk_get(&pdev->dev, "mclk");
314 if (IS_ERR(spdif->mclk))
315 return PTR_ERR(spdif->mclk);
322 spdif->regmap = devm_regmap_init_mmio_clk(&pdev->dev, "hclk", regs,
324 if (IS_ERR(spdif->regmap))
325 return PTR_ERR(spdif->regmap);
327 spdif->playback_dma_data.addr = res->start + SPDIF_SMPDR;
328 spdif->playback_dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
329 spdif->playback_dma_data.maxburst = 4;
331 spdif->dev = &pdev->dev;
332 dev_set_drvdata(&pdev->dev, spdif);
384 .name = "rockchip-spdif",
391 MODULE_ALIAS("platform:rockchip-spdif");