aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa
diff options
context:
space:
mode:
authorDaniel Mack <daniel@caiaq.de>2009-03-22 21:04:20 -0400
committerEric Miao <eric.miao@marvell.com>2009-03-22 22:00:12 -0400
commite2bb5befd7b0ae2d045f4413a97db52340edec13 (patch)
treeed416595ac2ee004d21cfced489c310da08e4b08 /arch/arm/mach-pxa
parent91fcfb908d62038c3c2cdecb7fb8aa2c98cb70a2 (diff)
[ARM] pxa: AC97 pin functions for Colibri PXA310/320
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>
Diffstat (limited to 'arch/arm/mach-pxa')
-rw-r--r--arch/arm/mach-pxa/colibri-pxa300.c24
-rw-r--r--arch/arm/mach-pxa/colibri-pxa320.c20
2 files changed, 44 insertions, 0 deletions
diff --git a/arch/arm/mach-pxa/colibri-pxa300.c b/arch/arm/mach-pxa/colibri-pxa300.c
index 2858a5978709..169ab552c21a 100644
--- a/arch/arm/mach-pxa/colibri-pxa300.c
+++ b/arch/arm/mach-pxa/colibri-pxa300.c
@@ -144,12 +144,36 @@ static void __init colibri_pxa300_init_lcd(void)
144static inline void colibri_pxa300_init_lcd(void) {} 144static inline void colibri_pxa300_init_lcd(void) {}
145#endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */ 145#endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */
146 146
147#if defined(SND_AC97_CODEC) || defined(SND_AC97_CODEC_MODULE)
148static mfp_cfg_t colibri_pxa310_ac97_pin_config[] __initdata = {
149 GPIO24_AC97_SYSCLK,
150 GPIO23_AC97_nACRESET,
151 GPIO25_AC97_SDATA_IN_0,
152 GPIO27_AC97_SDATA_OUT,
153 GPIO28_AC97_SYNC,
154 GPIO29_AC97_BITCLK
155};
156
157static inline void __init colibri_pxa310_init_ac97(void)
158{
159 /* no AC97 codec on Colibri PXA300 */
160 if (!cpu_is_pxa310())
161 return;
162
163 pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa310_ac97_pin_config));
164 pxa_set_ac97_info(NULL);
165}
166#else
167static inline void colibri_pxa310_init_ac97(void) {}
168#endif
169
147void __init colibri_pxa300_init(void) 170void __init colibri_pxa300_init(void)
148{ 171{
149 colibri_pxa300_init_eth(); 172 colibri_pxa300_init_eth();
150 colibri_pxa300_init_ohci(); 173 colibri_pxa300_init_ohci();
151 colibri_pxa300_init_lcd(); 174 colibri_pxa300_init_lcd();
152 colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO49_GPIO)); 175 colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO49_GPIO));
176 colibri_pxa310_init_ac97();
153 colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa300_mmc_pin_config), 177 colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa300_mmc_pin_config),
154 mfp_to_gpio(MFP_PIN_GPIO13)); 178 mfp_to_gpio(MFP_PIN_GPIO13));
155} 179}
diff --git a/arch/arm/mach-pxa/colibri-pxa320.c b/arch/arm/mach-pxa/colibri-pxa320.c
index b67736743518..573a9a1dd529 100644
--- a/arch/arm/mach-pxa/colibri-pxa320.c
+++ b/arch/arm/mach-pxa/colibri-pxa320.c
@@ -145,12 +145,32 @@ static void __init colibri_pxa320_init_lcd(void)
145static inline void colibri_pxa320_init_lcd(void) {} 145static inline void colibri_pxa320_init_lcd(void) {}
146#endif 146#endif
147 147
148#if defined(SND_AC97_CODEC) || defined(SND_AC97_CODEC_MODULE)
149static mfp_cfg_t colibri_pxa320_ac97_pin_config[] __initdata = {
150 GPIO34_AC97_SYSCLK,
151 GPIO35_AC97_SDATA_IN_0,
152 GPIO37_AC97_SDATA_OUT,
153 GPIO38_AC97_SYNC,
154 GPIO39_AC97_BITCLK,
155 GPIO40_AC97_nACRESET
156};
157
158static inline void __init colibri_pxa320_init_ac97(void)
159{
160 pxa3xx_mfp_config(ARRAY_AND_SIZE(colibri_pxa320_ac97_pin_config));
161 pxa_set_ac97_info(NULL);
162}
163#else
164static inline void colibri_pxa320_init_ac97(void) {}
165#endif
166
148void __init colibri_pxa320_init(void) 167void __init colibri_pxa320_init(void)
149{ 168{
150 colibri_pxa320_init_eth(); 169 colibri_pxa320_init_eth();
151 colibri_pxa320_init_ohci(); 170 colibri_pxa320_init_ohci();
152 colibri_pxa320_init_lcd(); 171 colibri_pxa320_init_lcd();
153 colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO39_GPIO)); 172 colibri_pxa3xx_init_lcd(mfp_to_gpio(GPIO39_GPIO));
173 colibri_pxa320_init_ac97();
154 colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa320_mmc_pin_config), 174 colibri_pxa3xx_init_mmc(ARRAY_AND_SIZE(colibri_pxa320_mmc_pin_config),
155 mfp_to_gpio(MFP_PIN_GPIO28)); 175 mfp_to_gpio(MFP_PIN_GPIO28));
156} 176}