ASoc: kirkwood: add DT support to the mvebu audio subsystem
Subsystems (3)
PATCH v5 1/1 ASoc: kirkwood: add DT support to the mvebu audio subsystem
This patch adds DT support to the audio subsystem of the mvebu family (Kirkwood, Dove, Armada 370).
Signed-off-by Jean-Francois Moine <[email protected]>
---
This patch does not add any new function as S/PDIF or DPCM support.
--- .../devicetree/bindings/sound/mvebu-audio.txt | 29 ++++++++++++++++++++++ sound/soc/kirkwood/kirkwood-i2s.c | 26 +++++++++++++++++----- 2 files changed, 49 insertions(+), 6 deletions(-)
Documentation/devicetree/bindings/sound/mvebu-audio.txt new file +29 -0
@@ -0,0 +1,29 @@ +* mvebu (Kirkwood, Dove, Armada 370) audio controller + +Required properties: + +- compatible: "marvell,mvebu-audio" + +- reg: physical base address of the controller and length of memory mapped + region. + +- interrupts: list of two irq numbers. + The first irq is used for data flow and the second one is used for errors. + +- clocks: one or two phandles. + The first one is mandatory and defines the internal clock. + The second one is optional and defines an external clock. + +- clock-names: names associated to the clocks: + "internal" for the internal clock + "extclk" for the external clock + +Example: + +i2s1: audio-controller@b4000 { + compatible = "marvell,mvebu-audio"; + reg = <0xb4000 0x2210>; + interrupts = <21>, <22>; + clocks = <&gate_clk 13>; + clock-names = "internal"; +};
sound/soc/kirkwood/kirkwood-i2s.c renamed from sound/soc/kirkwood/kirkwood-i2s.c.next +20 -6
@@ -22,6 +22,8 @@#include <sound/pcm_params.h> #include <sound/soc.h> #include <linux/platform_data/asoc-kirkwood.h> +#include <linux/of.h> +#include "kirkwood.h" #define DRV_NAME "mvebu-audio"
@@ -453,6 +455,7 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)struct snd_soc_dai_driver *soc_dai = &kirkwood_i2s_dai;struct kirkwood_dma_data *priv;struct resource *mem; +struct device_node *np = pdev->dev.of_node;int err; priv =devm_kzalloc (&pdev->dev,sizeof (*priv),GFP_KERNEL );
@@ -473,14 +476,16 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev)return -ENXIO ; } -if (!data) { -dev_err (&pdev->dev,"no platform data ?!\n" ); +if (np) { + priv->burst =128 ;/* might be 32 or 128 */ + }else if (data) { + priv->burst = data->burst; + }else { +dev_err (&pdev->dev,"no DT nor platform data ?!\n" );return -EINVAL ; } - priv->burst = data->burst; - - priv->clk =devm_clk_get (&pdev->dev,NULL ); + priv->clk =devm_clk_get (&pdev->dev, np ?"internal" :NULL );if (IS_ERR (priv->clk)) {dev_err (&pdev->dev,"no clock\n" );return PTR_ERR (priv->clk);
@@ -507,7 +512,7 @@ static int kirkwood_i2s_dev_probe(struct platform_device *pdev) priv->ctl_rec =KIRKWOOD_RECCTL_SIZE_24 ;/* Select the burst size */ -if (data->burst ==32 ) { +if (priv->burst ==32 ) { priv->ctl_play |=KIRKWOOD_PLAYCTL_BURST_32 ; priv->ctl_rec |=KIRKWOOD_RECCTL_BURST_32 ; }else {
@@ -552,12 +557,21 @@ static int kirkwood_i2s_dev_remove(struct platform_device *pdev)return 0 ; } +#ifdef CONFIG_OF +static struct of_device_id mvebu_audio_of_match[] = { + { .compatible ="marvell,mvebu-audio" }, + { } +}; +MODULE_DEVICE_TABLE (of, mvebu_audio_of_match); +#endif +static struct platform_driver kirkwood_i2s_driver = { .probe = kirkwood_i2s_dev_probe, .remove = kirkwood_i2s_dev_remove, .driver = { .name =DRV_NAME , .owner =THIS_MODULE , + .of_match_table =of_match_ptr (mvebu_audio_of_match), }, };
Signature · 2 lines
Ken ar c'hentañ | ** Breizh ha Linux atav! ** Jef | http://moinejf.free.fr/
Mark Brown
maintainerQuoted 2 lines · Jean-Francois Moine
This patch adds DT support to the audio subsystem of the mvebu family (Kirkwood, Dove, Armada 370).
Applied, thanks.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20130822/b7ee4a4a/attachment-0001.sig>