aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBo Shen <voice.shen@atmel.com>2012-10-11 10:38:16 +0800
committerMark Brown <broonie@opensource.wolfsonmicro.com>2012-11-06 10:11:33 +0100
commitbac91462e8a8609d7be02a2cbf5c2b406b04ed9f (patch)
tree1ed58249628cbe0724be14166699dd4192ab9c32
parentASoC: sam9g20-wm8731: convert to use snd_soc_register_card() (diff)
downloadlinux-dev-bac91462e8a8609d7be02a2cbf5c2b406b04ed9f.tar.xz
linux-dev-bac91462e8a8609d7be02a2cbf5c2b406b04ed9f.zip
ASoC: sam9g20: using platform device for audio part
Signed-off-by: Bo Shen <voice.shen@atmel.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--arch/arm/mach-at91/at91sam9260_devices.c9
-rw-r--r--arch/arm/mach-at91/board-sam9g20ek.c17
2 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
index a76b8684f52d..0f24cfb9e54a 100644
--- a/arch/arm/mach-at91/at91sam9260_devices.c
+++ b/arch/arm/mach-at91/at91sam9260_devices.c
@@ -768,6 +768,14 @@ static inline void configure_ssc_pins(unsigned pins)
at91_set_A_periph(AT91_PIN_PB21, 1);
}
+static struct platform_device at91sam9260_ssc_dai_device = {
+ .name = "atmel-ssc-dai",
+ .id = 0,
+ .dev = {
+ .parent = &(at91sam9260_ssc_device.dev),
+ },
+};
+
/*
* SSC controllers are accessed through library code, instead of any
* kind of all-singing/all-dancing driver. For example one could be
@@ -792,6 +800,7 @@ void __init at91_add_device_ssc(unsigned id, unsigned pins)
}
platform_device_register(pdev);
+ platform_device_register(&at91sam9260_ssc_dai_device);
}
#else
diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c
index 3ab2b86a3762..5b6a6f9a94f4 100644
--- a/arch/arm/mach-at91/board-sam9g20ek.c
+++ b/arch/arm/mach-at91/board-sam9g20ek.c
@@ -353,6 +353,22 @@ static struct i2c_board_info __initdata ek_i2c_devices[] = {
},
};
+static struct platform_device sam9g20ek_pcm_device = {
+ .name = "atmel-pcm-audio",
+ .id = -1,
+};
+
+static struct platform_device sam9g20ek_audio_device = {
+ .name = "at91sam9g20ek-audio",
+ .id = -1,
+};
+
+static void __init ek_add_device_audio(void)
+{
+ platform_device_register(&sam9g20ek_pcm_device);
+ platform_device_register(&sam9g20ek_audio_device);
+}
+
static void __init ek_board_init(void)
{
@@ -394,6 +410,7 @@ static void __init ek_board_init(void)
at91_set_B_periph(AT91_PIN_PC1, 0);
/* SSC (for WM8731) */
at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX);
+ ek_add_device_audio();
}
MACHINE_START(AT91SAM9G20EK, "Atmel AT91SAM9G20-EK")