diff options
| -rw-r--r-- | sound/soc/codecs/wm8974.c | 78 | ||||
| -rw-r--r-- | sound/soc/codecs/wm8974.h | 28 | 
2 files changed, 52 insertions, 54 deletions
diff --git a/sound/soc/codecs/wm8974.c b/sound/soc/codecs/wm8974.c index 2b0c99c3e65..b5f1a707cd7 100644 --- a/sound/soc/codecs/wm8974.c +++ b/sound/soc/codecs/wm8974.c @@ -28,9 +28,6 @@  #include "wm8974.h" -#define AUDIO_NAME "wm8974" -#define WM8974_VERSION "0.6" -  struct snd_soc_codec_device soc_codec_dev_wm8974;  /* @@ -39,27 +36,27 @@ struct snd_soc_codec_device soc_codec_dev_wm8974;   * using 2 wire for device control, so we cache them instead.   */  static const u16 wm8974_reg[WM8974_CACHEREGNUM] = { -    0x0000, 0x0000, 0x0000, 0x0000, -    0x0050, 0x0000, 0x0140, 0x0000, -    0x0000, 0x0000, 0x0000, 0x00ff, -    0x0000, 0x0000, 0x0100, 0x00ff, -    0x0000, 0x0000, 0x012c, 0x002c, -    0x002c, 0x002c, 0x002c, 0x0000, -    0x0032, 0x0000, 0x0000, 0x0000, -    0x0000, 0x0000, 0x0000, 0x0000, -    0x0038, 0x000b, 0x0032, 0x0000, -    0x0008, 0x000c, 0x0093, 0x00e9, -    0x0000, 0x0000, 0x0000, 0x0000, -    0x0003, 0x0010, 0x0000, 0x0000, -    0x0000, 0x0002, 0x0000, 0x0000, -    0x0000, 0x0000, 0x0039, 0x0000, -    0x0000, +	0x0000, 0x0000, 0x0000, 0x0000, +	0x0050, 0x0000, 0x0140, 0x0000, +	0x0000, 0x0000, 0x0000, 0x00ff, +	0x0000, 0x0000, 0x0100, 0x00ff, +	0x0000, 0x0000, 0x012c, 0x002c, +	0x002c, 0x002c, 0x002c, 0x0000, +	0x0032, 0x0000, 0x0000, 0x0000, +	0x0000, 0x0000, 0x0000, 0x0000, +	0x0038, 0x000b, 0x0032, 0x0000, +	0x0008, 0x000c, 0x0093, 0x00e9, +	0x0000, 0x0000, 0x0000, 0x0000, +	0x0003, 0x0010, 0x0000, 0x0000, +	0x0000, 0x0002, 0x0000, 0x0000, +	0x0000, 0x0000, 0x0039, 0x0000, +	0x0000,  };  /*   * read wm8974 register cache   */ -static inline unsigned int wm8974_read_reg_cache(struct snd_soc_codec * codec, +static inline unsigned int wm8974_read_reg_cache(struct snd_soc_codec *codec,  	unsigned int reg)  {  	u16 *cache = codec->reg_cache; @@ -97,7 +94,7 @@ static int wm8974_write(struct snd_soc_codec *codec, unsigned int reg,  	data[0] = (reg << 1) | ((value >> 8) & 0x0001);  	data[1] = value & 0x00ff; -	wm8974_write_reg_cache (codec, reg, value); +	wm8974_write_reg_cache(codec, reg, value);  	if (codec->hw_write(codec->control_data, data, 2) == 2)  		return 0;  	else @@ -215,7 +212,8 @@ static int wm8974_add_controls(struct snd_soc_codec *codec)  	for (i = 0; i < ARRAY_SIZE(wm8974_snd_controls); i++) {  		err = snd_ctl_add(codec->card, -				snd_soc_cnew(&wm8974_snd_controls[i],codec, NULL)); +				  snd_soc_cnew(&wm8974_snd_controls[i], +					       codec, NULL));  		if (err < 0)  			return err;  	} @@ -347,13 +345,14 @@ struct pll_ {  };  static struct pll_ pll[] = { -	{12000000, 11289600, 0, 7, 0x86c220}, -	{12000000, 12288000, 0, 8, 0x3126e8}, -	{13000000, 11289600, 0, 6, 0xf28bd4}, -	{13000000, 12288000, 0, 7, 0x8fd525}, -	{12288000, 11289600, 0, 7, 0x59999a}, -	{11289600, 12288000, 0, 8, 0x80dee9}, -	/* liam - add more entries */ +	{ 12000000, 11289600, 0, 7, 0x86c220 }, +	{ 12000000, 12288000, 0, 8, 0x3126e8 }, +	{ 13000000, 11289600, 0, 6, 0xf28bd4 }, +	{ 13000000, 12288000, 0, 7, 0x8fd525 }, +	{ 12288000, 11289600, 0, 7, 0x59999a }, +	{ 11289600, 12288000, 0, 8, 0x80dee9 }, +	{ 25000000, 11289600, 1, 7, 0x39B024 }, +	{ 25000000, 24576000, 1, 7, 0xdd4413 }  };  static int wm8974_set_dai_pll(struct snd_soc_dai *codec_dai, @@ -363,23 +362,26 @@ static int wm8974_set_dai_pll(struct snd_soc_dai *codec_dai,  	int i;  	u16 reg; -	if(freq_in == 0 || freq_out == 0) { +	if (freq_in == 0 || freq_out == 0) {  		reg = wm8974_read_reg_cache(codec, WM8974_POWER1);  		wm8974_write(codec, WM8974_POWER1, reg & 0x1df);  		return 0;  	} -	for(i = 0; i < ARRAY_SIZE(pll); i++) { +	for (i = 0; i < ARRAY_SIZE(pll); i++) {  		if (freq_in == pll[i].in_hz && freq_out == pll[i].out_hz) { -			wm8974_write(codec, WM8974_PLLN, (pll[i].pre << 4) | pll[i].n); +			wm8974_write(codec, WM8974_PLLN, +				     (pll[i].pre << 4) | pll[i].n);  			wm8974_write(codec, WM8974_PLLK1, pll[i].k >> 18); -			wm8974_write(codec, WM8974_PLLK2, (pll[i].k >> 9) & 0x1ff); +			wm8974_write(codec, WM8974_PLLK2, +				     (pll[i].k >> 9) & 0x1ff);  			wm8974_write(codec, WM8974_PLLK3, pll[i].k & 0x1ff);  			reg = wm8974_read_reg_cache(codec, WM8974_POWER1);  			wm8974_write(codec, WM8974_POWER1, reg | 0x020);  			return 0;  		}  	} +  	return -EINVAL;  } @@ -394,7 +396,7 @@ static int wm8974_set_dai_clkdiv(struct snd_soc_dai *codec_dai,  	switch (div_id) {  	case WM8974_OPCLKDIV: -		reg = wm8974_read_reg_cache(codec, WM8974_GPIO) & 0x1cf;  +		reg = wm8974_read_reg_cache(codec, WM8974_GPIO) & 0x1cf;  		wm8974_write(codec, WM8974_GPIO, reg | div);  		break;  	case WM8974_MCLKDIV: @@ -531,7 +533,7 @@ static int wm8974_mute(struct snd_soc_dai *dai, int mute)  	struct snd_soc_codec *codec = dai->codec;  	u16 mute_reg = wm8974_read_reg_cache(codec, WM8974_DAC) & 0xffbf; -	if(mute) +	if (mute)  		wm8974_write(codec, WM8974_DAC, mute_reg | 0x40);  	else  		wm8974_write(codec, WM8974_DAC, mute_reg); @@ -562,9 +564,7 @@ static int wm8974_set_bias_level(struct snd_soc_codec *codec,  	return 0;  } -#define WM8974_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\ -		SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | \ -		SNDRV_PCM_RATE_48000) +#define WM8974_RATES (SNDRV_PCM_RATE_8000_48000)  #define WM8974_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\  	SNDRV_PCM_FMTBIT_S24_LE) @@ -649,7 +649,7 @@ static int wm8974_init(struct snd_soc_device *socdev)  	/* register pcms */  	ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1); -	if(ret < 0) { +	if (ret < 0) {  		printk(KERN_ERR "wm8974: failed to create pcms\n");  		goto pcm_err;  	} @@ -773,8 +773,6 @@ static int wm8974_probe(struct platform_device *pdev)  	struct snd_soc_codec *codec;  	int ret = 0; -	pr_info("WM8974 Audio Codec %s", WM8974_VERSION); -  	setup = socdev->codec_data;  	codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL);  	if (codec == NULL) diff --git a/sound/soc/codecs/wm8974.h b/sound/soc/codecs/wm8974.h index 0f5172e0f61..726de9648ba 100644 --- a/sound/soc/codecs/wm8974.h +++ b/sound/soc/codecs/wm8974.h @@ -16,30 +16,30 @@  #define WM8974_POWER2		0x2  #define WM8974_POWER3		0x3  #define WM8974_IFACE		0x4 -#define WM8974_COMP			0x5 +#define WM8974_COMP		0x5  #define WM8974_CLOCK		0x6 -#define WM8974_ADD			0x7 -#define WM8974_GPIO			0x8 -#define WM8974_DAC			0xa +#define WM8974_ADD		0x7 +#define WM8974_GPIO		0x8 +#define WM8974_DAC		0xa  #define WM8974_DACVOL		0xb -#define WM8974_ADC			0xe +#define WM8974_ADC		0xe  #define WM8974_ADCVOL		0xf -#define WM8974_EQ1			0x12 -#define WM8974_EQ2			0x13 -#define WM8974_EQ3			0x14 -#define WM8974_EQ4			0x15 -#define WM8974_EQ5			0x16 +#define WM8974_EQ1		0x12 +#define WM8974_EQ2		0x13 +#define WM8974_EQ3		0x14 +#define WM8974_EQ4		0x15 +#define WM8974_EQ5		0x16  #define WM8974_DACLIM1		0x18  #define WM8974_DACLIM2		0x19  #define WM8974_NOTCH1		0x1b  #define WM8974_NOTCH2		0x1c  #define WM8974_NOTCH3		0x1d  #define WM8974_NOTCH4		0x1e -#define WM8974_ALC1			0x20 -#define WM8974_ALC2			0x21 -#define WM8974_ALC3			0x22 +#define WM8974_ALC1		0x20 +#define WM8974_ALC2		0x21 +#define WM8974_ALC3		0x22  #define WM8974_NGATE		0x23 -#define WM8974_PLLN			0x24 +#define WM8974_PLLN		0x24  #define WM8974_PLLK1		0x25  #define WM8974_PLLK2		0x26  #define WM8974_PLLK3		0x27  |