wm9713.c (8056d9bbb57207854462b6b0a3a75d172300cce5) | wm9713.c (6335d05548eece40092000aa91b64a50310d69d5) |
---|---|
1/* 2 * wm9713.c -- ALSA Soc WM9713 codec support 3 * 4 * Copyright 2006 Wolfson Microelectronics PLC. 5 * Author: Liam Girdwood <lrg@slimlogic.co.uk> 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU General Public License as published by the --- 991 unchanged lines hidden (view full) --- 1000 SNDRV_PCM_RATE_22050 | \ 1001 SNDRV_PCM_RATE_44100 | \ 1002 SNDRV_PCM_RATE_48000) 1003 1004#define WM9713_PCM_FORMATS \ 1005 (SNDRV_PCM_FORMAT_S16_LE | SNDRV_PCM_FORMAT_S20_3LE | \ 1006 SNDRV_PCM_FORMAT_S24_LE) 1007 | 1/* 2 * wm9713.c -- ALSA Soc WM9713 codec support 3 * 4 * Copyright 2006 Wolfson Microelectronics PLC. 5 * Author: Liam Girdwood <lrg@slimlogic.co.uk> 6 * 7 * This program is free software; you can redistribute it and/or modify it 8 * under the terms of the GNU General Public License as published by the --- 991 unchanged lines hidden (view full) --- 1000 SNDRV_PCM_RATE_22050 | \ 1001 SNDRV_PCM_RATE_44100 | \ 1002 SNDRV_PCM_RATE_48000) 1003 1004#define WM9713_PCM_FORMATS \ 1005 (SNDRV_PCM_FORMAT_S16_LE | SNDRV_PCM_FORMAT_S20_3LE | \ 1006 SNDRV_PCM_FORMAT_S24_LE) 1007 |
1008static struct snd_soc_dai_ops wm9713_dai_ops_hifi = { 1009 .prepare = ac97_hifi_prepare, 1010 .set_clkdiv = wm9713_set_dai_clkdiv, 1011 .set_pll = wm9713_set_dai_pll, 1012}; 1013 1014static struct snd_soc_dai_ops wm9713_dai_ops_aux = { 1015 .prepare = ac97_aux_prepare, 1016 .set_clkdiv = wm9713_set_dai_clkdiv, 1017 .set_pll = wm9713_set_dai_pll, 1018}; 1019 1020static struct snd_soc_dai_ops wm9713_dai_ops_voice = { 1021 .hw_params = wm9713_pcm_hw_params, 1022 .shutdown = wm9713_voiceshutdown, 1023 .set_clkdiv = wm9713_set_dai_clkdiv, 1024 .set_pll = wm9713_set_dai_pll, 1025 .set_fmt = wm9713_set_dai_fmt, 1026 .set_tristate = wm9713_set_dai_tristate, 1027}; 1028 |
|
1008struct snd_soc_dai wm9713_dai[] = { 1009{ 1010 .name = "AC97 HiFi", 1011 .ac97_control = 1, 1012 .playback = { 1013 .stream_name = "HiFi Playback", 1014 .channels_min = 1, 1015 .channels_max = 2, 1016 .rates = WM9713_RATES, 1017 .formats = SNDRV_PCM_FMTBIT_S16_LE,}, 1018 .capture = { 1019 .stream_name = "HiFi Capture", 1020 .channels_min = 1, 1021 .channels_max = 2, 1022 .rates = WM9713_RATES, 1023 .formats = SNDRV_PCM_FMTBIT_S16_LE,}, | 1029struct snd_soc_dai wm9713_dai[] = { 1030{ 1031 .name = "AC97 HiFi", 1032 .ac97_control = 1, 1033 .playback = { 1034 .stream_name = "HiFi Playback", 1035 .channels_min = 1, 1036 .channels_max = 2, 1037 .rates = WM9713_RATES, 1038 .formats = SNDRV_PCM_FMTBIT_S16_LE,}, 1039 .capture = { 1040 .stream_name = "HiFi Capture", 1041 .channels_min = 1, 1042 .channels_max = 2, 1043 .rates = WM9713_RATES, 1044 .formats = SNDRV_PCM_FMTBIT_S16_LE,}, |
1024 .ops = { 1025 .prepare = ac97_hifi_prepare, 1026 .set_clkdiv = wm9713_set_dai_clkdiv, 1027 .set_pll = wm9713_set_dai_pll,}, | 1045 .ops = &wm9713_dai_ops_hifi, |
1028 }, 1029 { 1030 .name = "AC97 Aux", 1031 .playback = { 1032 .stream_name = "Aux Playback", 1033 .channels_min = 1, 1034 .channels_max = 1, 1035 .rates = WM9713_RATES, 1036 .formats = SNDRV_PCM_FMTBIT_S16_LE,}, | 1046 }, 1047 { 1048 .name = "AC97 Aux", 1049 .playback = { 1050 .stream_name = "Aux Playback", 1051 .channels_min = 1, 1052 .channels_max = 1, 1053 .rates = WM9713_RATES, 1054 .formats = SNDRV_PCM_FMTBIT_S16_LE,}, |
1037 .ops = { 1038 .prepare = ac97_aux_prepare, 1039 .set_clkdiv = wm9713_set_dai_clkdiv, 1040 .set_pll = wm9713_set_dai_pll,}, | 1055 .ops = &wm9713_dai_ops_aux, |
1041 }, 1042 { 1043 .name = "WM9713 Voice", 1044 .playback = { 1045 .stream_name = "Voice Playback", 1046 .channels_min = 1, 1047 .channels_max = 1, 1048 .rates = WM9713_PCM_RATES, 1049 .formats = WM9713_PCM_FORMATS,}, 1050 .capture = { 1051 .stream_name = "Voice Capture", 1052 .channels_min = 1, 1053 .channels_max = 2, 1054 .rates = WM9713_PCM_RATES, 1055 .formats = WM9713_PCM_FORMATS,}, | 1056 }, 1057 { 1058 .name = "WM9713 Voice", 1059 .playback = { 1060 .stream_name = "Voice Playback", 1061 .channels_min = 1, 1062 .channels_max = 1, 1063 .rates = WM9713_PCM_RATES, 1064 .formats = WM9713_PCM_FORMATS,}, 1065 .capture = { 1066 .stream_name = "Voice Capture", 1067 .channels_min = 1, 1068 .channels_max = 2, 1069 .rates = WM9713_PCM_RATES, 1070 .formats = WM9713_PCM_FORMATS,}, |
1056 .ops = { 1057 .hw_params = wm9713_pcm_hw_params, 1058 .shutdown = wm9713_voiceshutdown, 1059 .set_clkdiv = wm9713_set_dai_clkdiv, 1060 .set_pll = wm9713_set_dai_pll, 1061 .set_fmt = wm9713_set_dai_fmt, 1062 .set_tristate = wm9713_set_dai_tristate, | 1071 .ops = &wm9713_dai_ops_voice, |
1063 }, | 1072 }, |
1064 }, | |
1065}; 1066EXPORT_SYMBOL_GPL(wm9713_dai); 1067 1068int wm9713_reset(struct snd_soc_codec *codec, int try_warm) 1069{ 1070 if (try_warm && soc_ac97_ops.warm_reset) { 1071 soc_ac97_ops.warm_reset(codec->ac97); 1072 if (ac97_read(codec, 0) == wm9713_reg[0]) --- 214 unchanged lines hidden --- | 1073}; 1074EXPORT_SYMBOL_GPL(wm9713_dai); 1075 1076int wm9713_reset(struct snd_soc_codec *codec, int try_warm) 1077{ 1078 if (try_warm && soc_ac97_ops.warm_reset) { 1079 soc_ac97_ops.warm_reset(codec->ac97); 1080 if (ac97_read(codec, 0) == wm9713_reg[0]) --- 214 unchanged lines hidden --- |