Lines Matching refs:rpmsg

12 #include <linux/rpmsg.h>
44 struct fsl_rpmsg *rpmsg = snd_soc_dai_get_drvdata(dai);
45 struct clk *p = rpmsg->mclk, *pll = NULL, *npll = NULL;
50 while (p && rpmsg->pll8k && rpmsg->pll11k) {
53 if (clk_is_match(pp, rpmsg->pll8k) ||
54 clk_is_match(pp, rpmsg->pll11k)) {
63 npll = (do_div(rate, 8000) ? rpmsg->pll11k : rpmsg->pll8k);
72 if (!(rpmsg->mclk_streams & BIT(substream->stream))) {
73 ret = clk_prepare_enable(rpmsg->mclk);
79 rpmsg->mclk_streams |= BIT(substream->stream);
88 struct fsl_rpmsg *rpmsg = snd_soc_dai_get_drvdata(dai);
90 if (rpmsg->mclk_streams & BIT(substream->stream)) {
91 clk_disable_unprepare(rpmsg->mclk);
92 rpmsg->mclk_streams &= ~BIT(substream->stream);
138 .name = "fsl-rpmsg",
181 { .compatible = "fsl,imx7ulp-rpmsg-audio", .data = &imx7ulp_data},
182 { .compatible = "fsl,imx8mm-rpmsg-audio", .data = &imx8mm_data},
183 { .compatible = "fsl,imx8mn-rpmsg-audio", .data = &imx8mn_data},
184 { .compatible = "fsl,imx8mp-rpmsg-audio", .data = &imx8mp_data},
185 { .compatible = "fsl,imx8ulp-rpmsg-audio", .data = &imx7ulp_data},
186 { .compatible = "fsl,imx93-rpmsg-audio", .data = &imx93_data},
194 struct fsl_rpmsg *rpmsg;
197 rpmsg = devm_kzalloc(&pdev->dev, sizeof(struct fsl_rpmsg), GFP_KERNEL);
198 if (!rpmsg)
201 rpmsg->soc_data = of_device_get_match_data(&pdev->dev);
203 fsl_rpmsg_dai.playback.rates = rpmsg->soc_data->rates;
204 fsl_rpmsg_dai.capture.rates = rpmsg->soc_data->rates;
205 fsl_rpmsg_dai.playback.formats = rpmsg->soc_data->formats;
206 fsl_rpmsg_dai.capture.formats = rpmsg->soc_data->formats;
209 rpmsg->enable_lpa = 1;
210 rpmsg->buffer_size = LPA_LARGE_BUFFER_SIZE;
212 rpmsg->buffer_size = IMX_DEFAULT_DMABUF_SIZE;
216 rpmsg->ipg = devm_clk_get_optional(&pdev->dev, "ipg");
217 if (IS_ERR(rpmsg->ipg))
218 return PTR_ERR(rpmsg->ipg);
220 rpmsg->mclk = devm_clk_get_optional(&pdev->dev, "mclk");
221 if (IS_ERR(rpmsg->mclk))
222 return PTR_ERR(rpmsg->mclk);
224 rpmsg->dma = devm_clk_get_optional(&pdev->dev, "dma");
225 if (IS_ERR(rpmsg->dma))
226 return PTR_ERR(rpmsg->dma);
228 rpmsg->pll8k = devm_clk_get_optional(&pdev->dev, "pll8k");
229 if (IS_ERR(rpmsg->pll8k))
230 return PTR_ERR(rpmsg->pll8k);
232 rpmsg->pll11k = devm_clk_get_optional(&pdev->dev, "pll11k");
233 if (IS_ERR(rpmsg->pll11k))
234 return PTR_ERR(rpmsg->pll11k);
236 platform_set_drvdata(pdev, rpmsg);
244 rpmsg->card_pdev = platform_device_register_data(&pdev->dev,
245 "imx-audio-rpmsg",
249 if (IS_ERR(rpmsg->card_pdev)) {
250 dev_err(&pdev->dev, "failed to register rpmsg card\n");
251 ret = PTR_ERR(rpmsg->card_pdev);
264 struct fsl_rpmsg *rpmsg = platform_get_drvdata(pdev);
268 if (rpmsg->card_pdev)
269 platform_device_unregister(rpmsg->card_pdev);
275 struct fsl_rpmsg *rpmsg = dev_get_drvdata(dev);
278 ret = clk_prepare_enable(rpmsg->ipg);
284 ret = clk_prepare_enable(rpmsg->dma);
293 clk_disable_unprepare(rpmsg->ipg);
300 struct fsl_rpmsg *rpmsg = dev_get_drvdata(dev);
302 clk_disable_unprepare(rpmsg->dma);
303 clk_disable_unprepare(rpmsg->ipg);