Lines Matching +full:ac97 +full:- +full:controller

1 // SPDX-License-Identifier: GPL-2.0-only
3 * linux/sound/pxa2xx-ac97.c -- AC97 support for the Intel PXA2xx chip.
15 #include <linux/dma/pxa-dma.h>
17 #include <sound/ac97/controller.h>
21 #include <sound/pxa2xx-lib.h>
24 #include <linux/platform_data/asoc-pxa.h>
28 #define MCDR 0x0060 /* Mic-in FIFO Data Register */
98 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) in pxa2xx_ac97_hifi_startup()
113 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) in pxa2xx_ac97_aux_startup()
126 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) in pxa2xx_ac97_mic_startup()
127 return -ENODEV; in pxa2xx_ac97_mic_startup()
151 * There is only 1 physical AC97 interface for pxa2xx, but it
156 .name = "pxa2xx-ac97",
158 .stream_name = "AC97 Playback",
164 .stream_name = "AC97 Capture",
172 .name = "pxa2xx-ac97-aux",
174 .stream_name = "AC97 Aux Playback",
180 .stream_name = "AC97 Aux Capture",
188 .name = "pxa2xx-ac97-mic",
190 .stream_name = "AC97 Mic Capture",
200 .name = "pxa-ac97",
212 { .compatible = "marvell,pxa250-ac97", },
213 { .compatible = "marvell,pxa270-ac97", },
214 { .compatible = "marvell,pxa300-ac97", },
225 pxa2xx_audio_ops_t *pdata = pdev->dev.platform_data; in pxa2xx_ac97_dev_probe()
229 if (pdev->id != -1) { in pxa2xx_ac97_dev_probe()
230 dev_err(&pdev->dev, "PXA2xx has only one AC97 port.\n"); in pxa2xx_ac97_dev_probe()
231 return -ENXIO; in pxa2xx_ac97_dev_probe()
236 return -ENXIO; in pxa2xx_ac97_dev_probe()
238 pxa2xx_ac97_pcm_stereo_in.addr = regs->start + PCDR; in pxa2xx_ac97_dev_probe()
239 pxa2xx_ac97_pcm_stereo_out.addr = regs->start + PCDR; in pxa2xx_ac97_dev_probe()
240 pxa2xx_ac97_pcm_aux_mono_out.addr = regs->start + MODR; in pxa2xx_ac97_dev_probe()
241 pxa2xx_ac97_pcm_aux_mono_in.addr = regs->start + MODR; in pxa2xx_ac97_dev_probe()
242 pxa2xx_ac97_pcm_mic_mono_in.addr = regs->start + MCDR; in pxa2xx_ac97_dev_probe()
246 dev_err(&pdev->dev, "PXA2xx AC97 hw probe error (%d)\n", ret); in pxa2xx_ac97_dev_probe()
250 codecs_pdata = pdata ? pdata->codec_pdata : NULL; in pxa2xx_ac97_dev_probe()
251 ctrl = snd_ac97_controller_register(&pxa2xx_ac97_ops, &pdev->dev, in pxa2xx_ac97_dev_probe()
262 return devm_snd_soc_register_component(&pdev->dev, &pxa_ac97_component, in pxa2xx_ac97_dev_probe()
291 .name = "pxa2xx-ac97",
300 MODULE_DESCRIPTION("AC97 driver for the Intel PXA2xx chip");
302 MODULE_ALIAS("platform:pxa2xx-ac97");