Lines Matching full:esai

3 // Freescale ESAI ALSA SoC Digital Audio Interface (DAI) driver
33 * struct fsl_esai - ESAI private data
39 * @extalclk: esai clock source to derive HCK, SCK and FS
585 /* Remove ESAI personal reset by configuring ESAI_PCRC and ESAI_PRRC */ in fsl_esai_hw_params()
598 /* Reset ESAI unit */ in fsl_esai_hw_init()
603 dev_err(&pdev->dev, "failed to reset ESAI: %d\n", ret); in fsl_esai_hw_init()
608 * We need to enable ESAI so as to access some of its registers. in fsl_esai_hw_init()
615 dev_err(&pdev->dev, "failed to enable ESAI: %d\n", ret); in fsl_esai_hw_init()
658 /* Write initial words reqiured by ESAI as normal procedure */ in fsl_esai_trigger_start()
672 * will trigger esai to start. in fsl_esai_trigger_start()
726 /* Reset the esai, and ignore return value */ in fsl_esai_hw_reset()
729 /* Enforce ESAI personal resets for both TX and RX */ in fsl_esai_hw_reset()
738 /* Remove ESAI personal resets by configuring PCRC and PRRC also */ in fsl_esai_hw_reset()
827 .name = "fsl-esai",
1036 of_property_read_bool(np, "fsl,esai-synchronous"); in fsl_esai_probe()
1116 { .compatible = "fsl,imx35-esai", .data = &fsl_esai_imx35 },
1117 { .compatible = "fsl,vf610-esai", .data = &fsl_esai_vf610 },
1118 { .compatible = "fsl,imx6ull-esai", .data = &fsl_esai_imx6ull },
1125 struct fsl_esai *esai = dev_get_drvdata(dev); in fsl_esai_runtime_resume() local
1132 ret = clk_prepare_enable(esai->coreclk); in fsl_esai_runtime_resume()
1135 if (!IS_ERR(esai->spbaclk)) { in fsl_esai_runtime_resume()
1136 ret = clk_prepare_enable(esai->spbaclk); in fsl_esai_runtime_resume()
1140 if (!IS_ERR(esai->extalclk)) { in fsl_esai_runtime_resume()
1141 ret = clk_prepare_enable(esai->extalclk); in fsl_esai_runtime_resume()
1145 if (!IS_ERR(esai->fsysclk)) { in fsl_esai_runtime_resume()
1146 ret = clk_prepare_enable(esai->fsysclk); in fsl_esai_runtime_resume()
1151 regcache_cache_only(esai->regmap, false); in fsl_esai_runtime_resume()
1153 ret = fsl_esai_register_restore(esai); in fsl_esai_runtime_resume()
1160 if (!IS_ERR(esai->fsysclk)) in fsl_esai_runtime_resume()
1161 clk_disable_unprepare(esai->fsysclk); in fsl_esai_runtime_resume()
1163 if (!IS_ERR(esai->extalclk)) in fsl_esai_runtime_resume()
1164 clk_disable_unprepare(esai->extalclk); in fsl_esai_runtime_resume()
1166 if (!IS_ERR(esai->spbaclk)) in fsl_esai_runtime_resume()
1167 clk_disable_unprepare(esai->spbaclk); in fsl_esai_runtime_resume()
1169 clk_disable_unprepare(esai->coreclk); in fsl_esai_runtime_resume()
1176 struct fsl_esai *esai = dev_get_drvdata(dev); in fsl_esai_runtime_suspend() local
1178 regcache_cache_only(esai->regmap, true); in fsl_esai_runtime_suspend()
1180 if (!IS_ERR(esai->fsysclk)) in fsl_esai_runtime_suspend()
1181 clk_disable_unprepare(esai->fsysclk); in fsl_esai_runtime_suspend()
1182 if (!IS_ERR(esai->extalclk)) in fsl_esai_runtime_suspend()
1183 clk_disable_unprepare(esai->extalclk); in fsl_esai_runtime_suspend()
1184 if (!IS_ERR(esai->spbaclk)) in fsl_esai_runtime_suspend()
1185 clk_disable_unprepare(esai->spbaclk); in fsl_esai_runtime_suspend()
1186 clk_disable_unprepare(esai->coreclk); in fsl_esai_runtime_suspend()
1203 .name = "fsl-esai-dai",
1212 MODULE_DESCRIPTION("Freescale ESAI CPU DAI driver");
1214 MODULE_ALIAS("platform:fsl-esai-dai");