diff options
| -rw-r--r-- | include/sound/wm8904.h | 36 | ||||
| -rw-r--r-- | sound/soc/codecs/wm8904.c | 5 | ||||
| -rw-r--r-- | sound/soc/codecs/wm8904.h | 33 |
3 files changed, 41 insertions, 33 deletions
diff --git a/include/sound/wm8904.h b/include/sound/wm8904.h index ddeeebf7c426..898be3a8db9a 100644 --- a/include/sound/wm8904.h +++ b/include/sound/wm8904.h | |||
| @@ -19,6 +19,40 @@ | |||
| 19 | #define WM8904_GPIO_NO_CONFIG 0x8000 | 19 | #define WM8904_GPIO_NO_CONFIG 0x8000 |
| 20 | 20 | ||
| 21 | /* | 21 | /* |
| 22 | * R6 (0x06) - Mic Bias Control 0 | ||
| 23 | */ | ||
| 24 | #define WM8904_MICDET_THR_MASK 0x0070 /* MICDET_THR - [6:4] */ | ||
| 25 | #define WM8904_MICDET_THR_SHIFT 4 /* MICDET_THR - [6:4] */ | ||
| 26 | #define WM8904_MICDET_THR_WIDTH 3 /* MICDET_THR - [6:4] */ | ||
| 27 | #define WM8904_MICSHORT_THR_MASK 0x000C /* MICSHORT_THR - [3:2] */ | ||
| 28 | #define WM8904_MICSHORT_THR_SHIFT 2 /* MICSHORT_THR - [3:2] */ | ||
| 29 | #define WM8904_MICSHORT_THR_WIDTH 2 /* MICSHORT_THR - [3:2] */ | ||
| 30 | #define WM8904_MICDET_ENA 0x0002 /* MICDET_ENA */ | ||
| 31 | #define WM8904_MICDET_ENA_MASK 0x0002 /* MICDET_ENA */ | ||
| 32 | #define WM8904_MICDET_ENA_SHIFT 1 /* MICDET_ENA */ | ||
| 33 | #define WM8904_MICDET_ENA_WIDTH 1 /* MICDET_ENA */ | ||
| 34 | #define WM8904_MICBIAS_ENA 0x0001 /* MICBIAS_ENA */ | ||
| 35 | #define WM8904_MICBIAS_ENA_MASK 0x0001 /* MICBIAS_ENA */ | ||
| 36 | #define WM8904_MICBIAS_ENA_SHIFT 0 /* MICBIAS_ENA */ | ||
| 37 | #define WM8904_MICBIAS_ENA_WIDTH 1 /* MICBIAS_ENA */ | ||
| 38 | |||
| 39 | /* | ||
| 40 | * R7 (0x07) - Mic Bias Control 1 | ||
| 41 | */ | ||
| 42 | #define WM8904_MIC_DET_FILTER_ENA 0x8000 /* MIC_DET_FILTER_ENA */ | ||
| 43 | #define WM8904_MIC_DET_FILTER_ENA_MASK 0x8000 /* MIC_DET_FILTER_ENA */ | ||
| 44 | #define WM8904_MIC_DET_FILTER_ENA_SHIFT 15 /* MIC_DET_FILTER_ENA */ | ||
| 45 | #define WM8904_MIC_DET_FILTER_ENA_WIDTH 1 /* MIC_DET_FILTER_ENA */ | ||
| 46 | #define WM8904_MIC_SHORT_FILTER_ENA 0x4000 /* MIC_SHORT_FILTER_ENA */ | ||
| 47 | #define WM8904_MIC_SHORT_FILTER_ENA_MASK 0x4000 /* MIC_SHORT_FILTER_ENA */ | ||
| 48 | #define WM8904_MIC_SHORT_FILTER_ENA_SHIFT 14 /* MIC_SHORT_FILTER_ENA */ | ||
| 49 | #define WM8904_MIC_SHORT_FILTER_ENA_WIDTH 1 /* MIC_SHORT_FILTER_ENA */ | ||
| 50 | #define WM8904_MICBIAS_SEL_MASK 0x0007 /* MICBIAS_SEL - [2:0] */ | ||
| 51 | #define WM8904_MICBIAS_SEL_SHIFT 0 /* MICBIAS_SEL - [2:0] */ | ||
| 52 | #define WM8904_MICBIAS_SEL_WIDTH 3 /* MICBIAS_SEL - [2:0] */ | ||
| 53 | |||
| 54 | |||
| 55 | /* | ||
| 22 | * R121 (0x79) - GPIO Control 1 | 56 | * R121 (0x79) - GPIO Control 1 |
| 23 | */ | 57 | */ |
| 24 | #define WM8904_GPIO1_PU 0x0020 /* GPIO1_PU */ | 58 | #define WM8904_GPIO1_PU 0x0020 /* GPIO1_PU */ |
| @@ -82,6 +116,7 @@ | |||
| 82 | #define WM8904_GPIO_BCLK_SEL_SHIFT 0 /* GPIO_BCLK_SEL - [3:0] */ | 116 | #define WM8904_GPIO_BCLK_SEL_SHIFT 0 /* GPIO_BCLK_SEL - [3:0] */ |
| 83 | #define WM8904_GPIO_BCLK_SEL_WIDTH 4 /* GPIO_BCLK_SEL - [3:0] */ | 117 | #define WM8904_GPIO_BCLK_SEL_WIDTH 4 /* GPIO_BCLK_SEL - [3:0] */ |
| 84 | 118 | ||
| 119 | #define WM8904_MIC_REGS 2 | ||
| 85 | #define WM8904_GPIO_REGS 4 | 120 | #define WM8904_GPIO_REGS 4 |
| 86 | #define WM8904_DRC_REGS 4 | 121 | #define WM8904_DRC_REGS 4 |
| 87 | #define WM8904_EQ_REGS 25 | 122 | #define WM8904_EQ_REGS 25 |
| @@ -122,6 +157,7 @@ struct wm8904_pdata { | |||
| 122 | struct wm8904_retune_mobile_cfg *retune_mobile_cfgs; | 157 | struct wm8904_retune_mobile_cfg *retune_mobile_cfgs; |
| 123 | 158 | ||
| 124 | u32 gpio_cfg[WM8904_GPIO_REGS]; | 159 | u32 gpio_cfg[WM8904_GPIO_REGS]; |
| 160 | u32 mic_cfg[WM8904_MIC_REGS]; | ||
| 125 | }; | 161 | }; |
| 126 | 162 | ||
| 127 | #endif | 163 | #endif |
diff --git a/sound/soc/codecs/wm8904.c b/sound/soc/codecs/wm8904.c index ce3f004217ae..c5b50d73f2d5 100644 --- a/sound/soc/codecs/wm8904.c +++ b/sound/soc/codecs/wm8904.c | |||
| @@ -2540,6 +2540,11 @@ static int wm8904_register(struct wm8904_priv *wm8904, | |||
| 2540 | wm8904->reg_cache[WM8904_GPIO_CONTROL_1 + i] | 2540 | wm8904->reg_cache[WM8904_GPIO_CONTROL_1 + i] |
| 2541 | = pdata->gpio_cfg[i] & 0xffff; | 2541 | = pdata->gpio_cfg[i] & 0xffff; |
| 2542 | } | 2542 | } |
| 2543 | |||
| 2544 | /* Zero is the default value for these anyway */ | ||
| 2545 | for (i = 0; i < WM8904_MIC_REGS; i++) | ||
| 2546 | wm8904->reg_cache[WM8904_MIC_BIAS_CONTROL_0 + i] | ||
| 2547 | = pdata->mic_cfg[i]; | ||
| 2543 | } | 2548 | } |
| 2544 | 2549 | ||
| 2545 | /* Set Class W by default - this will be managed by the Class | 2550 | /* Set Class W by default - this will be managed by the Class |
diff --git a/sound/soc/codecs/wm8904.h b/sound/soc/codecs/wm8904.h index 10603a75c1a5..abe5059b3004 100644 --- a/sound/soc/codecs/wm8904.h +++ b/sound/soc/codecs/wm8904.h | |||
| @@ -186,39 +186,6 @@ extern struct snd_soc_codec_device soc_codec_dev_wm8904; | |||
| 186 | #define WM8904_VMID_ENA_WIDTH 1 /* VMID_ENA */ | 186 | #define WM8904_VMID_ENA_WIDTH 1 /* VMID_ENA */ |
| 187 | 187 | ||
| 188 | /* | 188 | /* |
| 189 | * R6 (0x06) - Mic Bias Control 0 | ||
| 190 | */ | ||
| 191 | #define WM8904_MICDET_THR_MASK 0x0070 /* MICDET_THR - [6:4] */ | ||
| 192 | #define WM8904_MICDET_THR_SHIFT 4 /* MICDET_THR - [6:4] */ | ||
| 193 | #define WM8904_MICDET_THR_WIDTH 3 /* MICDET_THR - [6:4] */ | ||
| 194 | #define WM8904_MICSHORT_THR_MASK 0x000C /* MICSHORT_THR - [3:2] */ | ||
| 195 | #define WM8904_MICSHORT_THR_SHIFT 2 /* MICSHORT_THR - [3:2] */ | ||
| 196 | #define WM8904_MICSHORT_THR_WIDTH 2 /* MICSHORT_THR - [3:2] */ | ||
| 197 | #define WM8904_MICDET_ENA 0x0002 /* MICDET_ENA */ | ||
| 198 | #define WM8904_MICDET_ENA_MASK 0x0002 /* MICDET_ENA */ | ||
| 199 | #define WM8904_MICDET_ENA_SHIFT 1 /* MICDET_ENA */ | ||
| 200 | #define WM8904_MICDET_ENA_WIDTH 1 /* MICDET_ENA */ | ||
| 201 | #define WM8904_MICBIAS_ENA 0x0001 /* MICBIAS_ENA */ | ||
| 202 | #define WM8904_MICBIAS_ENA_MASK 0x0001 /* MICBIAS_ENA */ | ||
| 203 | #define WM8904_MICBIAS_ENA_SHIFT 0 /* MICBIAS_ENA */ | ||
| 204 | #define WM8904_MICBIAS_ENA_WIDTH 1 /* MICBIAS_ENA */ | ||
| 205 | |||
| 206 | /* | ||
| 207 | * R7 (0x07) - Mic Bias Control 1 | ||
| 208 | */ | ||
| 209 | #define WM8904_MIC_DET_FILTER_ENA 0x8000 /* MIC_DET_FILTER_ENA */ | ||
| 210 | #define WM8904_MIC_DET_FILTER_ENA_MASK 0x8000 /* MIC_DET_FILTER_ENA */ | ||
| 211 | #define WM8904_MIC_DET_FILTER_ENA_SHIFT 15 /* MIC_DET_FILTER_ENA */ | ||
| 212 | #define WM8904_MIC_DET_FILTER_ENA_WIDTH 1 /* MIC_DET_FILTER_ENA */ | ||
| 213 | #define WM8904_MIC_SHORT_FILTER_ENA 0x4000 /* MIC_SHORT_FILTER_ENA */ | ||
| 214 | #define WM8904_MIC_SHORT_FILTER_ENA_MASK 0x4000 /* MIC_SHORT_FILTER_ENA */ | ||
| 215 | #define WM8904_MIC_SHORT_FILTER_ENA_SHIFT 14 /* MIC_SHORT_FILTER_ENA */ | ||
| 216 | #define WM8904_MIC_SHORT_FILTER_ENA_WIDTH 1 /* MIC_SHORT_FILTER_ENA */ | ||
| 217 | #define WM8904_MICBIAS_SEL_MASK 0x0007 /* MICBIAS_SEL - [2:0] */ | ||
| 218 | #define WM8904_MICBIAS_SEL_SHIFT 0 /* MICBIAS_SEL - [2:0] */ | ||
| 219 | #define WM8904_MICBIAS_SEL_WIDTH 3 /* MICBIAS_SEL - [2:0] */ | ||
| 220 | |||
| 221 | /* | ||
| 222 | * R8 (0x08) - Analogue DAC 0 | 189 | * R8 (0x08) - Analogue DAC 0 |
| 223 | */ | 190 | */ |
| 224 | #define WM8904_DAC_BIAS_SEL_MASK 0x0018 /* DAC_BIAS_SEL - [4:3] */ | 191 | #define WM8904_DAC_BIAS_SEL_MASK 0x0018 /* DAC_BIAS_SEL - [4:3] */ |
