Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 64ddf1f8 authored by Russell King's avatar Russell King Committed by Mark Brown
Browse files

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: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent db43b16f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -108,8 +108,8 @@ static void __init dove_clk_init(void)
	orion_clkdev_add(NULL, "sdhci-dove.1", sdio1);
	orion_clkdev_add(NULL, "orion_nand", nand);
	orion_clkdev_add(NULL, "cafe1000-ccic.0", camera);
	orion_clkdev_add(NULL, "kirkwood-i2s.0", i2s0);
	orion_clkdev_add(NULL, "kirkwood-i2s.1", i2s1);
	orion_clkdev_add(NULL, "mvebu-audio.0", i2s0);
	orion_clkdev_add(NULL, "mvebu-audio.1", i2s1);
	orion_clkdev_add(NULL, "mv_crypto", crypto);
	orion_clkdev_add(NULL, "dove-ac97", ac97);
	orion_clkdev_add(NULL, "dove-pdma", pdma);
+9 −15
Original line number Diff line number Diff line
@@ -264,7 +264,7 @@ void __init kirkwood_clk_init(void)
	orion_clkdev_add(NULL, MV_XOR_NAME ".1", xor1);
	orion_clkdev_add("0", "pcie", pex0);
	orion_clkdev_add("1", "pcie", pex1);
	orion_clkdev_add(NULL, "kirkwood-i2s", audio);
	orion_clkdev_add(NULL, "mvebu-audio", audio);
	orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".0", runit);
	orion_clkdev_add(NULL, MV64XXX_I2C_CTLR_NAME ".1", runit);

@@ -560,7 +560,7 @@ void __init kirkwood_timer_init(void)
/*****************************************************************************
 * Audio
 ****************************************************************************/
static struct resource kirkwood_i2s_resources[] = {
static struct resource kirkwood_audio_resources[] = {
	[0] = {
		.start  = AUDIO_PHYS_BASE,
		.end    = AUDIO_PHYS_BASE + SZ_16K - 1,
@@ -573,29 +573,23 @@ static struct resource kirkwood_i2s_resources[] = {
	},
};

static struct kirkwood_asoc_platform_data kirkwood_i2s_data = {
static struct kirkwood_asoc_platform_data kirkwood_audio_data = {
	.burst       = 128,
};

static struct platform_device kirkwood_i2s_device = {
	.name		= "kirkwood-i2s",
static struct platform_device kirkwood_audio_device = {
	.name		= "mvebu-audio",
	.id		= -1,
	.num_resources	= ARRAY_SIZE(kirkwood_i2s_resources),
	.resource	= kirkwood_i2s_resources,
	.num_resources	= ARRAY_SIZE(kirkwood_audio_resources),
	.resource	= kirkwood_audio_resources,
	.dev		= {
		.platform_data	= &kirkwood_i2s_data,
		.platform_data	= &kirkwood_audio_data,
	},
};

static struct platform_device kirkwood_pcm_device = {
	.name		= "kirkwood-pcm-audio",
	.id		= -1,
};

void __init kirkwood_audio_init(void)
{
	platform_device_register(&kirkwood_i2s_device);
	platform_device_register(&kirkwood_pcm_device);
	platform_device_register(&kirkwood_audio_device);
}

/*****************************************************************************
+0 −5
Original line number Diff line number Diff line
@@ -6,14 +6,10 @@ config SND_KIRKWOOD_SOC
	  the Kirkwood I2S interface. You will also need to select the
	  audio interfaces to support below.

config SND_KIRKWOOD_SOC_I2S
	tristate

config SND_KIRKWOOD_SOC_OPENRD
	tristate "SoC Audio support for Kirkwood Openrd Client"
	depends on SND_KIRKWOOD_SOC && (MACH_OPENRD_CLIENT || MACH_OPENRD_ULTIMATE || COMPILE_TEST)
	depends on I2C
	select SND_KIRKWOOD_SOC_I2S
	select SND_SOC_CS42L51
	help
	  Say Y if you want to add support for SoC audio on
@@ -22,7 +18,6 @@ config SND_KIRKWOOD_SOC_OPENRD
config SND_KIRKWOOD_SOC_T5325
	tristate "SoC Audio support for HP t5325"
	depends on SND_KIRKWOOD_SOC && (MACH_T5325 || COMPILE_TEST) && I2C
	select SND_KIRKWOOD_SOC_I2S
	select SND_SOC_ALC5623
	help
	  Say Y if you want to add support for SoC audio on
+1 −3
Original line number Diff line number Diff line
snd-soc-kirkwood-objs := kirkwood-dma.o
snd-soc-kirkwood-i2s-objs := kirkwood-i2s.o
snd-soc-kirkwood-objs := kirkwood-dma.o kirkwood-i2s.o

obj-$(CONFIG_SND_KIRKWOOD_SOC) += snd-soc-kirkwood.o
obj-$(CONFIG_SND_KIRKWOOD_SOC_I2S) += snd-soc-kirkwood-i2s.o

snd-soc-openrd-objs := kirkwood-openrd.o
snd-soc-t5325-objs := kirkwood-t5325.o
+1 −29
Original line number Diff line number Diff line
@@ -334,36 +334,8 @@ static void kirkwood_dma_free_dma_buffers(struct snd_pcm *pcm)
	}
}

static struct snd_soc_platform_driver kirkwood_soc_platform = {
struct snd_soc_platform_driver kirkwood_soc_platform = {
	.ops		= &kirkwood_dma_ops,
	.pcm_new	= kirkwood_dma_new,
	.pcm_free	= kirkwood_dma_free_dma_buffers,
};

static int kirkwood_soc_platform_probe(struct platform_device *pdev)
{
	return snd_soc_register_platform(&pdev->dev, &kirkwood_soc_platform);
}

static int kirkwood_soc_platform_remove(struct platform_device *pdev)
{
	snd_soc_unregister_platform(&pdev->dev);
	return 0;
}

static struct platform_driver kirkwood_pcm_driver = {
	.driver = {
			.name = "kirkwood-pcm-audio",
			.owner = THIS_MODULE,
	},

	.probe = kirkwood_soc_platform_probe,
	.remove = kirkwood_soc_platform_remove,
};

module_platform_driver(kirkwood_pcm_driver);

MODULE_AUTHOR("Arnaud Patard <arnaud.patard@rtp-net.org>");
MODULE_DESCRIPTION("Marvell Kirkwood Audio DMA module");
MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:kirkwood-pcm-audio");
Loading