1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 
  10 #ifndef __WM9090_H
  11 #define __WM9090_H
  12 
  13 
  14 
  15 
  16 #define WM9090_SOFTWARE_RESET                   0x00
  17 #define WM9090_POWER_MANAGEMENT_1               0x01
  18 #define WM9090_POWER_MANAGEMENT_2               0x02
  19 #define WM9090_POWER_MANAGEMENT_3               0x03
  20 #define WM9090_CLOCKING_1                       0x06
  21 #define WM9090_IN1_LINE_CONTROL                 0x16
  22 #define WM9090_IN2_LINE_CONTROL                 0x17
  23 #define WM9090_IN1_LINE_INPUT_A_VOLUME          0x18
  24 #define WM9090_IN1_LINE_INPUT_B_VOLUME          0x19
  25 #define WM9090_IN2_LINE_INPUT_A_VOLUME          0x1A
  26 #define WM9090_IN2_LINE_INPUT_B_VOLUME          0x1B
  27 #define WM9090_LEFT_OUTPUT_VOLUME               0x1C
  28 #define WM9090_RIGHT_OUTPUT_VOLUME              0x1D
  29 #define WM9090_SPKMIXL_ATTENUATION              0x22
  30 #define WM9090_SPKOUT_MIXERS                    0x24
  31 #define WM9090_CLASSD3                          0x25
  32 #define WM9090_SPEAKER_VOLUME_LEFT              0x26
  33 #define WM9090_OUTPUT_MIXER1                    0x2D
  34 #define WM9090_OUTPUT_MIXER2                    0x2E
  35 #define WM9090_OUTPUT_MIXER3                    0x2F
  36 #define WM9090_OUTPUT_MIXER4                    0x30
  37 #define WM9090_SPEAKER_MIXER                    0x36
  38 #define WM9090_ANTIPOP2                         0x39
  39 #define WM9090_WRITE_SEQUENCER_0                0x46
  40 #define WM9090_WRITE_SEQUENCER_1                0x47
  41 #define WM9090_WRITE_SEQUENCER_2                0x48
  42 #define WM9090_WRITE_SEQUENCER_3                0x49
  43 #define WM9090_WRITE_SEQUENCER_4                0x4A
  44 #define WM9090_WRITE_SEQUENCER_5                0x4B
  45 #define WM9090_CHARGE_PUMP_1                    0x4C
  46 #define WM9090_DC_SERVO_0                       0x54
  47 #define WM9090_DC_SERVO_1                       0x55
  48 #define WM9090_DC_SERVO_3                       0x57
  49 #define WM9090_DC_SERVO_READBACK_0              0x58
  50 #define WM9090_DC_SERVO_READBACK_1              0x59
  51 #define WM9090_DC_SERVO_READBACK_2              0x5A
  52 #define WM9090_ANALOGUE_HP_0                    0x60
  53 #define WM9090_AGC_CONTROL_0                    0x62
  54 #define WM9090_AGC_CONTROL_1                    0x63
  55 #define WM9090_AGC_CONTROL_2                    0x64
  56 
  57 #define WM9090_REGISTER_COUNT                   40
  58 #define WM9090_MAX_REGISTER                     0x64
  59 
  60 
  61 
  62 
  63 
  64 
  65 
  66 
  67 #define WM9090_SW_RESET_MASK                    0xFFFF  
  68 #define WM9090_SW_RESET_SHIFT                        0  
  69 #define WM9090_SW_RESET_WIDTH                       16  
  70 
  71 
  72 
  73 
  74 #define WM9090_SPKOUTL_ENA                      0x1000  
  75 #define WM9090_SPKOUTL_ENA_MASK                 0x1000  
  76 #define WM9090_SPKOUTL_ENA_SHIFT                    12  
  77 #define WM9090_SPKOUTL_ENA_WIDTH                     1  
  78 #define WM9090_HPOUT1L_ENA                      0x0200  
  79 #define WM9090_HPOUT1L_ENA_MASK                 0x0200  
  80 #define WM9090_HPOUT1L_ENA_SHIFT                     9  
  81 #define WM9090_HPOUT1L_ENA_WIDTH                     1  
  82 #define WM9090_HPOUT1R_ENA                      0x0100  
  83 #define WM9090_HPOUT1R_ENA_MASK                 0x0100  
  84 #define WM9090_HPOUT1R_ENA_SHIFT                     8  
  85 #define WM9090_HPOUT1R_ENA_WIDTH                     1  
  86 #define WM9090_OSC_ENA                          0x0008  
  87 #define WM9090_OSC_ENA_MASK                     0x0008  
  88 #define WM9090_OSC_ENA_SHIFT                         3  
  89 #define WM9090_OSC_ENA_WIDTH                         1  
  90 #define WM9090_VMID_RES_MASK                    0x0006  
  91 #define WM9090_VMID_RES_SHIFT                        1  
  92 #define WM9090_VMID_RES_WIDTH                        2  
  93 #define WM9090_BIAS_ENA                         0x0001  
  94 #define WM9090_BIAS_ENA_MASK                    0x0001  
  95 #define WM9090_BIAS_ENA_SHIFT                        0  
  96 #define WM9090_BIAS_ENA_WIDTH                        1  
  97 
  98 
  99 
 100 
 101 #define WM9090_TSHUT                            0x8000  
 102 #define WM9090_TSHUT_MASK                       0x8000  
 103 #define WM9090_TSHUT_SHIFT                          15  
 104 #define WM9090_TSHUT_WIDTH                           1  
 105 #define WM9090_TSHUT_ENA                        0x4000  
 106 #define WM9090_TSHUT_ENA_MASK                   0x4000  
 107 #define WM9090_TSHUT_ENA_SHIFT                      14  
 108 #define WM9090_TSHUT_ENA_WIDTH                       1  
 109 #define WM9090_TSHUT_OPDIS                      0x2000  
 110 #define WM9090_TSHUT_OPDIS_MASK                 0x2000  
 111 #define WM9090_TSHUT_OPDIS_SHIFT                    13  
 112 #define WM9090_TSHUT_OPDIS_WIDTH                     1  
 113 #define WM9090_IN1A_ENA                         0x0080  
 114 #define WM9090_IN1A_ENA_MASK                    0x0080  
 115 #define WM9090_IN1A_ENA_SHIFT                        7  
 116 #define WM9090_IN1A_ENA_WIDTH                        1  
 117 #define WM9090_IN1B_ENA                         0x0040  
 118 #define WM9090_IN1B_ENA_MASK                    0x0040  
 119 #define WM9090_IN1B_ENA_SHIFT                        6  
 120 #define WM9090_IN1B_ENA_WIDTH                        1  
 121 #define WM9090_IN2A_ENA                         0x0020  
 122 #define WM9090_IN2A_ENA_MASK                    0x0020  
 123 #define WM9090_IN2A_ENA_SHIFT                        5  
 124 #define WM9090_IN2A_ENA_WIDTH                        1  
 125 #define WM9090_IN2B_ENA                         0x0010  
 126 #define WM9090_IN2B_ENA_MASK                    0x0010  
 127 #define WM9090_IN2B_ENA_SHIFT                        4  
 128 #define WM9090_IN2B_ENA_WIDTH                        1  
 129 
 130 
 131 
 132 
 133 #define WM9090_AGC_ENA                          0x4000  
 134 #define WM9090_AGC_ENA_MASK                     0x4000  
 135 #define WM9090_AGC_ENA_SHIFT                        14  
 136 #define WM9090_AGC_ENA_WIDTH                         1  
 137 #define WM9090_SPKLVOL_ENA                      0x0100  
 138 #define WM9090_SPKLVOL_ENA_MASK                 0x0100  
 139 #define WM9090_SPKLVOL_ENA_SHIFT                     8  
 140 #define WM9090_SPKLVOL_ENA_WIDTH                     1  
 141 #define WM9090_MIXOUTL_ENA                      0x0020  
 142 #define WM9090_MIXOUTL_ENA_MASK                 0x0020  
 143 #define WM9090_MIXOUTL_ENA_SHIFT                     5  
 144 #define WM9090_MIXOUTL_ENA_WIDTH                     1  
 145 #define WM9090_MIXOUTR_ENA                      0x0010  
 146 #define WM9090_MIXOUTR_ENA_MASK                 0x0010  
 147 #define WM9090_MIXOUTR_ENA_SHIFT                     4  
 148 #define WM9090_MIXOUTR_ENA_WIDTH                     1  
 149 #define WM9090_SPKMIX_ENA                       0x0008  
 150 #define WM9090_SPKMIX_ENA_MASK                  0x0008  
 151 #define WM9090_SPKMIX_ENA_SHIFT                      3  
 152 #define WM9090_SPKMIX_ENA_WIDTH                      1  
 153 
 154 
 155 
 156 
 157 #define WM9090_TOCLK_RATE                       0x8000  
 158 #define WM9090_TOCLK_RATE_MASK                  0x8000  
 159 #define WM9090_TOCLK_RATE_SHIFT                     15  
 160 #define WM9090_TOCLK_RATE_WIDTH                      1  
 161 #define WM9090_TOCLK_ENA                        0x4000  
 162 #define WM9090_TOCLK_ENA_MASK                   0x4000  
 163 #define WM9090_TOCLK_ENA_SHIFT                      14  
 164 #define WM9090_TOCLK_ENA_WIDTH                       1  
 165 
 166 
 167 
 168 
 169 #define WM9090_IN1_DIFF                         0x0002  
 170 #define WM9090_IN1_DIFF_MASK                    0x0002  
 171 #define WM9090_IN1_DIFF_SHIFT                        1  
 172 #define WM9090_IN1_DIFF_WIDTH                        1  
 173 #define WM9090_IN1_CLAMP                        0x0001  
 174 #define WM9090_IN1_CLAMP_MASK                   0x0001  
 175 #define WM9090_IN1_CLAMP_SHIFT                       0  
 176 #define WM9090_IN1_CLAMP_WIDTH                       1  
 177 
 178 
 179 
 180 
 181 #define WM9090_IN2_DIFF                         0x0002  
 182 #define WM9090_IN2_DIFF_MASK                    0x0002  
 183 #define WM9090_IN2_DIFF_SHIFT                        1  
 184 #define WM9090_IN2_DIFF_WIDTH                        1  
 185 #define WM9090_IN2_CLAMP                        0x0001  
 186 #define WM9090_IN2_CLAMP_MASK                   0x0001  
 187 #define WM9090_IN2_CLAMP_SHIFT                       0  
 188 #define WM9090_IN2_CLAMP_WIDTH                       1  
 189 
 190 
 191 
 192 
 193 #define WM9090_IN1_VU                           0x0100  
 194 #define WM9090_IN1_VU_MASK                      0x0100  
 195 #define WM9090_IN1_VU_SHIFT                          8  
 196 #define WM9090_IN1_VU_WIDTH                          1  
 197 #define WM9090_IN1A_MUTE                        0x0080  
 198 #define WM9090_IN1A_MUTE_MASK                   0x0080  
 199 #define WM9090_IN1A_MUTE_SHIFT                       7  
 200 #define WM9090_IN1A_MUTE_WIDTH                       1  
 201 #define WM9090_IN1A_ZC                          0x0040  
 202 #define WM9090_IN1A_ZC_MASK                     0x0040  
 203 #define WM9090_IN1A_ZC_SHIFT                         6  
 204 #define WM9090_IN1A_ZC_WIDTH                         1  
 205 #define WM9090_IN1A_VOL_MASK                    0x0007  
 206 #define WM9090_IN1A_VOL_SHIFT                        0  
 207 #define WM9090_IN1A_VOL_WIDTH                        3  
 208 
 209 
 210 
 211 
 212 #define WM9090_IN1_VU                           0x0100  
 213 #define WM9090_IN1_VU_MASK                      0x0100  
 214 #define WM9090_IN1_VU_SHIFT                          8  
 215 #define WM9090_IN1_VU_WIDTH                          1  
 216 #define WM9090_IN1B_MUTE                        0x0080  
 217 #define WM9090_IN1B_MUTE_MASK                   0x0080  
 218 #define WM9090_IN1B_MUTE_SHIFT                       7  
 219 #define WM9090_IN1B_MUTE_WIDTH                       1  
 220 #define WM9090_IN1B_ZC                          0x0040  
 221 #define WM9090_IN1B_ZC_MASK                     0x0040  
 222 #define WM9090_IN1B_ZC_SHIFT                         6  
 223 #define WM9090_IN1B_ZC_WIDTH                         1  
 224 #define WM9090_IN1B_VOL_MASK                    0x0007  
 225 #define WM9090_IN1B_VOL_SHIFT                        0  
 226 #define WM9090_IN1B_VOL_WIDTH                        3  
 227 
 228 
 229 
 230 
 231 #define WM9090_IN2_VU                           0x0100  
 232 #define WM9090_IN2_VU_MASK                      0x0100  
 233 #define WM9090_IN2_VU_SHIFT                          8  
 234 #define WM9090_IN2_VU_WIDTH                          1  
 235 #define WM9090_IN2A_MUTE                        0x0080  
 236 #define WM9090_IN2A_MUTE_MASK                   0x0080  
 237 #define WM9090_IN2A_MUTE_SHIFT                       7  
 238 #define WM9090_IN2A_MUTE_WIDTH                       1  
 239 #define WM9090_IN2A_ZC                          0x0040  
 240 #define WM9090_IN2A_ZC_MASK                     0x0040  
 241 #define WM9090_IN2A_ZC_SHIFT                         6  
 242 #define WM9090_IN2A_ZC_WIDTH                         1  
 243 #define WM9090_IN2A_VOL_MASK                    0x0007  
 244 #define WM9090_IN2A_VOL_SHIFT                        0  
 245 #define WM9090_IN2A_VOL_WIDTH                        3  
 246 
 247 
 248 
 249 
 250 #define WM9090_IN2_VU                           0x0100  
 251 #define WM9090_IN2_VU_MASK                      0x0100  
 252 #define WM9090_IN2_VU_SHIFT                          8  
 253 #define WM9090_IN2_VU_WIDTH                          1  
 254 #define WM9090_IN2B_MUTE                        0x0080  
 255 #define WM9090_IN2B_MUTE_MASK                   0x0080  
 256 #define WM9090_IN2B_MUTE_SHIFT                       7  
 257 #define WM9090_IN2B_MUTE_WIDTH                       1  
 258 #define WM9090_IN2B_ZC                          0x0040  
 259 #define WM9090_IN2B_ZC_MASK                     0x0040  
 260 #define WM9090_IN2B_ZC_SHIFT                         6  
 261 #define WM9090_IN2B_ZC_WIDTH                         1  
 262 #define WM9090_IN2B_VOL_MASK                    0x0007  
 263 #define WM9090_IN2B_VOL_SHIFT                        0  
 264 #define WM9090_IN2B_VOL_WIDTH                        3  
 265 
 266 
 267 
 268 
 269 #define WM9090_HPOUT1_VU                        0x0100  
 270 #define WM9090_HPOUT1_VU_MASK                   0x0100  
 271 #define WM9090_HPOUT1_VU_SHIFT                       8  
 272 #define WM9090_HPOUT1_VU_WIDTH                       1  
 273 #define WM9090_HPOUT1L_ZC                       0x0080  
 274 #define WM9090_HPOUT1L_ZC_MASK                  0x0080  
 275 #define WM9090_HPOUT1L_ZC_SHIFT                      7  
 276 #define WM9090_HPOUT1L_ZC_WIDTH                      1  
 277 #define WM9090_HPOUT1L_MUTE                     0x0040  
 278 #define WM9090_HPOUT1L_MUTE_MASK                0x0040  
 279 #define WM9090_HPOUT1L_MUTE_SHIFT                    6  
 280 #define WM9090_HPOUT1L_MUTE_WIDTH                    1  
 281 #define WM9090_HPOUT1L_VOL_MASK                 0x003F  
 282 #define WM9090_HPOUT1L_VOL_SHIFT                     0  
 283 #define WM9090_HPOUT1L_VOL_WIDTH                     6  
 284 
 285 
 286 
 287 
 288 #define WM9090_HPOUT1_VU                        0x0100  
 289 #define WM9090_HPOUT1_VU_MASK                   0x0100  
 290 #define WM9090_HPOUT1_VU_SHIFT                       8  
 291 #define WM9090_HPOUT1_VU_WIDTH                       1  
 292 #define WM9090_HPOUT1R_ZC                       0x0080  
 293 #define WM9090_HPOUT1R_ZC_MASK                  0x0080  
 294 #define WM9090_HPOUT1R_ZC_SHIFT                      7  
 295 #define WM9090_HPOUT1R_ZC_WIDTH                      1  
 296 #define WM9090_HPOUT1R_MUTE                     0x0040  
 297 #define WM9090_HPOUT1R_MUTE_MASK                0x0040  
 298 #define WM9090_HPOUT1R_MUTE_SHIFT                    6  
 299 #define WM9090_HPOUT1R_MUTE_WIDTH                    1  
 300 #define WM9090_HPOUT1R_VOL_MASK                 0x003F  
 301 #define WM9090_HPOUT1R_VOL_SHIFT                     0  
 302 #define WM9090_HPOUT1R_VOL_WIDTH                     6  
 303 
 304 
 305 
 306 
 307 #define WM9090_SPKMIX_MUTE                      0x0100  
 308 #define WM9090_SPKMIX_MUTE_MASK                 0x0100  
 309 #define WM9090_SPKMIX_MUTE_SHIFT                     8  
 310 #define WM9090_SPKMIX_MUTE_WIDTH                     1  
 311 #define WM9090_IN1A_SPKMIX_VOL_MASK             0x00C0  
 312 #define WM9090_IN1A_SPKMIX_VOL_SHIFT                 6  
 313 #define WM9090_IN1A_SPKMIX_VOL_WIDTH                 2  
 314 #define WM9090_IN1B_SPKMIX_VOL_MASK             0x0030  
 315 #define WM9090_IN1B_SPKMIX_VOL_SHIFT                 4  
 316 #define WM9090_IN1B_SPKMIX_VOL_WIDTH                 2  
 317 #define WM9090_IN2A_SPKMIX_VOL_MASK             0x000C  
 318 #define WM9090_IN2A_SPKMIX_VOL_SHIFT                 2  
 319 #define WM9090_IN2A_SPKMIX_VOL_WIDTH                 2  
 320 #define WM9090_IN2B_SPKMIX_VOL_MASK             0x0003  
 321 #define WM9090_IN2B_SPKMIX_VOL_SHIFT                 0  
 322 #define WM9090_IN2B_SPKMIX_VOL_WIDTH                 2  
 323 
 324 
 325 
 326 
 327 #define WM9090_SPKMIXL_TO_SPKOUTL               0x0010  
 328 #define WM9090_SPKMIXL_TO_SPKOUTL_MASK          0x0010  
 329 #define WM9090_SPKMIXL_TO_SPKOUTL_SHIFT              4  
 330 #define WM9090_SPKMIXL_TO_SPKOUTL_WIDTH              1  
 331 
 332 
 333 
 334 
 335 #define WM9090_SPKOUTL_BOOST_MASK               0x0038  
 336 #define WM9090_SPKOUTL_BOOST_SHIFT                   3  
 337 #define WM9090_SPKOUTL_BOOST_WIDTH                   3  
 338 
 339 
 340 
 341 
 342 #define WM9090_SPKOUT_VU                        0x0100  
 343 #define WM9090_SPKOUT_VU_MASK                   0x0100  
 344 #define WM9090_SPKOUT_VU_SHIFT                       8  
 345 #define WM9090_SPKOUT_VU_WIDTH                       1  
 346 #define WM9090_SPKOUTL_ZC                       0x0080  
 347 #define WM9090_SPKOUTL_ZC_MASK                  0x0080  
 348 #define WM9090_SPKOUTL_ZC_SHIFT                      7  
 349 #define WM9090_SPKOUTL_ZC_WIDTH                      1  
 350 #define WM9090_SPKOUTL_MUTE                     0x0040  
 351 #define WM9090_SPKOUTL_MUTE_MASK                0x0040  
 352 #define WM9090_SPKOUTL_MUTE_SHIFT                    6  
 353 #define WM9090_SPKOUTL_MUTE_WIDTH                    1  
 354 #define WM9090_SPKOUTL_VOL_MASK                 0x003F  
 355 #define WM9090_SPKOUTL_VOL_SHIFT                     0  
 356 #define WM9090_SPKOUTL_VOL_WIDTH                     6  
 357 
 358 
 359 
 360 
 361 #define WM9090_IN1A_TO_MIXOUTL                  0x0040  
 362 #define WM9090_IN1A_TO_MIXOUTL_MASK             0x0040  
 363 #define WM9090_IN1A_TO_MIXOUTL_SHIFT                 6  
 364 #define WM9090_IN1A_TO_MIXOUTL_WIDTH                 1  
 365 #define WM9090_IN2A_TO_MIXOUTL                  0x0004  
 366 #define WM9090_IN2A_TO_MIXOUTL_MASK             0x0004  
 367 #define WM9090_IN2A_TO_MIXOUTL_SHIFT                 2  
 368 #define WM9090_IN2A_TO_MIXOUTL_WIDTH                 1  
 369 
 370 
 371 
 372 
 373 #define WM9090_IN1A_TO_MIXOUTR                  0x0040  
 374 #define WM9090_IN1A_TO_MIXOUTR_MASK             0x0040  
 375 #define WM9090_IN1A_TO_MIXOUTR_SHIFT                 6  
 376 #define WM9090_IN1A_TO_MIXOUTR_WIDTH                 1  
 377 #define WM9090_IN1B_TO_MIXOUTR                  0x0010  
 378 #define WM9090_IN1B_TO_MIXOUTR_MASK             0x0010  
 379 #define WM9090_IN1B_TO_MIXOUTR_SHIFT                 4  
 380 #define WM9090_IN1B_TO_MIXOUTR_WIDTH                 1  
 381 #define WM9090_IN2A_TO_MIXOUTR                  0x0004  
 382 #define WM9090_IN2A_TO_MIXOUTR_MASK             0x0004  
 383 #define WM9090_IN2A_TO_MIXOUTR_SHIFT                 2  
 384 #define WM9090_IN2A_TO_MIXOUTR_WIDTH                 1  
 385 #define WM9090_IN2B_TO_MIXOUTR                  0x0001  
 386 #define WM9090_IN2B_TO_MIXOUTR_MASK             0x0001  
 387 #define WM9090_IN2B_TO_MIXOUTR_SHIFT                 0  
 388 #define WM9090_IN2B_TO_MIXOUTR_WIDTH                 1  
 389 
 390 
 391 
 392 
 393 #define WM9090_MIXOUTL_MUTE                     0x0100  
 394 #define WM9090_MIXOUTL_MUTE_MASK                0x0100  
 395 #define WM9090_MIXOUTL_MUTE_SHIFT                    8  
 396 #define WM9090_MIXOUTL_MUTE_WIDTH                    1  
 397 #define WM9090_IN1A_MIXOUTL_VOL_MASK            0x00C0  
 398 #define WM9090_IN1A_MIXOUTL_VOL_SHIFT                6  
 399 #define WM9090_IN1A_MIXOUTL_VOL_WIDTH                2  
 400 #define WM9090_IN2A_MIXOUTL_VOL_MASK            0x000C  
 401 #define WM9090_IN2A_MIXOUTL_VOL_SHIFT                2  
 402 #define WM9090_IN2A_MIXOUTL_VOL_WIDTH                2  
 403 
 404 
 405 
 406 
 407 #define WM9090_MIXOUTR_MUTE                     0x0100  
 408 #define WM9090_MIXOUTR_MUTE_MASK                0x0100  
 409 #define WM9090_MIXOUTR_MUTE_SHIFT                    8  
 410 #define WM9090_MIXOUTR_MUTE_WIDTH                    1  
 411 #define WM9090_IN1A_MIXOUTR_VOL_MASK            0x00C0  
 412 #define WM9090_IN1A_MIXOUTR_VOL_SHIFT                6  
 413 #define WM9090_IN1A_MIXOUTR_VOL_WIDTH                2  
 414 #define WM9090_IN1B_MIXOUTR_VOL_MASK            0x0030  
 415 #define WM9090_IN1B_MIXOUTR_VOL_SHIFT                4  
 416 #define WM9090_IN1B_MIXOUTR_VOL_WIDTH                2  
 417 #define WM9090_IN2A_MIXOUTR_VOL_MASK            0x000C  
 418 #define WM9090_IN2A_MIXOUTR_VOL_SHIFT                2  
 419 #define WM9090_IN2A_MIXOUTR_VOL_WIDTH                2  
 420 #define WM9090_IN2B_MIXOUTR_VOL_MASK            0x0003  
 421 #define WM9090_IN2B_MIXOUTR_VOL_SHIFT                0  
 422 #define WM9090_IN2B_MIXOUTR_VOL_WIDTH                2  
 423 
 424 
 425 
 426 
 427 #define WM9090_IN1A_TO_SPKMIX                   0x0040  
 428 #define WM9090_IN1A_TO_SPKMIX_MASK              0x0040  
 429 #define WM9090_IN1A_TO_SPKMIX_SHIFT                  6  
 430 #define WM9090_IN1A_TO_SPKMIX_WIDTH                  1  
 431 #define WM9090_IN1B_TO_SPKMIX                   0x0010  
 432 #define WM9090_IN1B_TO_SPKMIX_MASK              0x0010  
 433 #define WM9090_IN1B_TO_SPKMIX_SHIFT                  4  
 434 #define WM9090_IN1B_TO_SPKMIX_WIDTH                  1  
 435 #define WM9090_IN2A_TO_SPKMIX                   0x0004  
 436 #define WM9090_IN2A_TO_SPKMIX_MASK              0x0004  
 437 #define WM9090_IN2A_TO_SPKMIX_SHIFT                  2  
 438 #define WM9090_IN2A_TO_SPKMIX_WIDTH                  1  
 439 #define WM9090_IN2B_TO_SPKMIX                   0x0001  
 440 #define WM9090_IN2B_TO_SPKMIX_MASK              0x0001  
 441 #define WM9090_IN2B_TO_SPKMIX_SHIFT                  0  
 442 #define WM9090_IN2B_TO_SPKMIX_WIDTH                  1  
 443 
 444 
 445 
 446 
 447 #define WM9090_VMID_BUF_ENA                     0x0008  
 448 #define WM9090_VMID_BUF_ENA_MASK                0x0008  
 449 #define WM9090_VMID_BUF_ENA_SHIFT                    3  
 450 #define WM9090_VMID_BUF_ENA_WIDTH                    1  
 451 #define WM9090_VMID_ENA                         0x0001  
 452 #define WM9090_VMID_ENA_MASK                    0x0001  
 453 #define WM9090_VMID_ENA_SHIFT                        0  
 454 #define WM9090_VMID_ENA_WIDTH                        1  
 455 
 456 
 457 
 458 
 459 #define WM9090_WSEQ_ENA                         0x0100  
 460 #define WM9090_WSEQ_ENA_MASK                    0x0100  
 461 #define WM9090_WSEQ_ENA_SHIFT                        8  
 462 #define WM9090_WSEQ_ENA_WIDTH                        1  
 463 #define WM9090_WSEQ_WRITE_INDEX_MASK            0x000F  
 464 #define WM9090_WSEQ_WRITE_INDEX_SHIFT                0  
 465 #define WM9090_WSEQ_WRITE_INDEX_WIDTH                4  
 466 
 467 
 468 
 469 
 470 #define WM9090_WSEQ_DATA_WIDTH_MASK             0x7000  
 471 #define WM9090_WSEQ_DATA_WIDTH_SHIFT                12  
 472 #define WM9090_WSEQ_DATA_WIDTH_WIDTH                 3  
 473 #define WM9090_WSEQ_DATA_START_MASK             0x0F00  
 474 #define WM9090_WSEQ_DATA_START_SHIFT                 8  
 475 #define WM9090_WSEQ_DATA_START_WIDTH                 4  
 476 #define WM9090_WSEQ_ADDR_MASK                   0x00FF  
 477 #define WM9090_WSEQ_ADDR_SHIFT                       0  
 478 #define WM9090_WSEQ_ADDR_WIDTH                       8  
 479 
 480 
 481 
 482 
 483 #define WM9090_WSEQ_EOS                         0x4000  
 484 #define WM9090_WSEQ_EOS_MASK                    0x4000  
 485 #define WM9090_WSEQ_EOS_SHIFT                       14  
 486 #define WM9090_WSEQ_EOS_WIDTH                        1  
 487 #define WM9090_WSEQ_DELAY_MASK                  0x0F00  
 488 #define WM9090_WSEQ_DELAY_SHIFT                      8  
 489 #define WM9090_WSEQ_DELAY_WIDTH                      4  
 490 #define WM9090_WSEQ_DATA_MASK                   0x00FF  
 491 #define WM9090_WSEQ_DATA_SHIFT                       0  
 492 #define WM9090_WSEQ_DATA_WIDTH                       8  
 493 
 494 
 495 
 496 
 497 #define WM9090_WSEQ_ABORT                       0x0200  
 498 #define WM9090_WSEQ_ABORT_MASK                  0x0200  
 499 #define WM9090_WSEQ_ABORT_SHIFT                      9  
 500 #define WM9090_WSEQ_ABORT_WIDTH                      1  
 501 #define WM9090_WSEQ_START                       0x0100  
 502 #define WM9090_WSEQ_START_MASK                  0x0100  
 503 #define WM9090_WSEQ_START_SHIFT                      8  
 504 #define WM9090_WSEQ_START_WIDTH                      1  
 505 #define WM9090_WSEQ_START_INDEX_MASK            0x003F  
 506 #define WM9090_WSEQ_START_INDEX_SHIFT                0  
 507 #define WM9090_WSEQ_START_INDEX_WIDTH                6  
 508 
 509 
 510 
 511 
 512 #define WM9090_WSEQ_BUSY                        0x0001  
 513 #define WM9090_WSEQ_BUSY_MASK                   0x0001  
 514 #define WM9090_WSEQ_BUSY_SHIFT                       0  
 515 #define WM9090_WSEQ_BUSY_WIDTH                       1  
 516 
 517 
 518 
 519 
 520 #define WM9090_WSEQ_CURRENT_INDEX_MASK          0x003F  
 521 #define WM9090_WSEQ_CURRENT_INDEX_SHIFT              0  
 522 #define WM9090_WSEQ_CURRENT_INDEX_WIDTH              6  
 523 
 524 
 525 
 526 
 527 #define WM9090_CP_ENA                           0x8000  
 528 #define WM9090_CP_ENA_MASK                      0x8000  
 529 #define WM9090_CP_ENA_SHIFT                         15  
 530 #define WM9090_CP_ENA_WIDTH                          1  
 531 
 532 
 533 
 534 
 535 #define WM9090_DCS_TRIG_SINGLE_1                0x2000  
 536 #define WM9090_DCS_TRIG_SINGLE_1_MASK           0x2000  
 537 #define WM9090_DCS_TRIG_SINGLE_1_SHIFT              13  
 538 #define WM9090_DCS_TRIG_SINGLE_1_WIDTH               1  
 539 #define WM9090_DCS_TRIG_SINGLE_0                0x1000  
 540 #define WM9090_DCS_TRIG_SINGLE_0_MASK           0x1000  
 541 #define WM9090_DCS_TRIG_SINGLE_0_SHIFT              12  
 542 #define WM9090_DCS_TRIG_SINGLE_0_WIDTH               1  
 543 #define WM9090_DCS_TRIG_SERIES_1                0x0200  
 544 #define WM9090_DCS_TRIG_SERIES_1_MASK           0x0200  
 545 #define WM9090_DCS_TRIG_SERIES_1_SHIFT               9  
 546 #define WM9090_DCS_TRIG_SERIES_1_WIDTH               1  
 547 #define WM9090_DCS_TRIG_SERIES_0                0x0100  
 548 #define WM9090_DCS_TRIG_SERIES_0_MASK           0x0100  
 549 #define WM9090_DCS_TRIG_SERIES_0_SHIFT               8  
 550 #define WM9090_DCS_TRIG_SERIES_0_WIDTH               1  
 551 #define WM9090_DCS_TRIG_STARTUP_1               0x0020  
 552 #define WM9090_DCS_TRIG_STARTUP_1_MASK          0x0020  
 553 #define WM9090_DCS_TRIG_STARTUP_1_SHIFT              5  
 554 #define WM9090_DCS_TRIG_STARTUP_1_WIDTH              1  
 555 #define WM9090_DCS_TRIG_STARTUP_0               0x0010  
 556 #define WM9090_DCS_TRIG_STARTUP_0_MASK          0x0010  
 557 #define WM9090_DCS_TRIG_STARTUP_0_SHIFT              4  
 558 #define WM9090_DCS_TRIG_STARTUP_0_WIDTH              1  
 559 #define WM9090_DCS_TRIG_DAC_WR_1                0x0008  
 560 #define WM9090_DCS_TRIG_DAC_WR_1_MASK           0x0008  
 561 #define WM9090_DCS_TRIG_DAC_WR_1_SHIFT               3  
 562 #define WM9090_DCS_TRIG_DAC_WR_1_WIDTH               1  
 563 #define WM9090_DCS_TRIG_DAC_WR_0                0x0004  
 564 #define WM9090_DCS_TRIG_DAC_WR_0_MASK           0x0004  
 565 #define WM9090_DCS_TRIG_DAC_WR_0_SHIFT               2  
 566 #define WM9090_DCS_TRIG_DAC_WR_0_WIDTH               1  
 567 #define WM9090_DCS_ENA_CHAN_1                   0x0002  
 568 #define WM9090_DCS_ENA_CHAN_1_MASK              0x0002  
 569 #define WM9090_DCS_ENA_CHAN_1_SHIFT                  1  
 570 #define WM9090_DCS_ENA_CHAN_1_WIDTH                  1  
 571 #define WM9090_DCS_ENA_CHAN_0                   0x0001  
 572 #define WM9090_DCS_ENA_CHAN_0_MASK              0x0001  
 573 #define WM9090_DCS_ENA_CHAN_0_SHIFT                  0  
 574 #define WM9090_DCS_ENA_CHAN_0_WIDTH                  1  
 575 
 576 
 577 
 578 
 579 #define WM9090_DCS_SERIES_NO_01_MASK            0x0FE0  
 580 #define WM9090_DCS_SERIES_NO_01_SHIFT                5  
 581 #define WM9090_DCS_SERIES_NO_01_WIDTH                7  
 582 #define WM9090_DCS_TIMER_PERIOD_01_MASK         0x000F  
 583 #define WM9090_DCS_TIMER_PERIOD_01_SHIFT             0  
 584 #define WM9090_DCS_TIMER_PERIOD_01_WIDTH             4  
 585 
 586 
 587 
 588 
 589 #define WM9090_DCS_DAC_WR_VAL_1_MASK            0xFF00  
 590 #define WM9090_DCS_DAC_WR_VAL_1_SHIFT                8  
 591 #define WM9090_DCS_DAC_WR_VAL_1_WIDTH                8  
 592 #define WM9090_DCS_DAC_WR_VAL_0_MASK            0x00FF  
 593 #define WM9090_DCS_DAC_WR_VAL_0_SHIFT                0  
 594 #define WM9090_DCS_DAC_WR_VAL_0_WIDTH                8  
 595 
 596 
 597 
 598 
 599 #define WM9090_DCS_CAL_COMPLETE_MASK            0x0300  
 600 #define WM9090_DCS_CAL_COMPLETE_SHIFT                8  
 601 #define WM9090_DCS_CAL_COMPLETE_WIDTH                2  
 602 #define WM9090_DCS_DAC_WR_COMPLETE_MASK         0x0030  
 603 #define WM9090_DCS_DAC_WR_COMPLETE_SHIFT             4  
 604 #define WM9090_DCS_DAC_WR_COMPLETE_WIDTH             2  
 605 #define WM9090_DCS_STARTUP_COMPLETE_MASK        0x0003  
 606 #define WM9090_DCS_STARTUP_COMPLETE_SHIFT            0  
 607 #define WM9090_DCS_STARTUP_COMPLETE_WIDTH            2  
 608 
 609 
 610 
 611 
 612 #define WM9090_DCS_DAC_WR_VAL_1_RD_MASK         0x00FF  
 613 #define WM9090_DCS_DAC_WR_VAL_1_RD_SHIFT             0  
 614 #define WM9090_DCS_DAC_WR_VAL_1_RD_WIDTH             8  
 615 
 616 
 617 
 618 
 619 #define WM9090_DCS_DAC_WR_VAL_0_RD_MASK         0x00FF  
 620 #define WM9090_DCS_DAC_WR_VAL_0_RD_SHIFT             0  
 621 #define WM9090_DCS_DAC_WR_VAL_0_RD_WIDTH             8  
 622 
 623 
 624 
 625 
 626 #define WM9090_HPOUT1L_RMV_SHORT                0x0080  
 627 #define WM9090_HPOUT1L_RMV_SHORT_MASK           0x0080  
 628 #define WM9090_HPOUT1L_RMV_SHORT_SHIFT               7  
 629 #define WM9090_HPOUT1L_RMV_SHORT_WIDTH               1  
 630 #define WM9090_HPOUT1L_OUTP                     0x0040  
 631 #define WM9090_HPOUT1L_OUTP_MASK                0x0040  
 632 #define WM9090_HPOUT1L_OUTP_SHIFT                    6  
 633 #define WM9090_HPOUT1L_OUTP_WIDTH                    1  
 634 #define WM9090_HPOUT1L_DLY                      0x0020  
 635 #define WM9090_HPOUT1L_DLY_MASK                 0x0020  
 636 #define WM9090_HPOUT1L_DLY_SHIFT                     5  
 637 #define WM9090_HPOUT1L_DLY_WIDTH                     1  
 638 #define WM9090_HPOUT1R_RMV_SHORT                0x0008  
 639 #define WM9090_HPOUT1R_RMV_SHORT_MASK           0x0008  
 640 #define WM9090_HPOUT1R_RMV_SHORT_SHIFT               3  
 641 #define WM9090_HPOUT1R_RMV_SHORT_WIDTH               1  
 642 #define WM9090_HPOUT1R_OUTP                     0x0004  
 643 #define WM9090_HPOUT1R_OUTP_MASK                0x0004  
 644 #define WM9090_HPOUT1R_OUTP_SHIFT                    2  
 645 #define WM9090_HPOUT1R_OUTP_WIDTH                    1  
 646 #define WM9090_HPOUT1R_DLY                      0x0002  
 647 #define WM9090_HPOUT1R_DLY_MASK                 0x0002  
 648 #define WM9090_HPOUT1R_DLY_SHIFT                     1  
 649 #define WM9090_HPOUT1R_DLY_WIDTH                     1  
 650 
 651 
 652 
 653 
 654 #define WM9090_AGC_CLIP_ENA                     0x8000  
 655 #define WM9090_AGC_CLIP_ENA_MASK                0x8000  
 656 #define WM9090_AGC_CLIP_ENA_SHIFT                   15  
 657 #define WM9090_AGC_CLIP_ENA_WIDTH                    1  
 658 #define WM9090_AGC_CLIP_THR_MASK                0x0F00  
 659 #define WM9090_AGC_CLIP_THR_SHIFT                    8  
 660 #define WM9090_AGC_CLIP_THR_WIDTH                    4  
 661 #define WM9090_AGC_CLIP_ATK_MASK                0x0070  
 662 #define WM9090_AGC_CLIP_ATK_SHIFT                    4  
 663 #define WM9090_AGC_CLIP_ATK_WIDTH                    3  
 664 #define WM9090_AGC_CLIP_DCY_MASK                0x0007  
 665 #define WM9090_AGC_CLIP_DCY_SHIFT                    0  
 666 #define WM9090_AGC_CLIP_DCY_WIDTH                    3  
 667 
 668 
 669 
 670 
 671 #define WM9090_AGC_PWR_ENA                      0x8000  
 672 #define WM9090_AGC_PWR_ENA_MASK                 0x8000  
 673 #define WM9090_AGC_PWR_ENA_SHIFT                    15  
 674 #define WM9090_AGC_PWR_ENA_WIDTH                     1  
 675 #define WM9090_AGC_PWR_AVG                      0x1000  
 676 #define WM9090_AGC_PWR_AVG_MASK                 0x1000  
 677 #define WM9090_AGC_PWR_AVG_SHIFT                    12  
 678 #define WM9090_AGC_PWR_AVG_WIDTH                     1  
 679 #define WM9090_AGC_PWR_THR_MASK                 0x0F00  
 680 #define WM9090_AGC_PWR_THR_SHIFT                     8  
 681 #define WM9090_AGC_PWR_THR_WIDTH                     4  
 682 #define WM9090_AGC_PWR_ATK_MASK                 0x0070  
 683 #define WM9090_AGC_PWR_ATK_SHIFT                     4  
 684 #define WM9090_AGC_PWR_ATK_WIDTH                     3  
 685 #define WM9090_AGC_PWR_DCY_MASK                 0x0007  
 686 #define WM9090_AGC_PWR_DCY_SHIFT                     0  
 687 #define WM9090_AGC_PWR_DCY_WIDTH                     3  
 688 
 689 
 690 
 691 
 692 #define WM9090_AGC_RAMP                         0x0100  
 693 #define WM9090_AGC_RAMP_MASK                    0x0100  
 694 #define WM9090_AGC_RAMP_SHIFT                        8  
 695 #define WM9090_AGC_RAMP_WIDTH                        1  
 696 #define WM9090_AGC_MINGAIN_MASK                 0x003F  
 697 #define WM9090_AGC_MINGAIN_SHIFT                     0  
 698 #define WM9090_AGC_MINGAIN_WIDTH                     6  
 699 
 700 #endif