diff options
author | Daniel Mack <zonque@gmail.com> | 2013-03-06 16:22:15 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-03-06 21:37:34 -0500 |
commit | b0ec761b99291f3c0f28ac370f94c145ec806095 (patch) | |
tree | f8c3483147f22cc57db68bbb0e06b3e83bb14e96 | |
parent | 6dbe51c251a327e012439c4772097a13df43c5b8 (diff) |
ASoC: ak4104: convert to direct regmap API usage
Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r-- | sound/soc/codecs/ak4104.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/sound/soc/codecs/ak4104.c b/sound/soc/codecs/ak4104.c index 6f6c335a5baa..58f390d3ea7a 100644 --- a/sound/soc/codecs/ak4104.c +++ b/sound/soc/codecs/ak4104.c | |||
@@ -55,6 +55,7 @@ static int ak4104_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
55 | unsigned int format) | 55 | unsigned int format) |
56 | { | 56 | { |
57 | struct snd_soc_codec *codec = codec_dai->codec; | 57 | struct snd_soc_codec *codec = codec_dai->codec; |
58 | struct ak4104_private *ak4104 = snd_soc_codec_get_drvdata(codec); | ||
58 | int val = 0; | 59 | int val = 0; |
59 | int ret; | 60 | int ret; |
60 | 61 | ||
@@ -77,9 +78,9 @@ static int ak4104_set_dai_fmt(struct snd_soc_dai *codec_dai, | |||
77 | if ((format & SND_SOC_DAIFMT_MASTER_MASK) != SND_SOC_DAIFMT_CBS_CFS) | 78 | if ((format & SND_SOC_DAIFMT_MASTER_MASK) != SND_SOC_DAIFMT_CBS_CFS) |
78 | return -EINVAL; | 79 | return -EINVAL; |
79 | 80 | ||
80 | ret = snd_soc_update_bits(codec, AK4104_REG_CONTROL1, | 81 | ret = regmap_update_bits(ak4104->regmap, AK4104_REG_CONTROL1, |
81 | AK4104_CONTROL1_DIF0 | AK4104_CONTROL1_DIF1, | 82 | AK4104_CONTROL1_DIF0 | AK4104_CONTROL1_DIF1, |
82 | val); | 83 | val); |
83 | if (ret < 0) | 84 | if (ret < 0) |
84 | return ret; | 85 | return ret; |
85 | 86 | ||
@@ -91,11 +92,12 @@ static int ak4104_hw_params(struct snd_pcm_substream *substream, | |||
91 | struct snd_soc_dai *dai) | 92 | struct snd_soc_dai *dai) |
92 | { | 93 | { |
93 | struct snd_soc_codec *codec = dai->codec; | 94 | struct snd_soc_codec *codec = dai->codec; |
95 | struct ak4104_private *ak4104 = snd_soc_codec_get_drvdata(codec); | ||
94 | int val = 0; | 96 | int val = 0; |
95 | 97 | ||
96 | /* set the IEC958 bits: consumer mode, no copyright bit */ | 98 | /* set the IEC958 bits: consumer mode, no copyright bit */ |
97 | val |= IEC958_AES0_CON_NOT_COPYRIGHT; | 99 | val |= IEC958_AES0_CON_NOT_COPYRIGHT; |
98 | snd_soc_write(codec, AK4104_REG_CHN_STATUS(0), val); | 100 | regmap_write(ak4104->regmap, AK4104_REG_CHN_STATUS(0), val); |
99 | 101 | ||
100 | val = 0; | 102 | val = 0; |
101 | 103 | ||
@@ -132,7 +134,7 @@ static int ak4104_hw_params(struct snd_pcm_substream *substream, | |||
132 | return -EINVAL; | 134 | return -EINVAL; |
133 | } | 135 | } |
134 | 136 | ||
135 | return snd_soc_write(codec, AK4104_REG_CHN_STATUS(3), val); | 137 | return regmap_write(ak4104->regmap, AK4104_REG_CHN_STATUS(3), val); |
136 | } | 138 | } |
137 | 139 | ||
138 | static const struct snd_soc_dai_ops ak4101_dai_ops = { | 140 | static const struct snd_soc_dai_ops ak4101_dai_ops = { |
@@ -160,20 +162,17 @@ static int ak4104_probe(struct snd_soc_codec *codec) | |||
160 | int ret; | 162 | int ret; |
161 | 163 | ||
162 | codec->control_data = ak4104->regmap; | 164 | codec->control_data = ak4104->regmap; |
163 | ret = snd_soc_codec_set_cache_io(codec, 8, 8, SND_SOC_REGMAP); | ||
164 | if (ret != 0) | ||
165 | return ret; | ||
166 | 165 | ||
167 | /* set power-up and non-reset bits */ | 166 | /* set power-up and non-reset bits */ |
168 | ret = snd_soc_update_bits(codec, AK4104_REG_CONTROL1, | 167 | ret = regmap_update_bits(ak4104->regmap, AK4104_REG_CONTROL1, |
169 | AK4104_CONTROL1_PW | AK4104_CONTROL1_RSTN, | 168 | AK4104_CONTROL1_PW | AK4104_CONTROL1_RSTN, |
170 | AK4104_CONTROL1_PW | AK4104_CONTROL1_RSTN); | 169 | AK4104_CONTROL1_PW | AK4104_CONTROL1_RSTN); |
171 | if (ret < 0) | 170 | if (ret < 0) |
172 | return ret; | 171 | return ret; |
173 | 172 | ||
174 | /* enable transmitter */ | 173 | /* enable transmitter */ |
175 | ret = snd_soc_update_bits(codec, AK4104_REG_TX, | 174 | ret = regmap_update_bits(ak4104->regmap, AK4104_REG_TX, |
176 | AK4104_TX_TXE, AK4104_TX_TXE); | 175 | AK4104_TX_TXE, AK4104_TX_TXE); |
177 | if (ret < 0) | 176 | if (ret < 0) |
178 | return ret; | 177 | return ret; |
179 | 178 | ||
@@ -182,8 +181,10 @@ static int ak4104_probe(struct snd_soc_codec *codec) | |||
182 | 181 | ||
183 | static int ak4104_remove(struct snd_soc_codec *codec) | 182 | static int ak4104_remove(struct snd_soc_codec *codec) |
184 | { | 183 | { |
185 | snd_soc_update_bits(codec, AK4104_REG_CONTROL1, | 184 | struct ak4104_private *ak4104 = snd_soc_codec_get_drvdata(codec); |
186 | AK4104_CONTROL1_PW | AK4104_CONTROL1_RSTN, 0); | 185 | |
186 | regmap_update_bits(ak4104->regmap, AK4104_REG_CONTROL1, | ||
187 | AK4104_CONTROL1_PW | AK4104_CONTROL1_RSTN, 0); | ||
187 | 188 | ||
188 | return 0; | 189 | return 0; |
189 | } | 190 | } |