Lines Matching full:rpmsg

12 #include <linux/rpmsg.h>
44 struct fsl_rpmsg *rpmsg = snd_soc_dai_get_drvdata(dai); in fsl_rpmsg_hw_params() local
45 struct clk *p = rpmsg->mclk, *pll = NULL, *npll = NULL; in fsl_rpmsg_hw_params()
50 while (p && rpmsg->pll8k && rpmsg->pll11k) { in fsl_rpmsg_hw_params()
53 if (clk_is_match(pp, rpmsg->pll8k) || in fsl_rpmsg_hw_params()
54 clk_is_match(pp, rpmsg->pll11k)) { in fsl_rpmsg_hw_params()
63 npll = (do_div(rate, 8000) ? rpmsg->pll11k : rpmsg->pll8k); in fsl_rpmsg_hw_params()
72 if (!(rpmsg->mclk_streams & BIT(substream->stream))) { in fsl_rpmsg_hw_params()
73 ret = clk_prepare_enable(rpmsg->mclk); in fsl_rpmsg_hw_params()
79 rpmsg->mclk_streams |= BIT(substream->stream); in fsl_rpmsg_hw_params()
88 struct fsl_rpmsg *rpmsg = snd_soc_dai_get_drvdata(dai); in fsl_rpmsg_hw_free() local
90 if (rpmsg->mclk_streams & BIT(substream->stream)) { in fsl_rpmsg_hw_free()
91 clk_disable_unprepare(rpmsg->mclk); in fsl_rpmsg_hw_free()
92 rpmsg->mclk_streams &= ~BIT(substream->stream); in fsl_rpmsg_hw_free()
138 .name = "fsl-rpmsg",
142 { .compatible = "fsl,imx7ulp-rpmsg-audio"},
143 { .compatible = "fsl,imx8mm-rpmsg-audio"},
144 { .compatible = "fsl,imx8mn-rpmsg-audio"},
145 { .compatible = "fsl,imx8mp-rpmsg-audio"},
153 struct fsl_rpmsg *rpmsg; in fsl_rpmsg_probe() local
156 rpmsg = devm_kzalloc(&pdev->dev, sizeof(struct fsl_rpmsg), GFP_KERNEL); in fsl_rpmsg_probe()
157 if (!rpmsg) in fsl_rpmsg_probe()
161 rpmsg->enable_lpa = 1; in fsl_rpmsg_probe()
162 rpmsg->buffer_size = LPA_LARGE_BUFFER_SIZE; in fsl_rpmsg_probe()
164 rpmsg->buffer_size = IMX_DEFAULT_DMABUF_SIZE; in fsl_rpmsg_probe()
168 rpmsg->ipg = devm_clk_get_optional(&pdev->dev, "ipg"); in fsl_rpmsg_probe()
169 if (IS_ERR(rpmsg->ipg)) in fsl_rpmsg_probe()
170 return PTR_ERR(rpmsg->ipg); in fsl_rpmsg_probe()
172 rpmsg->mclk = devm_clk_get_optional(&pdev->dev, "mclk"); in fsl_rpmsg_probe()
173 if (IS_ERR(rpmsg->mclk)) in fsl_rpmsg_probe()
174 return PTR_ERR(rpmsg->mclk); in fsl_rpmsg_probe()
176 rpmsg->dma = devm_clk_get_optional(&pdev->dev, "dma"); in fsl_rpmsg_probe()
177 if (IS_ERR(rpmsg->dma)) in fsl_rpmsg_probe()
178 return PTR_ERR(rpmsg->dma); in fsl_rpmsg_probe()
180 rpmsg->pll8k = devm_clk_get_optional(&pdev->dev, "pll8k"); in fsl_rpmsg_probe()
181 if (IS_ERR(rpmsg->pll8k)) in fsl_rpmsg_probe()
182 return PTR_ERR(rpmsg->pll8k); in fsl_rpmsg_probe()
184 rpmsg->pll11k = devm_clk_get_optional(&pdev->dev, "pll11k"); in fsl_rpmsg_probe()
185 if (IS_ERR(rpmsg->pll11k)) in fsl_rpmsg_probe()
186 return PTR_ERR(rpmsg->pll11k); in fsl_rpmsg_probe()
188 platform_set_drvdata(pdev, rpmsg); in fsl_rpmsg_probe()
196 rpmsg->card_pdev = platform_device_register_data(&pdev->dev, in fsl_rpmsg_probe()
197 "imx-audio-rpmsg", in fsl_rpmsg_probe()
201 if (IS_ERR(rpmsg->card_pdev)) { in fsl_rpmsg_probe()
202 dev_err(&pdev->dev, "failed to register rpmsg card\n"); in fsl_rpmsg_probe()
203 ret = PTR_ERR(rpmsg->card_pdev); in fsl_rpmsg_probe()
212 struct fsl_rpmsg *rpmsg = platform_get_drvdata(pdev); in fsl_rpmsg_remove() local
214 if (rpmsg->card_pdev) in fsl_rpmsg_remove()
215 platform_device_unregister(rpmsg->card_pdev); in fsl_rpmsg_remove()
223 struct fsl_rpmsg *rpmsg = dev_get_drvdata(dev); in fsl_rpmsg_runtime_resume() local
226 ret = clk_prepare_enable(rpmsg->ipg); in fsl_rpmsg_runtime_resume()
232 ret = clk_prepare_enable(rpmsg->dma); in fsl_rpmsg_runtime_resume()
241 clk_disable_unprepare(rpmsg->ipg); in fsl_rpmsg_runtime_resume()
248 struct fsl_rpmsg *rpmsg = dev_get_drvdata(dev); in fsl_rpmsg_runtime_suspend() local
250 clk_disable_unprepare(rpmsg->dma); in fsl_rpmsg_runtime_suspend()
251 clk_disable_unprepare(rpmsg->ipg); in fsl_rpmsg_runtime_suspend()