15 #include <linux/module.h>
23 #include <mach/hardware.h>
24 #include <mach/regs-ac97.h>
30 static void pxa2xx_ac97_warm_reset(
struct snd_ac97 *ac97)
37 static void pxa2xx_ac97_cold_reset(
struct snd_ac97 *ac97)
47 .warm_reset = pxa2xx_ac97_warm_reset,
48 .reset = pxa2xx_ac97_cold_reset,
52 .name =
"AC97 PCM Stereo out",
60 .name =
"AC97 PCM Stereo in",
68 .name =
"AC97 Aux PCM (Slot 5) Mono out",
76 .name =
"AC97 Aux PCM (Slot 5) Mono in",
84 .name =
"AC97 Mic PCM (Slot 6) Mono in",
103 #define pxa2xx_ac97_suspend NULL
104 #define pxa2xx_ac97_resume NULL
125 dma_data = &pxa2xx_ac97_pcm_stereo_out;
127 dma_data = &pxa2xx_ac97_pcm_stereo_in;
129 snd_soc_dai_set_dma_data(cpu_dai, substream, dma_data);
141 dma_data = &pxa2xx_ac97_pcm_aux_mono_out;
143 dma_data = &pxa2xx_ac97_pcm_aux_mono_in;
145 snd_soc_dai_set_dma_data(cpu_dai, substream, dma_data);
157 snd_soc_dai_set_dma_data(cpu_dai, substream,
158 &pxa2xx_ac97_pcm_mic_mono_in);
163 #define PXA2XX_AC97_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\
164 SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | \
165 SNDRV_PCM_RATE_48000)
168 .hw_params = pxa2xx_ac97_hw_params,
172 .hw_params = pxa2xx_ac97_hw_aux_params,
176 .hw_params = pxa2xx_ac97_hw_mic_params,
185 .name =
"pxa2xx-ac97",
187 .probe = pxa2xx_ac97_probe,
188 .remove = pxa2xx_ac97_remove,
192 .stream_name =
"AC97 Playback",
198 .stream_name =
"AC97 Capture",
203 .ops = &pxa_ac97_hifi_dai_ops,
206 .name =
"pxa2xx-ac97-aux",
209 .stream_name =
"AC97 Aux Playback",
215 .stream_name =
"AC97 Aux Capture",
220 .ops = &pxa_ac97_aux_dai_ops,
223 .name =
"pxa2xx-ac97-mic",
226 .stream_name =
"AC97 Mic Capture",
231 .ops = &pxa_ac97_mic_dai_ops,
239 if (pdev->
id != -1) {
240 dev_err(&pdev->
dev,
"PXA2xx has only one AC97 port.\n");
259 .probe = pxa2xx_ac97_dev_probe,
262 .name =
"pxa2xx-ac97",