Commit 3a96c77e authored by Mark Brown's avatar Mark Brown

ASoC: wm8350: Replace use of custom I/O with snd_soc_read()/write()

Makes the code more standard and prepares for better framework usage.
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 3e4ba82c
...@@ -353,8 +353,8 @@ static int wm8350_put_volsw_2r_vu(struct snd_kcontrol *kcontrol, ...@@ -353,8 +353,8 @@ static int wm8350_put_volsw_2r_vu(struct snd_kcontrol *kcontrol,
return ret; return ret;
/* now hit the volume update bits (always bit 8) */ /* now hit the volume update bits (always bit 8) */
val = wm8350_codec_read(codec, reg); val = snd_soc_read(codec, reg);
wm8350_codec_write(codec, reg, val | WM8350_OUT1_VU); snd_soc_write(codec, reg, val | WM8350_OUT1_VU);
return 1; return 1;
} }
...@@ -788,9 +788,9 @@ static int wm8350_set_dai_sysclk(struct snd_soc_dai *codec_dai, ...@@ -788,9 +788,9 @@ static int wm8350_set_dai_sysclk(struct snd_soc_dai *codec_dai,
case WM8350_MCLK_SEL_PLL_32K: case WM8350_MCLK_SEL_PLL_32K:
wm8350_set_bits(wm8350, WM8350_CLOCK_CONTROL_1, wm8350_set_bits(wm8350, WM8350_CLOCK_CONTROL_1,
WM8350_MCLK_SEL); WM8350_MCLK_SEL);
fll_4 = wm8350_codec_read(codec, WM8350_FLL_CONTROL_4) & fll_4 = snd_soc_read(codec, WM8350_FLL_CONTROL_4) &
~WM8350_FLL_CLK_SRC_MASK; ~WM8350_FLL_CLK_SRC_MASK;
wm8350_codec_write(codec, WM8350_FLL_CONTROL_4, fll_4 | clk_id); snd_soc_write(codec, WM8350_FLL_CONTROL_4, fll_4 | clk_id);
break; break;
} }
...@@ -812,39 +812,39 @@ static int wm8350_set_clkdiv(struct snd_soc_dai *codec_dai, int div_id, int div) ...@@ -812,39 +812,39 @@ static int wm8350_set_clkdiv(struct snd_soc_dai *codec_dai, int div_id, int div)
switch (div_id) { switch (div_id) {
case WM8350_ADC_CLKDIV: case WM8350_ADC_CLKDIV:
val = wm8350_codec_read(codec, WM8350_ADC_DIVIDER) & val = snd_soc_read(codec, WM8350_ADC_DIVIDER) &
~WM8350_ADC_CLKDIV_MASK; ~WM8350_ADC_CLKDIV_MASK;
wm8350_codec_write(codec, WM8350_ADC_DIVIDER, val | div); snd_soc_write(codec, WM8350_ADC_DIVIDER, val | div);
break; break;
case WM8350_DAC_CLKDIV: case WM8350_DAC_CLKDIV:
val = wm8350_codec_read(codec, WM8350_DAC_CLOCK_CONTROL) & val = snd_soc_read(codec, WM8350_DAC_CLOCK_CONTROL) &
~WM8350_DAC_CLKDIV_MASK; ~WM8350_DAC_CLKDIV_MASK;
wm8350_codec_write(codec, WM8350_DAC_CLOCK_CONTROL, val | div); snd_soc_write(codec, WM8350_DAC_CLOCK_CONTROL, val | div);
break; break;
case WM8350_BCLK_CLKDIV: case WM8350_BCLK_CLKDIV:
val = wm8350_codec_read(codec, WM8350_CLOCK_CONTROL_1) & val = snd_soc_read(codec, WM8350_CLOCK_CONTROL_1) &
~WM8350_BCLK_DIV_MASK; ~WM8350_BCLK_DIV_MASK;
wm8350_codec_write(codec, WM8350_CLOCK_CONTROL_1, val | div); snd_soc_write(codec, WM8350_CLOCK_CONTROL_1, val | div);
break; break;
case WM8350_OPCLK_CLKDIV: case WM8350_OPCLK_CLKDIV:
val = wm8350_codec_read(codec, WM8350_CLOCK_CONTROL_1) & val = snd_soc_read(codec, WM8350_CLOCK_CONTROL_1) &
~WM8350_OPCLK_DIV_MASK; ~WM8350_OPCLK_DIV_MASK;
wm8350_codec_write(codec, WM8350_CLOCK_CONTROL_1, val | div); snd_soc_write(codec, WM8350_CLOCK_CONTROL_1, val | div);
break; break;
case WM8350_SYS_CLKDIV: case WM8350_SYS_CLKDIV:
val = wm8350_codec_read(codec, WM8350_CLOCK_CONTROL_1) & val = snd_soc_read(codec, WM8350_CLOCK_CONTROL_1) &
~WM8350_MCLK_DIV_MASK; ~WM8350_MCLK_DIV_MASK;
wm8350_codec_write(codec, WM8350_CLOCK_CONTROL_1, val | div); snd_soc_write(codec, WM8350_CLOCK_CONTROL_1, val | div);
break; break;
case WM8350_DACLR_CLKDIV: case WM8350_DACLR_CLKDIV:
val = wm8350_codec_read(codec, WM8350_DAC_LR_RATE) & val = snd_soc_read(codec, WM8350_DAC_LR_RATE) &
~WM8350_DACLRC_RATE_MASK; ~WM8350_DACLRC_RATE_MASK;
wm8350_codec_write(codec, WM8350_DAC_LR_RATE, val | div); snd_soc_write(codec, WM8350_DAC_LR_RATE, val | div);
break; break;
case WM8350_ADCLR_CLKDIV: case WM8350_ADCLR_CLKDIV:
val = wm8350_codec_read(codec, WM8350_ADC_LR_RATE) & val = snd_soc_read(codec, WM8350_ADC_LR_RATE) &
~WM8350_ADCLRC_RATE_MASK; ~WM8350_ADCLRC_RATE_MASK;
wm8350_codec_write(codec, WM8350_ADC_LR_RATE, val | div); snd_soc_write(codec, WM8350_ADC_LR_RATE, val | div);
break; break;
default: default:
return -EINVAL; return -EINVAL;
...@@ -856,13 +856,13 @@ static int wm8350_set_clkdiv(struct snd_soc_dai *codec_dai, int div_id, int div) ...@@ -856,13 +856,13 @@ static int wm8350_set_clkdiv(struct snd_soc_dai *codec_dai, int div_id, int div)
static int wm8350_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) static int wm8350_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
{ {
struct snd_soc_codec *codec = codec_dai->codec; struct snd_soc_codec *codec = codec_dai->codec;
u16 iface = wm8350_codec_read(codec, WM8350_AI_FORMATING) & u16 iface = snd_soc_read(codec, WM8350_AI_FORMATING) &
~(WM8350_AIF_BCLK_INV | WM8350_AIF_LRCLK_INV | WM8350_AIF_FMT_MASK); ~(WM8350_AIF_BCLK_INV | WM8350_AIF_LRCLK_INV | WM8350_AIF_FMT_MASK);
u16 master = wm8350_codec_read(codec, WM8350_AI_DAC_CONTROL) & u16 master = snd_soc_read(codec, WM8350_AI_DAC_CONTROL) &
~WM8350_BCLK_MSTR; ~WM8350_BCLK_MSTR;
u16 dac_lrc = wm8350_codec_read(codec, WM8350_DAC_LR_RATE) & u16 dac_lrc = snd_soc_read(codec, WM8350_DAC_LR_RATE) &
~WM8350_DACLRC_ENA; ~WM8350_DACLRC_ENA;
u16 adc_lrc = wm8350_codec_read(codec, WM8350_ADC_LR_RATE) & u16 adc_lrc = snd_soc_read(codec, WM8350_ADC_LR_RATE) &
~WM8350_ADCLRC_ENA; ~WM8350_ADCLRC_ENA;
/* set master/slave audio interface */ /* set master/slave audio interface */
...@@ -915,10 +915,10 @@ static int wm8350_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) ...@@ -915,10 +915,10 @@ static int wm8350_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
return -EINVAL; return -EINVAL;
} }
wm8350_codec_write(codec, WM8350_AI_FORMATING, iface); snd_soc_write(codec, WM8350_AI_FORMATING, iface);
wm8350_codec_write(codec, WM8350_AI_DAC_CONTROL, master); snd_soc_write(codec, WM8350_AI_DAC_CONTROL, master);
wm8350_codec_write(codec, WM8350_DAC_LR_RATE, dac_lrc); snd_soc_write(codec, WM8350_DAC_LR_RATE, dac_lrc);
wm8350_codec_write(codec, WM8350_ADC_LR_RATE, adc_lrc); snd_soc_write(codec, WM8350_ADC_LR_RATE, adc_lrc);
return 0; return 0;
} }
...@@ -928,7 +928,7 @@ static int wm8350_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -928,7 +928,7 @@ static int wm8350_pcm_hw_params(struct snd_pcm_substream *substream,
{ {
struct snd_soc_codec *codec = codec_dai->codec; struct snd_soc_codec *codec = codec_dai->codec;
struct wm8350 *wm8350 = codec->control_data; struct wm8350 *wm8350 = codec->control_data;
u16 iface = wm8350_codec_read(codec, WM8350_AI_FORMATING) & u16 iface = snd_soc_read(codec, WM8350_AI_FORMATING) &
~WM8350_AIF_WL_MASK; ~WM8350_AIF_WL_MASK;
/* bit size */ /* bit size */
...@@ -946,7 +946,7 @@ static int wm8350_pcm_hw_params(struct snd_pcm_substream *substream, ...@@ -946,7 +946,7 @@ static int wm8350_pcm_hw_params(struct snd_pcm_substream *substream,
break; break;
} }
wm8350_codec_write(codec, WM8350_AI_FORMATING, iface); snd_soc_write(codec, WM8350_AI_FORMATING, iface);
/* The sloping stopband filter is recommended for use with /* The sloping stopband filter is recommended for use with
* lower sample rates to improve performance. * lower sample rates to improve performance.
...@@ -1065,17 +1065,17 @@ static int wm8350_set_fll(struct snd_soc_dai *codec_dai, ...@@ -1065,17 +1065,17 @@ static int wm8350_set_fll(struct snd_soc_dai *codec_dai,
fll_div.ratio); fll_div.ratio);
/* set up N.K & dividers */ /* set up N.K & dividers */
fll_1 = wm8350_codec_read(codec, WM8350_FLL_CONTROL_1) & fll_1 = snd_soc_read(codec, WM8350_FLL_CONTROL_1) &
~(WM8350_FLL_OUTDIV_MASK | WM8350_FLL_RSP_RATE_MASK | 0xc000); ~(WM8350_FLL_OUTDIV_MASK | WM8350_FLL_RSP_RATE_MASK | 0xc000);
wm8350_codec_write(codec, WM8350_FLL_CONTROL_1, snd_soc_write(codec, WM8350_FLL_CONTROL_1,
fll_1 | (fll_div.div << 8) | 0x50); fll_1 | (fll_div.div << 8) | 0x50);
wm8350_codec_write(codec, WM8350_FLL_CONTROL_2, snd_soc_write(codec, WM8350_FLL_CONTROL_2,
(fll_div.ratio << 11) | (fll_div. (fll_div.ratio << 11) | (fll_div.
n & WM8350_FLL_N_MASK)); n & WM8350_FLL_N_MASK));
wm8350_codec_write(codec, WM8350_FLL_CONTROL_3, fll_div.k); snd_soc_write(codec, WM8350_FLL_CONTROL_3, fll_div.k);
fll_4 = wm8350_codec_read(codec, WM8350_FLL_CONTROL_4) & fll_4 = snd_soc_read(codec, WM8350_FLL_CONTROL_4) &
~(WM8350_FLL_FRAC | WM8350_FLL_SLOW_LOCK_REF); ~(WM8350_FLL_FRAC | WM8350_FLL_SLOW_LOCK_REF);
wm8350_codec_write(codec, WM8350_FLL_CONTROL_4, snd_soc_write(codec, WM8350_FLL_CONTROL_4,
fll_4 | (fll_div.k ? WM8350_FLL_FRAC : 0) | fll_4 | (fll_div.k ? WM8350_FLL_FRAC : 0) |
(fll_div.ratio == 8 ? WM8350_FLL_SLOW_LOCK_REF : 0)); (fll_div.ratio == 8 ? WM8350_FLL_SLOW_LOCK_REF : 0));
...@@ -1518,9 +1518,9 @@ static int wm8350_codec_probe(struct snd_soc_codec *codec) ...@@ -1518,9 +1518,9 @@ static int wm8350_codec_probe(struct snd_soc_codec *codec)
wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA); wm8350_set_bits(wm8350, WM8350_POWER_MGMT_5, WM8350_CODEC_ENA);
/* Enable robust clocking mode in ADC */ /* Enable robust clocking mode in ADC */
wm8350_codec_write(codec, WM8350_SECURITY, 0xa7); snd_soc_write(codec, WM8350_SECURITY, 0xa7);
wm8350_codec_write(codec, 0xde, 0x13); snd_soc_write(codec, 0xde, 0x13);
wm8350_codec_write(codec, WM8350_SECURITY, 0); snd_soc_write(codec, WM8350_SECURITY, 0);
/* read OUT1 & OUT2 volumes */ /* read OUT1 & OUT2 volumes */
out1 = &priv->out1; out1 = &priv->out1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment