2013-07-23 08:46:41

by Jean-Francois Moine

[permalink] [raw]
Subject: [PATCH] ARM: kirkwood: extend the kirkwood pcm/dma driver for DT usage

The kirkwood pcm/dma driver is used without DT in the Kirkwood machine.
This patch adds a DT compatible definition for use in other Marvell
machines as the Armada 88AP510 (Dove).

Signed-off-by: Jean-Francois Moine <[email protected]>
---
Documentation/devicetree/bindings/sound/kirkwood-dma.txt | 11 +++++++++++
sound/soc/kirkwood/kirkwood-dma.c | 11 +++++++++++
2 files changed, 22 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/kirkwood-dma.txt b/Documentation/devicetree/bindings/sound/kirkwood-dma.txt
new file mode 100644
index 0000000..9dd2989
--- /dev/null
+++ b/Documentation/devicetree/bindings/sound/kirkwood-dma.txt
@@ -0,0 +1,11 @@
+* mvebu (Kirkwood, Dove, Armada 370) PCM/DMA controller
+
+Required properties:
+
+- compatible: "marvell,mvebu-pcm-audio"
+
+Example:
+
+pcm: pcm {
+ compatible = "marvell,mvebu-pcm-audio";
+};
diff --git a/sound/soc/kirkwood/kirkwood-dma.c b/sound/soc/kirkwood/kirkwood-dma.c
index a9f1453..b91045a 100644
--- a/sound/soc/kirkwood/kirkwood-dma.c
+++ b/sound/soc/kirkwood/kirkwood-dma.c
@@ -19,6 +19,8 @@
#include <linux/dma-mapping.h>
#include <linux/mbus.h>
#include <sound/soc.h>
+#include <linux/of.h>
+
#include "kirkwood.h"

#define KIRKWOOD_RATES \
@@ -383,10 +385,19 @@ static int kirkwood_soc_platform_remove(struct platform_device *pdev)
return 0;
}

+#ifdef CONFIG_OF
+static struct of_device_id kirkwood_pcm_of_match[] = {
+ { .compatible = "marvell,mvebu-pcm-audio" },
+ { }
+};
+MODULE_DEVICE_TABLE(of, kirkwood_pcm_of_match);
+#endif
+
static struct platform_driver kirkwood_pcm_driver = {
.driver = {
.name = "kirkwood-pcm-audio",
.owner = THIS_MODULE,
+ .of_match_table = of_match_ptr(kirkwood_pcm_of_match),
},

.probe = kirkwood_soc_platform_probe,


--
Ken ar c'hentaƱ | ** Breizh ha Linux atav! **
Jef | http://moinejf.free.fr/


2013-07-23 12:58:06

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] ARM: kirkwood: extend the kirkwood pcm/dma driver for DT usage

On Tue, Jul 23, 2013 at 10:46:41AM +0200, Jean-Francois Moine wrote:

> +- compatible: "marvell,mvebu-pcm-audio"
> +
> +Example:
> +
> +pcm: pcm {
> + compatible = "marvell,mvebu-pcm-audio";
> +};

This device has no registers or other hardware - this looks like a stub
device which shouldn't be visible in DT but should instead be created by
the I2S driver - look at how most of the other DT platforms using
dmaengine work.


Attachments:
(No filename) (425.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments

2013-07-23 13:23:29

by Russell King - ARM Linux

[permalink] [raw]
Subject: Re: [PATCH] ARM: kirkwood: extend the kirkwood pcm/dma driver for DT usage

On Tue, Jul 23, 2013 at 01:57:56PM +0100, Mark Brown wrote:
> On Tue, Jul 23, 2013 at 10:46:41AM +0200, Jean-Francois Moine wrote:
>
> > +- compatible: "marvell,mvebu-pcm-audio"
> > +
> > +Example:
> > +
> > +pcm: pcm {
> > + compatible = "marvell,mvebu-pcm-audio";
> > +};
>
> This device has no registers or other hardware - this looks like a stub
> device which shouldn't be visible in DT but should instead be created by
> the I2S driver - look at how most of the other DT platforms using
> dmaengine work.

There is no separate DMA engine on this platform. dmaengine is totally
irrelevant to this hardware.

2013-07-23 13:30:14

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] ARM: kirkwood: extend the kirkwood pcm/dma driver for DT usage

On Tue, Jul 23, 2013 at 02:23:14PM +0100, Russell King - ARM Linux wrote:
> On Tue, Jul 23, 2013 at 01:57:56PM +0100, Mark Brown wrote:

> > This device has no registers or other hardware - this looks like a stub
> > device which shouldn't be visible in DT but should instead be created by
> > the I2S driver - look at how most of the other DT platforms using
> > dmaengine work.

> There is no separate DMA engine on this platform. dmaengine is totally
> irrelevant to this hardware.

The pattern for instantiating a DMA controller that's integrated into
the DAI is the same as that where the DMA controller is a shared IP
accessed via dmaengine so it's still useful to look at these platforms
to see how to do the instnatiation.


Attachments:
(No filename) (732.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments