]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/commitdiff
[ARM] pxa: AC97 pin functions for Colibri PXA310/320
authorDaniel Mack <daniel@caiaq.de>
Mon, 23 Mar 2009 01:04:20 +0000 (02:04 +0100)
committerEric Miao <eric.miao@marvell.com>
Mon, 23 Mar 2009 02:00:12 +0000 (10:00 +0800)
Signed-off-by: Daniel Mack <daniel@caiaq.de>
Cc: Matthias Meier <matthias.j.meier@gmx.net>
Signed-off-by: Eric Miao <eric.miao@marvell.com>
arch/arm/mach-pxa/colibri-pxa300.c
arch/arm/mach-pxa/colibri-pxa320.c

index 2858a597870935cec8f2aadf0cebc1b0a6c54d8d..169ab552c21ab8a9c9734d5f6667a3f68a2bc59c 100644 (file)
@@ -144,12 +144,36 @@ static void __init colibri_pxa300_init_lcd(void)
 static inline void colibri_pxa300_init_lcd(void) {}
 #endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */
 
+#if defined(SND_AC97_CODEC) || defined(SND_AC97_CODEC_MODULE)
+static mfp_cfg_t colibri_pxa310_ac97_pin_config[] __initdata = {
+       GPIO24_AC97_SYSCLK,
+       GPIO23_AC97_nACRESET,
+       GPIO25_AC97_SDATA_IN_0,
+       GPIO27_AC97_SDATA_OUT,
+       GPIO28_AC97_SYNC,
+       GPIO29_AC97_BITCLK
+};
+
+static inline void __init colibri_pxa310_init_ac97(void)
+{
+       /* no AC97 codec on Colibri PXA300 */
+       if (!cpu_is_pxa310())
+               return;
+
+       pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa310_ac97_pin_config));
+       pxa_set_ac97_info(NULL);
+}
+#else
+static inline void colibri_pxa310_init_ac97(void) {}
+#endif
+
 void __init colibri_pxa300_init(void)
 {
        colibri_pxa300_init_eth();
        colibri_pxa300_init_ohci();
        colibri_pxa300_init_lcd();
        colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO49_GPIO));
+       colibri_pxa310_init_ac97();
        colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa300_mmc_pin_config),
                                mfp_to_gpio(MFP_PIN_GPIO13));
 }
index b6773674351823e97aaf53160a4fefe390df81af..573a9a1dd52925a7485df106918931517313a4e7 100644 (file)
@@ -145,12 +145,32 @@ static void __init colibri_pxa320_init_lcd(void)
 static inline void colibri_pxa320_init_lcd(void) {}
 #endif
 
+#if defined(SND_AC97_CODEC) || defined(SND_AC97_CODEC_MODULE)
+static mfp_cfg_t colibri_pxa320_ac97_pin_config[] __initdata = {
+       GPIO34_AC97_SYSCLK,
+       GPIO35_AC97_SDATA_IN_0,
+       GPIO37_AC97_SDATA_OUT,
+       GPIO38_AC97_SYNC,
+       GPIO39_AC97_BITCLK,
+       GPIO40_AC97_nACRESET
+};
+
+static inline void __init colibri_pxa320_init_ac97(void)
+{
+       pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_ac97_pin_config));
+       pxa_set_ac97_info(NULL);
+}
+#else
+static inline void colibri_pxa320_init_ac97(void) {}
+#endif
+
 void __init colibri_pxa320_init(void)
 {
        colibri_pxa320_init_eth();
        colibri_pxa320_init_ohci();
        colibri_pxa320_init_lcd();
        colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO39_GPIO));
+       colibri_pxa320_init_ac97();
        colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa320_mmc_pin_config),
                                mfp_to_gpio(MFP_PIN_GPIO28));
 }