diff options
author | Daniel Mack <daniel@caiaq.de> | 2009-03-22 21:04:20 -0400 |
---|---|---|
committer | Eric Miao <eric.miao@marvell.com> | 2009-03-22 22:00:12 -0400 |
commit | e2bb5befd7b0ae2d045f4413a97db52340edec13 (patch) | |
tree | ed416595ac2ee004d21cfced489c310da08e4b08 /arch/arm/mach-pxa | |
parent | 91fcfb908d62038c3c2cdecb7fb8aa2c98cb70a2 (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.c | 24 | ||||
-rw-r--r-- | arch/arm/mach-pxa/colibri-pxa320.c | 20 |
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) | |||
144 | static inline void colibri_pxa300_init_lcd(void) {} | 144 | static 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) | ||
148 | static 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 | |||
157 | static 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 | ||
167 | static inline void colibri_pxa310_init_ac97(void) {} | ||
168 | #endif | ||
169 | |||
147 | void __init colibri_pxa300_init(void) | 170 | void __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) | |||
145 | static inline void colibri_pxa320_init_lcd(void) {} | 145 | static inline void colibri_pxa320_init_lcd(void) {} |
146 | #endif | 146 | #endif |
147 | 147 | ||
148 | #if defined(SND_AC97_CODEC) || defined(SND_AC97_CODEC_MODULE) | ||
149 | static 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 | |||
158 | static 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 | ||
164 | static inline void colibri_pxa320_init_ac97(void) {} | ||
165 | #endif | ||
166 | |||
148 | void __init colibri_pxa320_init(void) | 167 | void __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 | } |