ARM: OMAP: twl-common: Add helper function to register the omap-twl4030 audio driver
authorPeter Ujfalusi <peter.ujfalusi@ti.com>
Tue, 14 Aug 2012 09:07:57 +0000 (12:07 +0300)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Wed, 15 Aug 2012 16:10:00 +0000 (17:10 +0100)
Since several OMAP3 based boards will be using the unified simple audio
driver it is better to not have duplicated code in the board files for this
purpose.
Board files can call omap_twl4030_audio_init(); to set up the needed device
for the audio support.

For example:
omap_twl4030_audio_init("omap3beagle", 26000000);

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
arch/arm/mach-omap2/twl-common.c
arch/arm/mach-omap2/twl-common.h

index de47f170ba50abf2506c363838d7cd82c70109ee..0606f238a2477048a1359d70fd8009914b0e0da9 100644 (file)
@@ -537,3 +537,30 @@ void __init omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
                pmic_data->v2v1 = &omap4_v2v1_idata;
 }
 #endif /* CONFIG_ARCH_OMAP4 */
+
+#if defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030) || \
+       defined(CONFIG_SND_OMAP_SOC_OMAP_TWL4030_MODULE)
+#include <linux/platform_data/omap-twl4030.h>
+
+static struct omap_tw4030_pdata omap_twl4030_audio_data;
+
+static struct platform_device audio_device = {
+       .name           = "omap-twl4030",
+       .id             = -1,
+       .dev = {
+               .platform_data = &omap_twl4030_audio_data,
+       },
+};
+
+void __init omap_twl4030_audio_init(char *card_name)
+{
+       omap_twl4030_audio_data.card_name = card_name;
+       platform_device_register(&audio_device);
+}
+
+#else /* SOC_OMAP_TWL4030 */
+void __init omap_twl4030_audio_init(char *card_name, int codec_sysclk)
+{
+       return;
+}
+#endif /* SOC_OMAP_TWL4030 */
index 8fe71cfd002c96bf168106bb4b12d2e2b0ad4502..cb25b43317a7011f00b1ab2fec763ea62d6a1dc8 100644 (file)
@@ -59,4 +59,6 @@ void omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,
 void omap4_pmic_get_config(struct twl4030_platform_data *pmic_data,
                           u32 pdata_flags, u32 regulators_flags);
 
+void omap_twl4030_audio_init(char *card_name);
+
 #endif /* __OMAP_PMIC_COMMON__ */