spdif_priv 114 sound/soc/fsl/fsl_spdif.c static void spdif_irq_dpll_lock(struct fsl_spdif_priv *spdif_priv) spdif_priv 116 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 117 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 126 sound/soc/fsl/fsl_spdif.c spdif_priv->dpll_locked = locked ? true : false; spdif_priv 130 sound/soc/fsl/fsl_spdif.c static void spdif_irq_sym_error(struct fsl_spdif_priv *spdif_priv) spdif_priv 132 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 133 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 138 sound/soc/fsl/fsl_spdif.c if (!spdif_priv->dpll_locked) spdif_priv 143 sound/soc/fsl/fsl_spdif.c static void spdif_irq_uqrx_full(struct fsl_spdif_priv *spdif_priv, char name) spdif_priv 145 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 146 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 147 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 182 sound/soc/fsl/fsl_spdif.c static void spdif_irq_uq_sync(struct fsl_spdif_priv *spdif_priv) spdif_priv 184 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 185 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 198 sound/soc/fsl/fsl_spdif.c static void spdif_irq_uq_err(struct fsl_spdif_priv *spdif_priv) spdif_priv 200 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 201 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 202 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 218 sound/soc/fsl/fsl_spdif.c static u32 spdif_intr_status_clear(struct fsl_spdif_priv *spdif_priv) spdif_priv 220 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 233 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = (struct fsl_spdif_priv *)devid; spdif_priv 234 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 237 sound/soc/fsl/fsl_spdif.c sis = spdif_intr_status_clear(spdif_priv); spdif_priv 240 sound/soc/fsl/fsl_spdif.c spdif_irq_dpll_lock(spdif_priv); spdif_priv 255 sound/soc/fsl/fsl_spdif.c spdif_irq_sym_error(spdif_priv); spdif_priv 261 sound/soc/fsl/fsl_spdif.c spdif_irq_uqrx_full(spdif_priv, 'U'); spdif_priv 267 sound/soc/fsl/fsl_spdif.c spdif_irq_uqrx_full(spdif_priv, 'Q'); spdif_priv 273 sound/soc/fsl/fsl_spdif.c spdif_irq_uq_sync(spdif_priv); spdif_priv 276 sound/soc/fsl/fsl_spdif.c spdif_irq_uq_err(spdif_priv); spdif_priv 285 sound/soc/fsl/fsl_spdif.c spdif_irq_dpll_lock(spdif_priv); spdif_priv 298 sound/soc/fsl/fsl_spdif.c static int spdif_softreset(struct fsl_spdif_priv *spdif_priv) spdif_priv 300 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 332 sound/soc/fsl/fsl_spdif.c static void spdif_write_channel_status(struct fsl_spdif_priv *spdif_priv) spdif_priv 334 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 335 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 336 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 353 sound/soc/fsl/fsl_spdif.c static int spdif_set_rx_clksrc(struct fsl_spdif_priv *spdif_priv, spdif_priv 356 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 357 sound/soc/fsl/fsl_spdif.c u8 clksrc = spdif_priv->rxclk_src; spdif_priv 373 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(rtd->cpu_dai); spdif_priv 374 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 375 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 376 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 409 sound/soc/fsl/fsl_spdif.c clk = spdif_priv->txclk_src[rate]; spdif_priv 415 sound/soc/fsl/fsl_spdif.c txclk_df = spdif_priv->txclk_df[rate]; spdif_priv 421 sound/soc/fsl/fsl_spdif.c sysclk_df = spdif_priv->sysclk_df[rate]; spdif_priv 428 sound/soc/fsl/fsl_spdif.c ret = clk_set_rate(spdif_priv->txclk[rate], spdif_priv 439 sound/soc/fsl/fsl_spdif.c clk_get_rate(spdif_priv->txclk[rate])); spdif_priv 452 sound/soc/fsl/fsl_spdif.c spdif_priv->txrate[rate], sample_rate); spdif_priv 461 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(rtd->cpu_dai); spdif_priv 462 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 463 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 470 sound/soc/fsl/fsl_spdif.c ret = clk_prepare_enable(spdif_priv->coreclk); spdif_priv 476 sound/soc/fsl/fsl_spdif.c if (!IS_ERR(spdif_priv->spbaclk)) { spdif_priv 477 sound/soc/fsl/fsl_spdif.c ret = clk_prepare_enable(spdif_priv->spbaclk); spdif_priv 484 sound/soc/fsl/fsl_spdif.c ret = spdif_softreset(spdif_priv); spdif_priv 502 sound/soc/fsl/fsl_spdif.c ret = clk_prepare_enable(spdif_priv->txclk[i]); spdif_priv 510 sound/soc/fsl/fsl_spdif.c ret = clk_prepare_enable(spdif_priv->rxclk); spdif_priv 523 sound/soc/fsl/fsl_spdif.c clk_disable_unprepare(spdif_priv->txclk[i]); spdif_priv 525 sound/soc/fsl/fsl_spdif.c if (!IS_ERR(spdif_priv->spbaclk)) spdif_priv 526 sound/soc/fsl/fsl_spdif.c clk_disable_unprepare(spdif_priv->spbaclk); spdif_priv 528 sound/soc/fsl/fsl_spdif.c clk_disable_unprepare(spdif_priv->coreclk); spdif_priv 537 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(rtd->cpu_dai); spdif_priv 538 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 547 sound/soc/fsl/fsl_spdif.c clk_disable_unprepare(spdif_priv->txclk[i]); spdif_priv 552 sound/soc/fsl/fsl_spdif.c clk_disable_unprepare(spdif_priv->rxclk); spdif_priv 558 sound/soc/fsl/fsl_spdif.c spdif_intr_status_clear(spdif_priv); spdif_priv 561 sound/soc/fsl/fsl_spdif.c if (!IS_ERR(spdif_priv->spbaclk)) spdif_priv 562 sound/soc/fsl/fsl_spdif.c clk_disable_unprepare(spdif_priv->spbaclk); spdif_priv 563 sound/soc/fsl/fsl_spdif.c clk_disable_unprepare(spdif_priv->coreclk); spdif_priv 572 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(rtd->cpu_dai); spdif_priv 573 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 574 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 587 sound/soc/fsl/fsl_spdif.c spdif_write_channel_status(spdif_priv); spdif_priv 590 sound/soc/fsl/fsl_spdif.c ret = spdif_set_rx_clksrc(spdif_priv, SPDIF_DEFAULT_GAINSEL, 1); spdif_priv 600 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(rtd->cpu_dai); spdif_priv 601 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 657 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 658 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 672 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 673 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 680 sound/soc/fsl/fsl_spdif.c spdif_write_channel_status(spdif_priv); spdif_priv 690 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 691 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 722 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 723 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 754 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 755 sound/soc/fsl/fsl_spdif.c struct spdif_mixer_control *ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 788 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 789 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 816 sound/soc/fsl/fsl_spdif.c static int spdif_get_rxclk_rate(struct fsl_spdif_priv *spdif_priv, spdif_priv 819 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 820 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 832 sound/soc/fsl/fsl_spdif.c busclk_freq = clk_get_rate(spdif_priv->sysclk); spdif_priv 855 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 858 sound/soc/fsl/fsl_spdif.c if (spdif_priv->dpll_locked) spdif_priv 859 sound/soc/fsl/fsl_spdif.c rate = spdif_get_rxclk_rate(spdif_priv, SPDIF_DEFAULT_GAINSEL); spdif_priv 887 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 888 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 906 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = snd_soc_dai_get_drvdata(cpu_dai); spdif_priv 907 sound/soc/fsl/fsl_spdif.c struct regmap *regmap = spdif_priv->regmap; spdif_priv 1106 sound/soc/fsl/fsl_spdif.c static u32 fsl_spdif_txclk_caldiv(struct fsl_spdif_priv *spdif_priv, spdif_priv 1111 sound/soc/fsl/fsl_spdif.c bool is_sysclk = clk_is_match(clk, spdif_priv->sysclk); spdif_priv 1135 sound/soc/fsl/fsl_spdif.c spdif_priv->txclk_df[index] = txclk_df; spdif_priv 1136 sound/soc/fsl/fsl_spdif.c spdif_priv->sysclk_df[index] = sysclk_df; spdif_priv 1137 sound/soc/fsl/fsl_spdif.c spdif_priv->txrate[index] = arate; spdif_priv 1146 sound/soc/fsl/fsl_spdif.c spdif_priv->txclk_df[index] = txclk_df; spdif_priv 1147 sound/soc/fsl/fsl_spdif.c spdif_priv->sysclk_df[index] = sysclk_df; spdif_priv 1148 sound/soc/fsl/fsl_spdif.c spdif_priv->txrate[index] = arate; spdif_priv 1156 sound/soc/fsl/fsl_spdif.c spdif_priv->txclk_df[index] = txclk_df; spdif_priv 1157 sound/soc/fsl/fsl_spdif.c spdif_priv->sysclk_df[index] = sysclk_df; spdif_priv 1158 sound/soc/fsl/fsl_spdif.c spdif_priv->txrate[index] = arate; spdif_priv 1167 sound/soc/fsl/fsl_spdif.c static int fsl_spdif_probe_txclk(struct fsl_spdif_priv *spdif_priv, spdif_priv 1171 sound/soc/fsl/fsl_spdif.c struct platform_device *pdev = spdif_priv->pdev; spdif_priv 1188 sound/soc/fsl/fsl_spdif.c ret = fsl_spdif_txclk_caldiv(spdif_priv, clk, savesub, index, spdif_priv 1194 sound/soc/fsl/fsl_spdif.c spdif_priv->txclk[index] = clk; spdif_priv 1195 sound/soc/fsl/fsl_spdif.c spdif_priv->txclk_src[index] = i; spdif_priv 1203 sound/soc/fsl/fsl_spdif.c spdif_priv->txclk_src[index], rate[index]); spdif_priv 1205 sound/soc/fsl/fsl_spdif.c spdif_priv->txclk_df[index], rate[index]); spdif_priv 1206 sound/soc/fsl/fsl_spdif.c if (clk_is_match(spdif_priv->txclk[index], spdif_priv->sysclk)) spdif_priv 1208 sound/soc/fsl/fsl_spdif.c spdif_priv->sysclk_df[index], rate[index]); spdif_priv 1210 sound/soc/fsl/fsl_spdif.c rate[index], spdif_priv->txrate[index]); spdif_priv 1218 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv; spdif_priv 1227 sound/soc/fsl/fsl_spdif.c spdif_priv = devm_kzalloc(&pdev->dev, sizeof(*spdif_priv), GFP_KERNEL); spdif_priv 1228 sound/soc/fsl/fsl_spdif.c if (!spdif_priv) spdif_priv 1231 sound/soc/fsl/fsl_spdif.c spdif_priv->pdev = pdev; spdif_priv 1234 sound/soc/fsl/fsl_spdif.c memcpy(&spdif_priv->cpu_dai_drv, &fsl_spdif_dai, sizeof(fsl_spdif_dai)); spdif_priv 1235 sound/soc/fsl/fsl_spdif.c spdif_priv->cpu_dai_drv.name = dev_name(&pdev->dev); spdif_priv 1243 sound/soc/fsl/fsl_spdif.c spdif_priv->regmap = devm_regmap_init_mmio_clk(&pdev->dev, spdif_priv 1245 sound/soc/fsl/fsl_spdif.c if (IS_ERR(spdif_priv->regmap)) { spdif_priv 1247 sound/soc/fsl/fsl_spdif.c return PTR_ERR(spdif_priv->regmap); spdif_priv 1255 sound/soc/fsl/fsl_spdif.c dev_name(&pdev->dev), spdif_priv); spdif_priv 1262 sound/soc/fsl/fsl_spdif.c spdif_priv->sysclk = devm_clk_get(&pdev->dev, "rxtx5"); spdif_priv 1263 sound/soc/fsl/fsl_spdif.c if (IS_ERR(spdif_priv->sysclk)) { spdif_priv 1265 sound/soc/fsl/fsl_spdif.c return PTR_ERR(spdif_priv->sysclk); spdif_priv 1269 sound/soc/fsl/fsl_spdif.c spdif_priv->coreclk = devm_clk_get(&pdev->dev, "core"); spdif_priv 1270 sound/soc/fsl/fsl_spdif.c if (IS_ERR(spdif_priv->coreclk)) { spdif_priv 1272 sound/soc/fsl/fsl_spdif.c return PTR_ERR(spdif_priv->coreclk); spdif_priv 1275 sound/soc/fsl/fsl_spdif.c spdif_priv->spbaclk = devm_clk_get(&pdev->dev, "spba"); spdif_priv 1276 sound/soc/fsl/fsl_spdif.c if (IS_ERR(spdif_priv->spbaclk)) spdif_priv 1280 sound/soc/fsl/fsl_spdif.c spdif_priv->rxclk = devm_clk_get(&pdev->dev, "rxtx1"); spdif_priv 1281 sound/soc/fsl/fsl_spdif.c if (IS_ERR(spdif_priv->rxclk)) { spdif_priv 1283 sound/soc/fsl/fsl_spdif.c return PTR_ERR(spdif_priv->rxclk); spdif_priv 1285 sound/soc/fsl/fsl_spdif.c spdif_priv->rxclk_src = DEFAULT_RXCLK_SRC; spdif_priv 1288 sound/soc/fsl/fsl_spdif.c ret = fsl_spdif_probe_txclk(spdif_priv, i); spdif_priv 1294 sound/soc/fsl/fsl_spdif.c ctrl = &spdif_priv->fsl_spdif_control; spdif_priv 1305 sound/soc/fsl/fsl_spdif.c spdif_priv->dpll_locked = false; spdif_priv 1307 sound/soc/fsl/fsl_spdif.c spdif_priv->dma_params_tx.maxburst = FSL_SPDIF_TXFIFO_WML; spdif_priv 1308 sound/soc/fsl/fsl_spdif.c spdif_priv->dma_params_rx.maxburst = FSL_SPDIF_RXFIFO_WML; spdif_priv 1309 sound/soc/fsl/fsl_spdif.c spdif_priv->dma_params_tx.addr = res->start + REG_SPDIF_STL; spdif_priv 1310 sound/soc/fsl/fsl_spdif.c spdif_priv->dma_params_rx.addr = res->start + REG_SPDIF_SRL; spdif_priv 1313 sound/soc/fsl/fsl_spdif.c dev_set_drvdata(&pdev->dev, spdif_priv); spdif_priv 1316 sound/soc/fsl/fsl_spdif.c &spdif_priv->cpu_dai_drv, 1); spdif_priv 1332 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = dev_get_drvdata(dev); spdif_priv 1334 sound/soc/fsl/fsl_spdif.c regmap_read(spdif_priv->regmap, REG_SPDIF_SRPC, spdif_priv 1335 sound/soc/fsl/fsl_spdif.c &spdif_priv->regcache_srpc); spdif_priv 1337 sound/soc/fsl/fsl_spdif.c regcache_cache_only(spdif_priv->regmap, true); spdif_priv 1338 sound/soc/fsl/fsl_spdif.c regcache_mark_dirty(spdif_priv->regmap); spdif_priv 1345 sound/soc/fsl/fsl_spdif.c struct fsl_spdif_priv *spdif_priv = dev_get_drvdata(dev); spdif_priv 1347 sound/soc/fsl/fsl_spdif.c regcache_cache_only(spdif_priv->regmap, false); spdif_priv 1349 sound/soc/fsl/fsl_spdif.c regmap_update_bits(spdif_priv->regmap, REG_SPDIF_SRPC, spdif_priv 1351 sound/soc/fsl/fsl_spdif.c spdif_priv->regcache_srpc); spdif_priv 1353 sound/soc/fsl/fsl_spdif.c return regcache_sync(spdif_priv->regmap);