提交 3a5e517b 编写于 作者: M Markus Pargmann 提交者: Mark Brown

ASoC: fsl-ssi: Use generic DMA bindings if possible

There may be some platforms using fsl-ssi that do not have a DMA driver
with generic DMA bindings. So this patch adds support for the generic
DMA bindings, while still accepting the old "fsl,dma-events" property if
"dmas" is not found.
Signed-off-by: NMarkus Pargmann <mpa@pengutronix.de>
Tested-by: NShawn Guo <shawn.guo@linaro.org>
Signed-off-by: NMark Brown <broonie@linaro.org>
上级 de623ece
...@@ -51,6 +51,10 @@ Optional properties: ...@@ -51,6 +51,10 @@ Optional properties:
filter the codec stream. This is necessary for some boards filter the codec stream. This is necessary for some boards
where an incompatible codec is connected to this SSI, e.g. where an incompatible codec is connected to this SSI, e.g.
on pca100 and pcm043. on pca100 and pcm043.
- dmas: Generic dma devicetree binding as described in
Documentation/devicetree/bindings/dma/dma.txt.
- dma-names: Two dmas have to be defined, "tx" and "rx", if fsl,imx-fiq
is not defined.
Child 'codec' node required properties: Child 'codec' node required properties:
- compatible: Compatible list, contains the name of the codec - compatible: Compatible list, contains the name of the codec
......
...@@ -794,15 +794,19 @@ static int fsl_ssi_probe(struct platform_device *pdev) ...@@ -794,15 +794,19 @@ static int fsl_ssi_probe(struct platform_device *pdev)
&ssi_private->filter_data_tx; &ssi_private->filter_data_tx;
ssi_private->dma_params_rx.filter_data = ssi_private->dma_params_rx.filter_data =
&ssi_private->filter_data_rx; &ssi_private->filter_data_rx;
/* if (!of_property_read_bool(pdev->dev.of_node, "dmas") &&
* TODO: This is a temporary solution and should be changed ssi_private->use_dma) {
* to use generic DMA binding later when the helplers get in. /*
*/ * FIXME: This is a temporary solution until all
ret = of_property_read_u32_array(pdev->dev.of_node, * necessary dma drivers support the generic dma
* bindings.
*/
ret = of_property_read_u32_array(pdev->dev.of_node,
"fsl,ssi-dma-events", dma_events, 2); "fsl,ssi-dma-events", dma_events, 2);
if (ret && !ssi_private->use_dma) { if (ret && ssi_private->use_dma) {
dev_err(&pdev->dev, "could not get dma events\n"); dev_err(&pdev->dev, "could not get dma events but fsl-ssi is configured to use DMA\n");
goto error_clk; goto error_clk;
}
} }
shared = of_device_is_compatible(of_get_parent(np), shared = of_device_is_compatible(of_get_parent(np),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册