Commit 64ddf1f89cd7a483e1204320395023774234b49a
Committed by
Mark Brown
1 parent
db43b16fa0
ASoC: kirkwood: combine kirkwood-i2s and kirkwood-dma drivers
These really should be a single driver because they're fully integrated in hardware. Make them so. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Mark Brown <broonie@linaro.org>
Showing 9 changed files with 35 additions and 63 deletions Side-by-side Diff
arch/arm/mach-dove/common.c
... | ... | @@ -108,8 +108,8 @@ |
108 | 108 | orion_clkdev_add(NULL, "sdhci-dove.1", sdio1); |
109 | 109 | orion_clkdev_add(NULL, "orion_nand", nand); |
110 | 110 | orion_clkdev_add(NULL, "cafe1000-ccic.0", camera); |
111 | - orion_clkdev_add(NULL, "kirkwood-i2s.0", i2s0); | |
112 | - orion_clkdev_add(NULL, "kirkwood-i2s.1", i2s1); | |
111 | + orion_clkdev_add(NULL, "mvebu-audio.0", i2s0); | |
112 | + orion_clkdev_add(NULL, "mvebu-audio.1", i2s1); | |
113 | 113 | orion_clkdev_add(NULL, "mv_crypto", crypto); |
114 | 114 | orion_clkdev_add(NULL, "dove-ac97", ac97); |
115 | 115 | orion_clkdev_add(NULL, "dove-pdma", pdma); |
arch/arm/mach-kirkwood/common.c
... | ... | @@ -264,7 +264,7 @@ |
264 | 264 | orion_clkdev_add(NULL, MV_XOR_NAME ".1", xor1); |
265 | 265 | orion_clkdev_add("0", "pcie", pex0); |
266 | 266 | orion_clkdev_add("1", "pcie", pex1); |
267 | - orion_clkdev_add(NULL, "kirkwood-i2s", audio); | |
267 | + orion_clkdev_add(NULL, "mvebu-audio", audio); | |
268 | 268 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit); |
269 | 269 | orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".1", runit); |
270 | 270 | |
... | ... | @@ -560,7 +560,7 @@ |
560 | 560 | /***************************************************************************** |
561 | 561 | * Audio |
562 | 562 | ****************************************************************************/ |
563 | -static struct resource kirkwood_i2s_resources[] = { | |
563 | +static struct resource kirkwood_audio_resources[] = { | |
564 | 564 | [0] = { |
565 | 565 | .start = AUDIO_PHYS_BASE, |
566 | 566 | .end = AUDIO_PHYS_BASE + SZ_16K - 1, |
567 | 567 | |
568 | 568 | |
569 | 569 | |
570 | 570 | |
571 | 571 | |
... | ... | @@ -573,29 +573,23 @@ |
573 | 573 | }, |
574 | 574 | }; |
575 | 575 | |
576 | -static struct kirkwood_asoc_platform_data kirkwood_i2s_data = { | |
576 | +static struct kirkwood_asoc_platform_data kirkwood_audio_data = { | |
577 | 577 | .burst = 128, |
578 | 578 | }; |
579 | 579 | |
580 | -static struct platform_device kirkwood_i2s_device = { | |
581 | - .name = "kirkwood-i2s", | |
580 | +static struct platform_device kirkwood_audio_device = { | |
581 | + .name = "mvebu-audio", | |
582 | 582 | .id = -1, |
583 | - .num_resources = ARRAY_SIZE(kirkwood_i2s_resources), | |
584 | - .resource = kirkwood_i2s_resources, | |
583 | + .num_resources = ARRAY_SIZE(kirkwood_audio_resources), | |
584 | + .resource = kirkwood_audio_resources, | |
585 | 585 | .dev = { |
586 | - .platform_data = &kirkwood_i2s_data, | |
586 | + .platform_data = &kirkwood_audio_data, | |
587 | 587 | }, |
588 | 588 | }; |
589 | 589 | |
590 | -static struct platform_device kirkwood_pcm_device = { | |
591 | - .name = "kirkwood-pcm-audio", | |
592 | - .id = -1, | |
593 | -}; | |
594 | - | |
595 | 590 | void __init kirkwood_audio_init(void) |
596 | 591 | { |
597 | - platform_device_register(&kirkwood_i2s_device); | |
598 | - platform_device_register(&kirkwood_pcm_device); | |
592 | + platform_device_register(&kirkwood_audio_device); | |
599 | 593 | } |
600 | 594 | |
601 | 595 | /***************************************************************************** |
sound/soc/kirkwood/Kconfig
... | ... | @@ -6,14 +6,10 @@ |
6 | 6 | the Kirkwood I2S interface. You will also need to select the |
7 | 7 | audio interfaces to support below. |
8 | 8 | |
9 | -config SND_KIRKWOOD_SOC_I2S | |
10 | - tristate | |
11 | - | |
12 | 9 | config SND_KIRKWOOD_SOC_OPENRD |
13 | 10 | tristate "SoC Audio support for Kirkwood Openrd Client" |
14 | 11 | depends on SND_KIRKWOOD_SOC && (MACH_OPENRD_CLIENT || MACH_OPENRD_ULTIMATE || COMPILE_TEST) |
15 | 12 | depends on I2C |
16 | - select SND_KIRKWOOD_SOC_I2S | |
17 | 13 | select SND_SOC_CS42L51 |
18 | 14 | help |
19 | 15 | Say Y if you want to add support for SoC audio on |
... | ... | @@ -22,7 +18,6 @@ |
22 | 18 | config SND_KIRKWOOD_SOC_T5325 |
23 | 19 | tristate "SoC Audio support for HP t5325" |
24 | 20 | depends on SND_KIRKWOOD_SOC && (MACH_T5325 || COMPILE_TEST) && I2C |
25 | - select SND_KIRKWOOD_SOC_I2S | |
26 | 21 | select SND_SOC_ALC5623 |
27 | 22 | help |
28 | 23 | Say Y if you want to add support for SoC audio on |
sound/soc/kirkwood/Makefile
1 | -snd-soc-kirkwood-objs := kirkwood-dma.o | |
2 | -snd-soc-kirkwood-i2s-objs := kirkwood-i2s.o | |
1 | +snd-soc-kirkwood-objs := kirkwood-dma.o kirkwood-i2s.o | |
3 | 2 | |
4 | 3 | obj-$(CONFIG_SND_KIRKWOOD_SOC) += snd-soc-kirkwood.o |
5 | -obj-$(CONFIG_SND_KIRKWOOD_SOC_I2S) += snd-soc-kirkwood-i2s.o | |
6 | 4 | |
7 | 5 | snd-soc-openrd-objs := kirkwood-openrd.o |
8 | 6 | snd-soc-t5325-objs := kirkwood-t5325.o |
sound/soc/kirkwood/kirkwood-dma.c
... | ... | @@ -334,37 +334,9 @@ |
334 | 334 | } |
335 | 335 | } |
336 | 336 | |
337 | -static struct snd_soc_platform_driver kirkwood_soc_platform = { | |
337 | +struct snd_soc_platform_driver kirkwood_soc_platform = { | |
338 | 338 | .ops = &kirkwood_dma_ops, |
339 | 339 | .pcm_new = kirkwood_dma_new, |
340 | 340 | .pcm_free = kirkwood_dma_free_dma_buffers, |
341 | 341 | }; |
342 | - | |
343 | -static int kirkwood_soc_platform_probe(struct platform_device *pdev) | |
344 | -{ | |
345 | - return snd_soc_register_platform(&pdev->dev, &kirkwood_soc_platform); | |
346 | -} | |
347 | - | |
348 | -static int kirkwood_soc_platform_remove(struct platform_device *pdev) | |
349 | -{ | |
350 | - snd_soc_unregister_platform(&pdev->dev); | |
351 | - return 0; | |
352 | -} | |
353 | - | |
354 | -static struct platform_driver kirkwood_pcm_driver = { | |
355 | - .driver = { | |
356 | - .name = "kirkwood-pcm-audio", | |
357 | - .owner = THIS_MODULE, | |
358 | - }, | |
359 | - | |
360 | - .probe = kirkwood_soc_platform_probe, | |
361 | - .remove = kirkwood_soc_platform_remove, | |
362 | -}; | |
363 | - | |
364 | -module_platform_driver(kirkwood_pcm_driver); | |
365 | - | |
366 | -MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>"); | |
367 | -MODULE_DESCRIPTION("Marvell Kirkwood Audio DMA module"); | |
368 | -MODULE_LICENSE("GPL"); | |
369 | -MODULE_ALIAS("platform:kirkwood-pcm-audio"); |
sound/soc/kirkwood/kirkwood-i2s.c
... | ... | @@ -24,7 +24,7 @@ |
24 | 24 | #include <linux/platform_data/asoc-kirkwood.h> |
25 | 25 | #include "kirkwood.h" |
26 | 26 | |
27 | -#define DRV_NAME "kirkwood-i2s" | |
27 | +#define DRV_NAME "mvebu-audio" | |
28 | 28 | |
29 | 29 | #define KIRKWOOD_I2S_FORMATS \ |
30 | 30 | (SNDRV_PCM_FMTBIT_S16_LE | \ |
31 | 31 | |
... | ... | @@ -517,10 +517,20 @@ |
517 | 517 | |
518 | 518 | err = snd_soc_register_component(&pdev->dev, &kirkwood_i2s_component, |
519 | 519 | soc_dai, 1); |
520 | - if (!err) | |
521 | - return 0; | |
522 | - dev_err(&pdev->dev, "snd_soc_register_component failed\n"); | |
520 | + if (err) { | |
521 | + dev_err(&pdev->dev, "snd_soc_register_component failed\n"); | |
522 | + goto err_component; | |
523 | + } | |
523 | 524 | |
525 | + err = snd_soc_register_platform(&pdev->dev, &kirkwood_soc_platform); | |
526 | + if (err) { | |
527 | + dev_err(&pdev->dev, "snd_soc_register_platform failed\n"); | |
528 | + goto err_platform; | |
529 | + } | |
530 | + return 0; | |
531 | + err_platform: | |
532 | + snd_soc_unregister_component(&pdev->dev); | |
533 | + err_component: | |
524 | 534 | if (!IS_ERR(priv->extclk)) |
525 | 535 | clk_disable_unprepare(priv->extclk); |
526 | 536 | clk_disable_unprepare(priv->clk); |
... | ... | @@ -532,6 +542,7 @@ |
532 | 542 | { |
533 | 543 | struct kirkwood_dma_data *priv = dev_get_drvdata(&pdev->dev); |
534 | 544 | |
545 | + snd_soc_unregister_platform(&pdev->dev); | |
535 | 546 | snd_soc_unregister_component(&pdev->dev); |
536 | 547 | |
537 | 548 | if (!IS_ERR(priv->extclk)) |
... | ... | @@ -556,5 +567,5 @@ |
556 | 567 | MODULE_AUTHOR("Arnaud Patard, <arnaud.patard@rtp-net.org>"); |
557 | 568 | MODULE_DESCRIPTION("Kirkwood I2S SoC Interface"); |
558 | 569 | MODULE_LICENSE("GPL"); |
559 | -MODULE_ALIAS("platform:kirkwood-i2s"); | |
570 | +MODULE_ALIAS("platform:mvebu-audio"); |
sound/soc/kirkwood/kirkwood-openrd.c
... | ... | @@ -52,8 +52,8 @@ |
52 | 52 | { |
53 | 53 | .name = "CS42L51", |
54 | 54 | .stream_name = "CS42L51 HiFi", |
55 | - .cpu_dai_name = "kirkwood-i2s", | |
56 | - .platform_name = "kirkwood-pcm-audio", | |
55 | + .cpu_dai_name = "mvebu-audio", | |
56 | + .platform_name = "mvebu-audio", | |
57 | 57 | .codec_dai_name = "cs42l51-hifi", |
58 | 58 | .codec_name = "cs42l51-codec.0-004a", |
59 | 59 | .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS, |
sound/soc/kirkwood/kirkwood-t5325.c
... | ... | @@ -68,8 +68,8 @@ |
68 | 68 | { |
69 | 69 | .name = "ALC5621", |
70 | 70 | .stream_name = "ALC5621 HiFi", |
71 | - .cpu_dai_name = "kirkwood-i2s", | |
72 | - .platform_name = "kirkwood-pcm-audio", | |
71 | + .cpu_dai_name = "mvebu-audio", | |
72 | + .platform_name = "mvebu-audio", | |
73 | 73 | .codec_dai_name = "alc5621-hifi", |
74 | 74 | .codec_name = "alc562x-codec.0-001a", |
75 | 75 | .dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS, |