diff options
Diffstat (limited to 'sound/soc/codecs/tlv320aic32x4.c')
-rw-r--r-- | sound/soc/codecs/tlv320aic32x4.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/sound/soc/codecs/tlv320aic32x4.c b/sound/soc/codecs/tlv320aic32x4.c index 1d9b117345a3..6ea662db2410 100644 --- a/sound/soc/codecs/tlv320aic32x4.c +++ b/sound/soc/codecs/tlv320aic32x4.c | |||
@@ -450,16 +450,16 @@ static int aic32x4_hw_params(struct snd_pcm_substream *substream, | |||
450 | 450 | ||
451 | data = snd_soc_read(codec, AIC32X4_IFACE1); | 451 | data = snd_soc_read(codec, AIC32X4_IFACE1); |
452 | data = data & ~(3 << 4); | 452 | data = data & ~(3 << 4); |
453 | switch (params_format(params)) { | 453 | switch (params_width(params)) { |
454 | case SNDRV_PCM_FORMAT_S16_LE: | 454 | case 16: |
455 | break; | 455 | break; |
456 | case SNDRV_PCM_FORMAT_S20_3LE: | 456 | case 20: |
457 | data |= (AIC32X4_WORD_LEN_20BITS << AIC32X4_DOSRMSB_SHIFT); | 457 | data |= (AIC32X4_WORD_LEN_20BITS << AIC32X4_DOSRMSB_SHIFT); |
458 | break; | 458 | break; |
459 | case SNDRV_PCM_FORMAT_S24_LE: | 459 | case 24: |
460 | data |= (AIC32X4_WORD_LEN_24BITS << AIC32X4_DOSRMSB_SHIFT); | 460 | data |= (AIC32X4_WORD_LEN_24BITS << AIC32X4_DOSRMSB_SHIFT); |
461 | break; | 461 | break; |
462 | case SNDRV_PCM_FORMAT_S32_LE: | 462 | case 32: |
463 | data |= (AIC32X4_WORD_LEN_32BITS << AIC32X4_DOSRMSB_SHIFT); | 463 | data |= (AIC32X4_WORD_LEN_32BITS << AIC32X4_DOSRMSB_SHIFT); |
464 | break; | 464 | break; |
465 | } | 465 | } |
@@ -626,32 +626,33 @@ static int aic32x4_probe(struct snd_soc_codec *codec) | |||
626 | snd_soc_write(codec, AIC32X4_MICBIAS, AIC32X4_MICBIAS_LDOIN | | 626 | snd_soc_write(codec, AIC32X4_MICBIAS, AIC32X4_MICBIAS_LDOIN | |
627 | AIC32X4_MICBIAS_2075V); | 627 | AIC32X4_MICBIAS_2075V); |
628 | } | 628 | } |
629 | if (aic32x4->power_cfg & AIC32X4_PWR_AVDD_DVDD_WEAK_DISABLE) { | 629 | if (aic32x4->power_cfg & AIC32X4_PWR_AVDD_DVDD_WEAK_DISABLE) |
630 | snd_soc_write(codec, AIC32X4_PWRCFG, AIC32X4_AVDDWEAKDISABLE); | 630 | snd_soc_write(codec, AIC32X4_PWRCFG, AIC32X4_AVDDWEAKDISABLE); |
631 | } | ||
632 | 631 | ||
633 | tmp_reg = (aic32x4->power_cfg & AIC32X4_PWR_AIC32X4_LDO_ENABLE) ? | 632 | tmp_reg = (aic32x4->power_cfg & AIC32X4_PWR_AIC32X4_LDO_ENABLE) ? |
634 | AIC32X4_LDOCTLEN : 0; | 633 | AIC32X4_LDOCTLEN : 0; |
635 | snd_soc_write(codec, AIC32X4_LDOCTL, tmp_reg); | 634 | snd_soc_write(codec, AIC32X4_LDOCTL, tmp_reg); |
636 | 635 | ||
637 | tmp_reg = snd_soc_read(codec, AIC32X4_CMMODE); | 636 | tmp_reg = snd_soc_read(codec, AIC32X4_CMMODE); |
638 | if (aic32x4->power_cfg & AIC32X4_PWR_CMMODE_LDOIN_RANGE_18_36) { | 637 | if (aic32x4->power_cfg & AIC32X4_PWR_CMMODE_LDOIN_RANGE_18_36) |
639 | tmp_reg |= AIC32X4_LDOIN_18_36; | 638 | tmp_reg |= AIC32X4_LDOIN_18_36; |
640 | } | 639 | if (aic32x4->power_cfg & AIC32X4_PWR_CMMODE_HP_LDOIN_POWERED) |
641 | if (aic32x4->power_cfg & AIC32X4_PWR_CMMODE_HP_LDOIN_POWERED) { | ||
642 | tmp_reg |= AIC32X4_LDOIN2HP; | 640 | tmp_reg |= AIC32X4_LDOIN2HP; |
643 | } | ||
644 | snd_soc_write(codec, AIC32X4_CMMODE, tmp_reg); | 641 | snd_soc_write(codec, AIC32X4_CMMODE, tmp_reg); |
645 | 642 | ||
646 | /* Mic PGA routing */ | 643 | /* Mic PGA routing */ |
647 | if (aic32x4->micpga_routing & AIC32X4_MICPGA_ROUTE_LMIC_IN2R_10K) | 644 | if (aic32x4->micpga_routing & AIC32X4_MICPGA_ROUTE_LMIC_IN2R_10K) |
648 | snd_soc_write(codec, AIC32X4_LMICPGANIN, AIC32X4_LMICPGANIN_IN2R_10K); | 645 | snd_soc_write(codec, AIC32X4_LMICPGANIN, |
646 | AIC32X4_LMICPGANIN_IN2R_10K); | ||
649 | else | 647 | else |
650 | snd_soc_write(codec, AIC32X4_LMICPGANIN, AIC32X4_LMICPGANIN_CM1L_10K); | 648 | snd_soc_write(codec, AIC32X4_LMICPGANIN, |
649 | AIC32X4_LMICPGANIN_CM1L_10K); | ||
651 | if (aic32x4->micpga_routing & AIC32X4_MICPGA_ROUTE_RMIC_IN1L_10K) | 650 | if (aic32x4->micpga_routing & AIC32X4_MICPGA_ROUTE_RMIC_IN1L_10K) |
652 | snd_soc_write(codec, AIC32X4_RMICPGANIN, AIC32X4_RMICPGANIN_IN1L_10K); | 651 | snd_soc_write(codec, AIC32X4_RMICPGANIN, |
652 | AIC32X4_RMICPGANIN_IN1L_10K); | ||
653 | else | 653 | else |
654 | snd_soc_write(codec, AIC32X4_RMICPGANIN, AIC32X4_RMICPGANIN_CM1R_10K); | 654 | snd_soc_write(codec, AIC32X4_RMICPGANIN, |
655 | AIC32X4_RMICPGANIN_CM1R_10K); | ||
655 | 656 | ||
656 | aic32x4_set_bias_level(codec, SND_SOC_BIAS_STANDBY); | 657 | aic32x4_set_bias_level(codec, SND_SOC_BIAS_STANDBY); |
657 | 658 | ||