diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-05-23 06:31:40 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2009-05-23 06:31:40 -0400 |
commit | 1a55b3f6ed1d917dd26271dae19dda088d820540 (patch) | |
tree | d99fc2581db3233a5b06d247b62da82d5b7a8008 /sound/soc/codecs/wm8974.c | |
parent | 0a1bf553359013621c8c5cf745354212c6ef51d3 (diff) |
ASoC: WM8974 checkpatch cleanups
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Diffstat (limited to 'sound/soc/codecs/wm8974.c')
-rw-r--r-- | sound/soc/codecs/wm8974.c | 78 |
1 files changed, 38 insertions, 40 deletions
diff --git a/sound/soc/codecs/wm8974.c b/sound/soc/codecs/wm8974.c index 2b0c99c3e65a..b5f1a707cd76 100644 --- a/sound/soc/codecs/wm8974.c +++ b/sound/soc/codecs/wm8974.c | |||
@@ -28,9 +28,6 @@ | |||
28 | 28 | ||
29 | #include "wm8974.h" | 29 | #include "wm8974.h" |
30 | 30 | ||
31 | #define AUDIO_NAME "wm8974" | ||
32 | #define WM8974_VERSION "0.6" | ||
33 | |||
34 | struct snd_soc_codec_device soc_codec_dev_wm8974; | 31 | struct snd_soc_codec_device soc_codec_dev_wm8974; |
35 | 32 | ||
36 | /* | 33 | /* |
@@ -39,27 +36,27 @@ struct snd_soc_codec_device soc_codec_dev_wm8974; | |||
39 | * using 2 wire for device control, so we cache them instead. | 36 | * using 2 wire for device control, so we cache them instead. |
40 | */ | 37 | */ |
41 | static const u16 wm8974_reg[WM8974_CACHEREGNUM] = { | 38 | static const u16 wm8974_reg[WM8974_CACHEREGNUM] = { |
42 | 0x0000, 0x0000, 0x0000, 0x0000, | 39 | 0x0000, 0x0000, 0x0000, 0x0000, |
43 | 0x0050, 0x0000, 0x0140, 0x0000, | 40 | 0x0050, 0x0000, 0x0140, 0x0000, |
44 | 0x0000, 0x0000, 0x0000, 0x00ff, | 41 | 0x0000, 0x0000, 0x0000, 0x00ff, |
45 | 0x0000, 0x0000, 0x0100, 0x00ff, | 42 | 0x0000, 0x0000, 0x0100, 0x00ff, |
46 | 0x0000, 0x0000, 0x012c, 0x002c, | 43 | 0x0000, 0x0000, 0x012c, 0x002c, |
47 | 0x002c, 0x002c, 0x002c, 0x0000, | 44 | 0x002c, 0x002c, 0x002c, 0x0000, |
48 | 0x0032, 0x0000, 0x0000, 0x0000, | 45 | 0x0032, 0x0000, 0x0000, 0x0000, |
49 | 0x0000, 0x0000, 0x0000, 0x0000, | 46 | 0x0000, 0x0000, 0x0000, 0x0000, |
50 | 0x0038, 0x000b, 0x0032, 0x0000, | 47 | 0x0038, 0x000b, 0x0032, 0x0000, |
51 | 0x0008, 0x000c, 0x0093, 0x00e9, | 48 | 0x0008, 0x000c, 0x0093, 0x00e9, |
52 | 0x0000, 0x0000, 0x0000, 0x0000, | 49 | 0x0000, 0x0000, 0x0000, 0x0000, |
53 | 0x0003, 0x0010, 0x0000, 0x0000, | 50 | 0x0003, 0x0010, 0x0000, 0x0000, |
54 | 0x0000, 0x0002, 0x0000, 0x0000, | 51 | 0x0000, 0x0002, 0x0000, 0x0000, |
55 | 0x0000, 0x0000, 0x0039, 0x0000, | 52 | 0x0000, 0x0000, 0x0039, 0x0000, |
56 | 0x0000, | 53 | 0x0000, |
57 | }; | 54 | }; |
58 | 55 | ||
59 | /* | 56 | /* |
60 | * read wm8974 register cache | 57 | * read wm8974 register cache |
61 | */ | 58 | */ |
62 | static inline unsigned int wm8974_read_reg_cache(struct snd_soc_codec * codec, | 59 | static inline unsigned int wm8974_read_reg_cache(struct snd_soc_codec *codec, |
63 | unsigned int reg) | 60 | unsigned int reg) |
64 | { | 61 | { |
65 | u16 *cache = codec->reg_cache; | 62 | u16 *cache = codec->reg_cache; |
@@ -97,7 +94,7 @@ static int wm8974_write(struct snd_soc_codec *codec, unsigned int reg, | |||
97 | data[0] = (reg << 1) | ((value >> 8) & 0x0001); | 94 | data[0] = (reg << 1) | ((value >> 8) & 0x0001); |
98 | data[1] = value & 0x00ff; | 95 | data[1] = value & 0x00ff; |
99 | 96 | ||
100 | wm8974_write_reg_cache (codec, reg, value); | 97 | wm8974_write_reg_cache(codec, reg, value); |
101 | if (codec->hw_write(codec->control_data, data, 2) == 2) | 98 | if (codec->hw_write(codec->control_data, data, 2) == 2) |
102 | return 0; | 99 | return 0; |
103 | else | 100 | else |
@@ -215,7 +212,8 @@ static int wm8974_add_controls(struct snd_soc_codec *codec) | |||
215 | 212 | ||
216 | for (i = 0; i < ARRAY_SIZE(wm8974_snd_controls); i++) { | 213 | for (i = 0; i < ARRAY_SIZE(wm8974_snd_controls); i++) { |
217 | err = snd_ctl_add(codec->card, | 214 | err = snd_ctl_add(codec->card, |
218 | snd_soc_cnew(&wm8974_snd_controls[i],codec, NULL)); | 215 | snd_soc_cnew(&wm8974_snd_controls[i], |
216 | codec, NULL)); | ||
219 | if (err < 0) | 217 | if (err < 0) |
220 | return err; | 218 | return err; |
221 | } | 219 | } |
@@ -347,13 +345,14 @@ struct pll_ { | |||
347 | }; | 345 | }; |
348 | 346 | ||
349 | static struct pll_ pll[] = { | 347 | static struct pll_ pll[] = { |
350 | {12000000, 11289600, 0, 7, 0x86c220}, | 348 | { 12000000, 11289600, 0, 7, 0x86c220 }, |
351 | {12000000, 12288000, 0, 8, 0x3126e8}, | 349 | { 12000000, 12288000, 0, 8, 0x3126e8 }, |
352 | {13000000, 11289600, 0, 6, 0xf28bd4}, | 350 | { 13000000, 11289600, 0, 6, 0xf28bd4 }, |
353 | {13000000, 12288000, 0, 7, 0x8fd525}, | 351 | { 13000000, 12288000, 0, 7, 0x8fd525 }, |
354 | {12288000, 11289600, 0, 7, 0x59999a}, | 352 | { 12288000, 11289600, 0, 7, 0x59999a }, |
355 | {11289600, 12288000, 0, 8, 0x80dee9}, | 353 | { 11289600, 12288000, 0, 8, 0x80dee9 }, |
356 | /* liam - add more entries */ | 354 | { 25000000, 11289600, 1, 7, 0x39B024 }, |
355 | { 25000000, 24576000, 1, 7, 0xdd4413 } | ||
357 | }; | 356 | }; |
358 | 357 | ||
359 | static int wm8974_set_dai_pll(struct snd_soc_dai *codec_dai, | 358 | 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, | |||
363 | int i; | 362 | int i; |
364 | u16 reg; | 363 | u16 reg; |
365 | 364 | ||
366 | if(freq_in == 0 || freq_out == 0) { | 365 | if (freq_in == 0 || freq_out == 0) { |
367 | reg = wm8974_read_reg_cache(codec, WM8974_POWER1); | 366 | reg = wm8974_read_reg_cache(codec, WM8974_POWER1); |
368 | wm8974_write(codec, WM8974_POWER1, reg & 0x1df); | 367 | wm8974_write(codec, WM8974_POWER1, reg & 0x1df); |
369 | return 0; | 368 | return 0; |
370 | } | 369 | } |
371 | 370 | ||
372 | for(i = 0; i < ARRAY_SIZE(pll); i++) { | 371 | for (i = 0; i < ARRAY_SIZE(pll); i++) { |
373 | if (freq_in == pll[i].in_hz && freq_out == pll[i].out_hz) { | 372 | if (freq_in == pll[i].in_hz && freq_out == pll[i].out_hz) { |
374 | wm8974_write(codec, WM8974_PLLN, (pll[i].pre << 4) | pll[i].n); | 373 | wm8974_write(codec, WM8974_PLLN, |
374 | (pll[i].pre << 4) | pll[i].n); | ||
375 | wm8974_write(codec, WM8974_PLLK1, pll[i].k >> 18); | 375 | wm8974_write(codec, WM8974_PLLK1, pll[i].k >> 18); |
376 | wm8974_write(codec, WM8974_PLLK2, (pll[i].k >> 9) & 0x1ff); | 376 | wm8974_write(codec, WM8974_PLLK2, |
377 | (pll[i].k >> 9) & 0x1ff); | ||
377 | wm8974_write(codec, WM8974_PLLK3, pll[i].k & 0x1ff); | 378 | wm8974_write(codec, WM8974_PLLK3, pll[i].k & 0x1ff); |
378 | reg = wm8974_read_reg_cache(codec, WM8974_POWER1); | 379 | reg = wm8974_read_reg_cache(codec, WM8974_POWER1); |
379 | wm8974_write(codec, WM8974_POWER1, reg | 0x020); | 380 | wm8974_write(codec, WM8974_POWER1, reg | 0x020); |
380 | return 0; | 381 | return 0; |
381 | } | 382 | } |
382 | } | 383 | } |
384 | |||
383 | return -EINVAL; | 385 | return -EINVAL; |
384 | } | 386 | } |
385 | 387 | ||
@@ -394,7 +396,7 @@ static int wm8974_set_dai_clkdiv(struct snd_soc_dai *codec_dai, | |||
394 | 396 | ||
395 | switch (div_id) { | 397 | switch (div_id) { |
396 | case WM8974_OPCLKDIV: | 398 | case WM8974_OPCLKDIV: |
397 | reg = wm8974_read_reg_cache(codec, WM8974_GPIO) & 0x1cf; | 399 | reg = wm8974_read_reg_cache(codec, WM8974_GPIO) & 0x1cf; |
398 | wm8974_write(codec, WM8974_GPIO, reg | div); | 400 | wm8974_write(codec, WM8974_GPIO, reg | div); |
399 | break; | 401 | break; |
400 | case WM8974_MCLKDIV: | 402 | case WM8974_MCLKDIV: |
@@ -531,7 +533,7 @@ static int wm8974_mute(struct snd_soc_dai *dai, int mute) | |||
531 | struct snd_soc_codec *codec = dai->codec; | 533 | struct snd_soc_codec *codec = dai->codec; |
532 | u16 mute_reg = wm8974_read_reg_cache(codec, WM8974_DAC) & 0xffbf; | 534 | u16 mute_reg = wm8974_read_reg_cache(codec, WM8974_DAC) & 0xffbf; |
533 | 535 | ||
534 | if(mute) | 536 | if (mute) |
535 | wm8974_write(codec, WM8974_DAC, mute_reg | 0x40); | 537 | wm8974_write(codec, WM8974_DAC, mute_reg | 0x40); |
536 | else | 538 | else |
537 | wm8974_write(codec, WM8974_DAC, mute_reg); | 539 | wm8974_write(codec, WM8974_DAC, mute_reg); |
@@ -562,9 +564,7 @@ static int wm8974_set_bias_level(struct snd_soc_codec *codec, | |||
562 | return 0; | 564 | return 0; |
563 | } | 565 | } |
564 | 566 | ||
565 | #define WM8974_RATES (SNDRV_PCM_RATE_8000 | SNDRV_PCM_RATE_11025 |\ | 567 | #define WM8974_RATES (SNDRV_PCM_RATE_8000_48000) |
566 | SNDRV_PCM_RATE_16000 | SNDRV_PCM_RATE_22050 | SNDRV_PCM_RATE_44100 | \ | ||
567 | SNDRV_PCM_RATE_48000) | ||
568 | 568 | ||
569 | #define WM8974_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\ | 569 | #define WM8974_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\ |
570 | SNDRV_PCM_FMTBIT_S24_LE) | 570 | SNDRV_PCM_FMTBIT_S24_LE) |
@@ -649,7 +649,7 @@ static int wm8974_init(struct snd_soc_device *socdev) | |||
649 | 649 | ||
650 | /* register pcms */ | 650 | /* register pcms */ |
651 | ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1); | 651 | ret = snd_soc_new_pcms(socdev, SNDRV_DEFAULT_IDX1, SNDRV_DEFAULT_STR1); |
652 | if(ret < 0) { | 652 | if (ret < 0) { |
653 | printk(KERN_ERR "wm8974: failed to create pcms\n"); | 653 | printk(KERN_ERR "wm8974: failed to create pcms\n"); |
654 | goto pcm_err; | 654 | goto pcm_err; |
655 | } | 655 | } |
@@ -773,8 +773,6 @@ static int wm8974_probe(struct platform_device *pdev) | |||
773 | struct snd_soc_codec *codec; | 773 | struct snd_soc_codec *codec; |
774 | int ret = 0; | 774 | int ret = 0; |
775 | 775 | ||
776 | pr_info("WM8974 Audio Codec %s", WM8974_VERSION); | ||
777 | |||
778 | setup = socdev->codec_data; | 776 | setup = socdev->codec_data; |
779 | codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL); | 777 | codec = kzalloc(sizeof(struct snd_soc_codec), GFP_KERNEL); |
780 | if (codec == NULL) | 778 | if (codec == NULL) |