Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mfd: Remove custom wm8350 cache implementation

Since none of the users now reference the cache directly we can happily
remove the custom cache code and rely on the regmap cache.

For simplicity we don't bother with the register defaults tables but
instead read the defaults from the device - regmap is capable of doing
this, unlike our old cache infrastructure. This saves a lot of code and
allows us to cache the device revision information too.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>

authored by

Mark Brown and committed by
Samuel Ortiz
19d57ed5 7fdb5d32

+18 -3492
+11 -314
drivers/mfd/wm8350-core.c
··· 60 60 /* 61 61 * WM8350 Device IO 62 62 */ 63 - static DEFINE_MUTEX(io_mutex); 64 63 static DEFINE_MUTEX(reg_lock_mutex); 65 - 66 - /* Perform a physical read from the device. 67 - */ 68 - static int wm8350_phys_read(struct wm8350 *wm8350, u8 reg, int num_regs, 69 - u16 *dest) 70 - { 71 - int i, ret; 72 - int bytes = num_regs * 2; 73 - 74 - dev_dbg(wm8350->dev, "volatile read\n"); 75 - ret = regmap_raw_read(wm8350->regmap, reg, dest, bytes); 76 - 77 - for (i = reg; i < reg + num_regs; i++) { 78 - /* Cache is CPU endian */ 79 - dest[i - reg] = be16_to_cpu(dest[i - reg]); 80 - 81 - /* Mask out non-readable bits */ 82 - dest[i - reg] &= wm8350_reg_io_map[i].readable; 83 - } 84 - 85 - dump(num_regs, dest); 86 - 87 - return ret; 88 - } 89 - 90 - static int wm8350_read(struct wm8350 *wm8350, u8 reg, int num_regs, u16 *dest) 91 - { 92 - int i; 93 - int end = reg + num_regs; 94 - int ret = 0; 95 - int bytes = num_regs * 2; 96 - 97 - if ((reg + num_regs - 1) > WM8350_MAX_REGISTER) { 98 - dev_err(wm8350->dev, "invalid reg %x\n", 99 - reg + num_regs - 1); 100 - return -EINVAL; 101 - } 102 - 103 - dev_dbg(wm8350->dev, 104 - "%s R%d(0x%2.2x) %d regs\n", __func__, reg, reg, num_regs); 105 - 106 - #if WM8350_BUS_DEBUG 107 - /* we can _safely_ read any register, but warn if read not supported */ 108 - for (i = reg; i < end; i++) { 109 - if (!wm8350_reg_io_map[i].readable) 110 - dev_warn(wm8350->dev, 111 - "reg R%d is not readable\n", i); 112 - } 113 - #endif 114 - 115 - /* if any volatile registers are required, then read back all */ 116 - for (i = reg; i < end; i++) 117 - if (wm8350_reg_io_map[i].vol) 118 - return wm8350_phys_read(wm8350, reg, num_regs, dest); 119 - 120 - /* no volatiles, then cache is good */ 121 - dev_dbg(wm8350->dev, "cache read\n"); 122 - memcpy(dest, &wm8350->reg_cache[reg], bytes); 123 - dump(num_regs, dest); 124 - return ret; 125 - } 126 - 127 - static inline int is_reg_locked(struct wm8350 *wm8350, u8 reg) 128 - { 129 - if (reg == WM8350_SECURITY || 130 - wm8350->reg_cache[WM8350_SECURITY] == WM8350_UNLOCK_KEY) 131 - return 0; 132 - 133 - if ((reg >= WM8350_GPIO_FUNCTION_SELECT_1 && 134 - reg <= WM8350_GPIO_FUNCTION_SELECT_4) || 135 - (reg >= WM8350_BATTERY_CHARGER_CONTROL_1 && 136 - reg <= WM8350_BATTERY_CHARGER_CONTROL_3)) 137 - return 1; 138 - return 0; 139 - } 140 - 141 - static int wm8350_write(struct wm8350 *wm8350, u8 reg, int num_regs, u16 *src) 142 - { 143 - int i; 144 - int end = reg + num_regs; 145 - int bytes = num_regs * 2; 146 - 147 - if ((reg + num_regs - 1) > WM8350_MAX_REGISTER) { 148 - dev_err(wm8350->dev, "invalid reg %x\n", 149 - reg + num_regs - 1); 150 - return -EINVAL; 151 - } 152 - 153 - /* it's generally not a good idea to write to RO or locked registers */ 154 - for (i = reg; i < end; i++) { 155 - if (!wm8350_reg_io_map[i].writable) { 156 - dev_err(wm8350->dev, 157 - "attempted write to read only reg R%d\n", i); 158 - return -EINVAL; 159 - } 160 - 161 - if (is_reg_locked(wm8350, i)) { 162 - dev_err(wm8350->dev, 163 - "attempted write to locked reg R%d\n", i); 164 - return -EINVAL; 165 - } 166 - 167 - src[i - reg] &= wm8350_reg_io_map[i].writable; 168 - 169 - wm8350->reg_cache[i] = 170 - (wm8350->reg_cache[i] & ~wm8350_reg_io_map[i].writable) 171 - | src[i - reg]; 172 - 173 - src[i - reg] = cpu_to_be16(src[i - reg]); 174 - } 175 - 176 - /* Actually write it out */ 177 - return regmap_raw_write(wm8350->regmap, reg, src, bytes); 178 - } 179 64 180 65 /* 181 66 * Safe read, modify, write methods 182 67 */ 183 68 int wm8350_clear_bits(struct wm8350 *wm8350, u16 reg, u16 mask) 184 69 { 185 - u16 data; 186 - int err; 187 - 188 - mutex_lock(&io_mutex); 189 - err = wm8350_read(wm8350, reg, 1, &data); 190 - if (err) { 191 - dev_err(wm8350->dev, "read from reg R%d failed\n", reg); 192 - goto out; 193 - } 194 - 195 - data &= ~mask; 196 - err = wm8350_write(wm8350, reg, 1, &data); 197 - if (err) 198 - dev_err(wm8350->dev, "write to reg R%d failed\n", reg); 199 - out: 200 - mutex_unlock(&io_mutex); 201 - return err; 70 + return regmap_update_bits(wm8350->regmap, reg, mask, 0); 202 71 } 203 72 EXPORT_SYMBOL_GPL(wm8350_clear_bits); 204 73 205 74 int wm8350_set_bits(struct wm8350 *wm8350, u16 reg, u16 mask) 206 75 { 207 - u16 data; 208 - int err; 209 - 210 - mutex_lock(&io_mutex); 211 - err = wm8350_read(wm8350, reg, 1, &data); 212 - if (err) { 213 - dev_err(wm8350->dev, "read from reg R%d failed\n", reg); 214 - goto out; 215 - } 216 - 217 - data |= mask; 218 - err = wm8350_write(wm8350, reg, 1, &data); 219 - if (err) 220 - dev_err(wm8350->dev, "write to reg R%d failed\n", reg); 221 - out: 222 - mutex_unlock(&io_mutex); 223 - return err; 76 + return regmap_update_bits(wm8350->regmap, reg, mask, mask); 224 77 } 225 78 EXPORT_SYMBOL_GPL(wm8350_set_bits); 226 79 227 80 u16 wm8350_reg_read(struct wm8350 *wm8350, int reg) 228 81 { 229 - u16 data; 82 + unsigned int data; 230 83 int err; 231 84 232 - mutex_lock(&io_mutex); 233 - err = wm8350_read(wm8350, reg, 1, &data); 85 + err = regmap_read(wm8350->regmap, reg, &data); 234 86 if (err) 235 87 dev_err(wm8350->dev, "read from reg R%d failed\n", reg); 236 88 237 - mutex_unlock(&io_mutex); 238 89 return data; 239 90 } 240 91 EXPORT_SYMBOL_GPL(wm8350_reg_read); ··· 93 242 int wm8350_reg_write(struct wm8350 *wm8350, int reg, u16 val) 94 243 { 95 244 int ret; 96 - u16 data = val; 97 245 98 - mutex_lock(&io_mutex); 99 - ret = wm8350_write(wm8350, reg, 1, &data); 246 + ret = regmap_write(wm8350->regmap, reg, val); 247 + 100 248 if (ret) 101 249 dev_err(wm8350->dev, "write to reg R%d failed\n", reg); 102 - mutex_unlock(&io_mutex); 103 250 return ret; 104 251 } 105 252 EXPORT_SYMBOL_GPL(wm8350_reg_write); ··· 107 258 { 108 259 int err = 0; 109 260 110 - mutex_lock(&io_mutex); 111 - err = wm8350_read(wm8350, start_reg, regs, dest); 261 + err = regmap_bulk_read(wm8350->regmap, start_reg, dest, regs); 112 262 if (err) 113 263 dev_err(wm8350->dev, "block read starting from R%d failed\n", 114 264 start_reg); 115 - mutex_unlock(&io_mutex); 265 + 116 266 return err; 117 267 } 118 268 EXPORT_SYMBOL_GPL(wm8350_block_read); ··· 121 273 { 122 274 int ret = 0; 123 275 124 - mutex_lock(&io_mutex); 125 - ret = wm8350_write(wm8350, start_reg, regs, src); 276 + ret = regmap_bulk_write(wm8350->regmap, start_reg, src, regs); 126 277 if (ret) 127 278 dev_err(wm8350->dev, "block write starting at R%d failed\n", 128 279 start_reg); 129 - mutex_unlock(&io_mutex); 280 + 130 281 return ret; 131 282 } 132 283 EXPORT_SYMBOL_GPL(wm8350_block_write); ··· 246 399 complete(&wm8350->auxadc_done); 247 400 248 401 return IRQ_HANDLED; 249 - } 250 - 251 - /* 252 - * Cache is always host endian. 253 - */ 254 - static int wm8350_create_cache(struct wm8350 *wm8350, int type, int mode) 255 - { 256 - int i, ret = 0; 257 - u16 value; 258 - const u16 *reg_map; 259 - 260 - switch (type) { 261 - case 0: 262 - switch (mode) { 263 - #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_0 264 - case 0: 265 - reg_map = wm8350_mode0_defaults; 266 - break; 267 - #endif 268 - #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_1 269 - case 1: 270 - reg_map = wm8350_mode1_defaults; 271 - break; 272 - #endif 273 - #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_2 274 - case 2: 275 - reg_map = wm8350_mode2_defaults; 276 - break; 277 - #endif 278 - #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_3 279 - case 3: 280 - reg_map = wm8350_mode3_defaults; 281 - break; 282 - #endif 283 - default: 284 - dev_err(wm8350->dev, 285 - "WM8350 configuration mode %d not supported\n", 286 - mode); 287 - return -EINVAL; 288 - } 289 - break; 290 - 291 - case 1: 292 - switch (mode) { 293 - #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_0 294 - case 0: 295 - reg_map = wm8351_mode0_defaults; 296 - break; 297 - #endif 298 - #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_1 299 - case 1: 300 - reg_map = wm8351_mode1_defaults; 301 - break; 302 - #endif 303 - #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_2 304 - case 2: 305 - reg_map = wm8351_mode2_defaults; 306 - break; 307 - #endif 308 - #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_3 309 - case 3: 310 - reg_map = wm8351_mode3_defaults; 311 - break; 312 - #endif 313 - default: 314 - dev_err(wm8350->dev, 315 - "WM8351 configuration mode %d not supported\n", 316 - mode); 317 - return -EINVAL; 318 - } 319 - break; 320 - 321 - case 2: 322 - switch (mode) { 323 - #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_0 324 - case 0: 325 - reg_map = wm8352_mode0_defaults; 326 - break; 327 - #endif 328 - #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_1 329 - case 1: 330 - reg_map = wm8352_mode1_defaults; 331 - break; 332 - #endif 333 - #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_2 334 - case 2: 335 - reg_map = wm8352_mode2_defaults; 336 - break; 337 - #endif 338 - #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_3 339 - case 3: 340 - reg_map = wm8352_mode3_defaults; 341 - break; 342 - #endif 343 - default: 344 - dev_err(wm8350->dev, 345 - "WM8352 configuration mode %d not supported\n", 346 - mode); 347 - return -EINVAL; 348 - } 349 - break; 350 - 351 - default: 352 - dev_err(wm8350->dev, 353 - "WM835x configuration mode %d not supported\n", 354 - mode); 355 - return -EINVAL; 356 - } 357 - 358 - wm8350->reg_cache = 359 - kmalloc(sizeof(u16) * (WM8350_MAX_REGISTER + 1), GFP_KERNEL); 360 - if (wm8350->reg_cache == NULL) 361 - return -ENOMEM; 362 - 363 - /* Read the initial cache state back from the device - this is 364 - * a PMIC so the device many not be in a virgin state and we 365 - * can't rely on the silicon values. 366 - */ 367 - ret = regmap_raw_read(wm8350->regmap, 0, wm8350->reg_cache, 368 - sizeof(u16) * (WM8350_MAX_REGISTER + 1)); 369 - if (ret < 0) { 370 - dev_err(wm8350->dev, 371 - "failed to read initial cache values\n"); 372 - goto out; 373 - } 374 - 375 - /* Mask out uncacheable/unreadable bits and the audio. */ 376 - for (i = 0; i < WM8350_MAX_REGISTER; i++) { 377 - if (wm8350_reg_io_map[i].readable && 378 - (i < WM8350_CLOCK_CONTROL_1 || i > WM8350_AIF_TEST)) { 379 - value = be16_to_cpu(wm8350->reg_cache[i]); 380 - value &= wm8350_reg_io_map[i].readable; 381 - wm8350->reg_cache[i] = value; 382 - } else 383 - wm8350->reg_cache[i] = reg_map[i]; 384 - } 385 - 386 - out: 387 - kfree(wm8350->reg_cache); 388 - return ret; 389 402 } 390 403 391 404 /* ··· 395 688 goto err; 396 689 } 397 690 398 - ret = wm8350_create_cache(wm8350, mask_rev, mode); 399 - if (ret < 0) { 400 - dev_err(wm8350->dev, "Failed to create register cache\n"); 401 - return ret; 402 - } 403 - 404 691 mutex_init(&wm8350->auxadc_mutex); 405 692 init_completion(&wm8350->auxadc_done); 406 693 407 694 ret = wm8350_irq_init(wm8350, irq, pdata); 408 695 if (ret < 0) 409 - goto err_free; 696 + goto err; 410 697 411 698 if (wm8350->irq_base) { 412 699 ret = request_threaded_irq(wm8350->irq_base + ··· 438 737 439 738 err_irq: 440 739 wm8350_irq_exit(wm8350); 441 - err_free: 442 - kfree(wm8350->reg_cache); 443 740 err: 444 741 return ret; 445 742 } ··· 464 765 free_irq(wm8350->irq_base + WM8350_IRQ_AUXADC_DATARDY, wm8350); 465 766 466 767 wm8350_irq_exit(wm8350); 467 - 468 - kfree(wm8350->reg_cache); 469 768 } 470 769 EXPORT_SYMBOL_GPL(wm8350_device_exit); 471 770
+7 -3159
drivers/mfd/wm8350-regmap.c
··· 14 14 15 15 #include <linux/mfd/wm8350/core.h> 16 16 17 - #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_0 18 - 19 - #undef WM8350_HAVE_CONFIG_MODE 20 - #define WM8350_HAVE_CONFIG_MODE 21 - 22 - const u16 wm8350_mode0_defaults[] = { 23 - 0x17FF, /* R0 - Reset/ID */ 24 - 0x1000, /* R1 - ID */ 25 - 0x0000, /* R2 */ 26 - 0x1002, /* R3 - System Control 1 */ 27 - 0x0004, /* R4 - System Control 2 */ 28 - 0x0000, /* R5 - System Hibernate */ 29 - 0x8A00, /* R6 - Interface Control */ 30 - 0x0000, /* R7 */ 31 - 0x8000, /* R8 - Power mgmt (1) */ 32 - 0x0000, /* R9 - Power mgmt (2) */ 33 - 0x0000, /* R10 - Power mgmt (3) */ 34 - 0x2000, /* R11 - Power mgmt (4) */ 35 - 0x0E00, /* R12 - Power mgmt (5) */ 36 - 0x0000, /* R13 - Power mgmt (6) */ 37 - 0x0000, /* R14 - Power mgmt (7) */ 38 - 0x0000, /* R15 */ 39 - 0x0000, /* R16 - RTC Seconds/Minutes */ 40 - 0x0100, /* R17 - RTC Hours/Day */ 41 - 0x0101, /* R18 - RTC Date/Month */ 42 - 0x1400, /* R19 - RTC Year */ 43 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 44 - 0x0000, /* R21 - Alarm Hours/Day */ 45 - 0x0000, /* R22 - Alarm Date/Month */ 46 - 0x0320, /* R23 - RTC Time Control */ 47 - 0x0000, /* R24 - System Interrupts */ 48 - 0x0000, /* R25 - Interrupt Status 1 */ 49 - 0x0000, /* R26 - Interrupt Status 2 */ 50 - 0x0000, /* R27 - Power Up Interrupt Status */ 51 - 0x0000, /* R28 - Under Voltage Interrupt status */ 52 - 0x0000, /* R29 - Over Current Interrupt status */ 53 - 0x0000, /* R30 - GPIO Interrupt Status */ 54 - 0x0000, /* R31 - Comparator Interrupt Status */ 55 - 0x3FFF, /* R32 - System Interrupts Mask */ 56 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 57 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 58 - 0x0000, /* R35 - Power Up Interrupt Status Mask */ 59 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 60 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 61 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 62 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 63 - 0x0040, /* R40 - Clock Control 1 */ 64 - 0x0000, /* R41 - Clock Control 2 */ 65 - 0x3B00, /* R42 - FLL Control 1 */ 66 - 0x7086, /* R43 - FLL Control 2 */ 67 - 0xC226, /* R44 - FLL Control 3 */ 68 - 0x0000, /* R45 - FLL Control 4 */ 69 - 0x0000, /* R46 */ 70 - 0x0000, /* R47 */ 71 - 0x0000, /* R48 - DAC Control */ 72 - 0x0000, /* R49 */ 73 - 0x00C0, /* R50 - DAC Digital Volume L */ 74 - 0x00C0, /* R51 - DAC Digital Volume R */ 75 - 0x0000, /* R52 */ 76 - 0x0040, /* R53 - DAC LR Rate */ 77 - 0x0000, /* R54 - DAC Clock Control */ 78 - 0x0000, /* R55 */ 79 - 0x0000, /* R56 */ 80 - 0x0000, /* R57 */ 81 - 0x4000, /* R58 - DAC Mute */ 82 - 0x0000, /* R59 - DAC Mute Volume */ 83 - 0x0000, /* R60 - DAC Side */ 84 - 0x0000, /* R61 */ 85 - 0x0000, /* R62 */ 86 - 0x0000, /* R63 */ 87 - 0x8000, /* R64 - ADC Control */ 88 - 0x0000, /* R65 */ 89 - 0x00C0, /* R66 - ADC Digital Volume L */ 90 - 0x00C0, /* R67 - ADC Digital Volume R */ 91 - 0x0000, /* R68 - ADC Divider */ 92 - 0x0000, /* R69 */ 93 - 0x0040, /* R70 - ADC LR Rate */ 94 - 0x0000, /* R71 */ 95 - 0x0303, /* R72 - Input Control */ 96 - 0x0000, /* R73 - IN3 Input Control */ 97 - 0x0000, /* R74 - Mic Bias Control */ 98 - 0x0000, /* R75 */ 99 - 0x0000, /* R76 - Output Control */ 100 - 0x0000, /* R77 - Jack Detect */ 101 - 0x0000, /* R78 - Anti Pop Control */ 102 - 0x0000, /* R79 */ 103 - 0x0040, /* R80 - Left Input Volume */ 104 - 0x0040, /* R81 - Right Input Volume */ 105 - 0x0000, /* R82 */ 106 - 0x0000, /* R83 */ 107 - 0x0000, /* R84 */ 108 - 0x0000, /* R85 */ 109 - 0x0000, /* R86 */ 110 - 0x0000, /* R87 */ 111 - 0x0800, /* R88 - Left Mixer Control */ 112 - 0x1000, /* R89 - Right Mixer Control */ 113 - 0x0000, /* R90 */ 114 - 0x0000, /* R91 */ 115 - 0x0000, /* R92 - OUT3 Mixer Control */ 116 - 0x0000, /* R93 - OUT4 Mixer Control */ 117 - 0x0000, /* R94 */ 118 - 0x0000, /* R95 */ 119 - 0x0000, /* R96 - Output Left Mixer Volume */ 120 - 0x0000, /* R97 - Output Right Mixer Volume */ 121 - 0x0000, /* R98 - Input Mixer Volume L */ 122 - 0x0000, /* R99 - Input Mixer Volume R */ 123 - 0x0000, /* R100 - Input Mixer Volume */ 124 - 0x0000, /* R101 */ 125 - 0x0000, /* R102 */ 126 - 0x0000, /* R103 */ 127 - 0x00E4, /* R104 - LOUT1 Volume */ 128 - 0x00E4, /* R105 - ROUT1 Volume */ 129 - 0x00E4, /* R106 - LOUT2 Volume */ 130 - 0x02E4, /* R107 - ROUT2 Volume */ 131 - 0x0000, /* R108 */ 132 - 0x0000, /* R109 */ 133 - 0x0000, /* R110 */ 134 - 0x0000, /* R111 - BEEP Volume */ 135 - 0x0A00, /* R112 - AI Formating */ 136 - 0x0000, /* R113 - ADC DAC COMP */ 137 - 0x0020, /* R114 - AI ADC Control */ 138 - 0x0020, /* R115 - AI DAC Control */ 139 - 0x0000, /* R116 - AIF Test */ 140 - 0x0000, /* R117 */ 141 - 0x0000, /* R118 */ 142 - 0x0000, /* R119 */ 143 - 0x0000, /* R120 */ 144 - 0x0000, /* R121 */ 145 - 0x0000, /* R122 */ 146 - 0x0000, /* R123 */ 147 - 0x0000, /* R124 */ 148 - 0x0000, /* R125 */ 149 - 0x0000, /* R126 */ 150 - 0x0000, /* R127 */ 151 - 0x1FFF, /* R128 - GPIO Debounce */ 152 - 0x0000, /* R129 - GPIO Pin pull up Control */ 153 - 0x03FC, /* R130 - GPIO Pull down Control */ 154 - 0x0000, /* R131 - GPIO Interrupt Mode */ 155 - 0x0000, /* R132 */ 156 - 0x0000, /* R133 - GPIO Control */ 157 - 0x0FFC, /* R134 - GPIO Configuration (i/o) */ 158 - 0x0FFC, /* R135 - GPIO Pin Polarity / Type */ 159 - 0x0000, /* R136 */ 160 - 0x0000, /* R137 */ 161 - 0x0000, /* R138 */ 162 - 0x0000, /* R139 */ 163 - 0x0013, /* R140 - GPIO Function Select 1 */ 164 - 0x0000, /* R141 - GPIO Function Select 2 */ 165 - 0x0000, /* R142 - GPIO Function Select 3 */ 166 - 0x0003, /* R143 - GPIO Function Select 4 */ 167 - 0x0000, /* R144 - Digitiser Control (1) */ 168 - 0x0002, /* R145 - Digitiser Control (2) */ 169 - 0x0000, /* R146 */ 170 - 0x0000, /* R147 */ 171 - 0x0000, /* R148 */ 172 - 0x0000, /* R149 */ 173 - 0x0000, /* R150 */ 174 - 0x0000, /* R151 */ 175 - 0x7000, /* R152 - AUX1 Readback */ 176 - 0x7000, /* R153 - AUX2 Readback */ 177 - 0x7000, /* R154 - AUX3 Readback */ 178 - 0x7000, /* R155 - AUX4 Readback */ 179 - 0x0000, /* R156 - USB Voltage Readback */ 180 - 0x0000, /* R157 - LINE Voltage Readback */ 181 - 0x0000, /* R158 - BATT Voltage Readback */ 182 - 0x0000, /* R159 - Chip Temp Readback */ 183 - 0x0000, /* R160 */ 184 - 0x0000, /* R161 */ 185 - 0x0000, /* R162 */ 186 - 0x0000, /* R163 - Generic Comparator Control */ 187 - 0x0000, /* R164 - Generic comparator 1 */ 188 - 0x0000, /* R165 - Generic comparator 2 */ 189 - 0x0000, /* R166 - Generic comparator 3 */ 190 - 0x0000, /* R167 - Generic comparator 4 */ 191 - 0xA00F, /* R168 - Battery Charger Control 1 */ 192 - 0x0B06, /* R169 - Battery Charger Control 2 */ 193 - 0x0000, /* R170 - Battery Charger Control 3 */ 194 - 0x0000, /* R171 */ 195 - 0x0000, /* R172 - Current Sink Driver A */ 196 - 0x0000, /* R173 - CSA Flash control */ 197 - 0x0000, /* R174 - Current Sink Driver B */ 198 - 0x0000, /* R175 - CSB Flash control */ 199 - 0x0000, /* R176 - DCDC/LDO requested */ 200 - 0x002D, /* R177 - DCDC Active options */ 201 - 0x0000, /* R178 - DCDC Sleep options */ 202 - 0x0025, /* R179 - Power-check comparator */ 203 - 0x000E, /* R180 - DCDC1 Control */ 204 - 0x0000, /* R181 - DCDC1 Timeouts */ 205 - 0x1006, /* R182 - DCDC1 Low Power */ 206 - 0x0018, /* R183 - DCDC2 Control */ 207 - 0x0000, /* R184 - DCDC2 Timeouts */ 208 - 0x0000, /* R185 */ 209 - 0x0000, /* R186 - DCDC3 Control */ 210 - 0x0000, /* R187 - DCDC3 Timeouts */ 211 - 0x0006, /* R188 - DCDC3 Low Power */ 212 - 0x0000, /* R189 - DCDC4 Control */ 213 - 0x0000, /* R190 - DCDC4 Timeouts */ 214 - 0x0006, /* R191 - DCDC4 Low Power */ 215 - 0x0008, /* R192 - DCDC5 Control */ 216 - 0x0000, /* R193 - DCDC5 Timeouts */ 217 - 0x0000, /* R194 */ 218 - 0x0000, /* R195 - DCDC6 Control */ 219 - 0x0000, /* R196 - DCDC6 Timeouts */ 220 - 0x0006, /* R197 - DCDC6 Low Power */ 221 - 0x0000, /* R198 */ 222 - 0x0003, /* R199 - Limit Switch Control */ 223 - 0x001C, /* R200 - LDO1 Control */ 224 - 0x0000, /* R201 - LDO1 Timeouts */ 225 - 0x001C, /* R202 - LDO1 Low Power */ 226 - 0x001B, /* R203 - LDO2 Control */ 227 - 0x0000, /* R204 - LDO2 Timeouts */ 228 - 0x001C, /* R205 - LDO2 Low Power */ 229 - 0x001B, /* R206 - LDO3 Control */ 230 - 0x0000, /* R207 - LDO3 Timeouts */ 231 - 0x001C, /* R208 - LDO3 Low Power */ 232 - 0x001B, /* R209 - LDO4 Control */ 233 - 0x0000, /* R210 - LDO4 Timeouts */ 234 - 0x001C, /* R211 - LDO4 Low Power */ 235 - 0x0000, /* R212 */ 236 - 0x0000, /* R213 */ 237 - 0x0000, /* R214 */ 238 - 0x0000, /* R215 - VCC_FAULT Masks */ 239 - 0x001F, /* R216 - Main Bandgap Control */ 240 - 0x0000, /* R217 - OSC Control */ 241 - 0x9000, /* R218 - RTC Tick Control */ 242 - 0x0000, /* R219 */ 243 - 0x4000, /* R220 - RAM BIST 1 */ 244 - 0x0000, /* R221 */ 245 - 0x0000, /* R222 */ 246 - 0x0000, /* R223 */ 247 - 0x0000, /* R224 */ 248 - 0x0000, /* R225 - DCDC/LDO status */ 249 - 0x0000, /* R226 */ 250 - 0x0000, /* R227 */ 251 - 0x0000, /* R228 */ 252 - 0x0000, /* R229 */ 253 - 0xE000, /* R230 - GPIO Pin Status */ 254 - 0x0000, /* R231 */ 255 - 0x0000, /* R232 */ 256 - 0x0000, /* R233 */ 257 - 0x0000, /* R234 */ 258 - 0x0000, /* R235 */ 259 - 0x0000, /* R236 */ 260 - 0x0000, /* R237 */ 261 - 0x0000, /* R238 */ 262 - 0x0000, /* R239 */ 263 - 0x0000, /* R240 */ 264 - 0x0000, /* R241 */ 265 - 0x0000, /* R242 */ 266 - 0x0000, /* R243 */ 267 - 0x0000, /* R244 */ 268 - 0x0000, /* R245 */ 269 - 0x0000, /* R246 */ 270 - 0x0000, /* R247 */ 271 - 0x0000, /* R248 */ 272 - 0x0000, /* R249 */ 273 - 0x0000, /* R250 */ 274 - 0x0000, /* R251 */ 275 - 0x0000, /* R252 */ 276 - 0x0000, /* R253 */ 277 - 0x0000, /* R254 */ 278 - 0x0000, /* R255 */ 279 - }; 280 - #endif 281 - 282 - #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_1 283 - 284 - #undef WM8350_HAVE_CONFIG_MODE 285 - #define WM8350_HAVE_CONFIG_MODE 286 - 287 - const u16 wm8350_mode1_defaults[] = { 288 - 0x17FF, /* R0 - Reset/ID */ 289 - 0x1000, /* R1 - ID */ 290 - 0x0000, /* R2 */ 291 - 0x1002, /* R3 - System Control 1 */ 292 - 0x0014, /* R4 - System Control 2 */ 293 - 0x0000, /* R5 - System Hibernate */ 294 - 0x8A00, /* R6 - Interface Control */ 295 - 0x0000, /* R7 */ 296 - 0x8000, /* R8 - Power mgmt (1) */ 297 - 0x0000, /* R9 - Power mgmt (2) */ 298 - 0x0000, /* R10 - Power mgmt (3) */ 299 - 0x2000, /* R11 - Power mgmt (4) */ 300 - 0x0E00, /* R12 - Power mgmt (5) */ 301 - 0x0000, /* R13 - Power mgmt (6) */ 302 - 0x0000, /* R14 - Power mgmt (7) */ 303 - 0x0000, /* R15 */ 304 - 0x0000, /* R16 - RTC Seconds/Minutes */ 305 - 0x0100, /* R17 - RTC Hours/Day */ 306 - 0x0101, /* R18 - RTC Date/Month */ 307 - 0x1400, /* R19 - RTC Year */ 308 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 309 - 0x0000, /* R21 - Alarm Hours/Day */ 310 - 0x0000, /* R22 - Alarm Date/Month */ 311 - 0x0320, /* R23 - RTC Time Control */ 312 - 0x0000, /* R24 - System Interrupts */ 313 - 0x0000, /* R25 - Interrupt Status 1 */ 314 - 0x0000, /* R26 - Interrupt Status 2 */ 315 - 0x0000, /* R27 - Power Up Interrupt Status */ 316 - 0x0000, /* R28 - Under Voltage Interrupt status */ 317 - 0x0000, /* R29 - Over Current Interrupt status */ 318 - 0x0000, /* R30 - GPIO Interrupt Status */ 319 - 0x0000, /* R31 - Comparator Interrupt Status */ 320 - 0x3FFF, /* R32 - System Interrupts Mask */ 321 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 322 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 323 - 0x0000, /* R35 - Power Up Interrupt Status Mask */ 324 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 325 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 326 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 327 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 328 - 0x0040, /* R40 - Clock Control 1 */ 329 - 0x0000, /* R41 - Clock Control 2 */ 330 - 0x3B00, /* R42 - FLL Control 1 */ 331 - 0x7086, /* R43 - FLL Control 2 */ 332 - 0xC226, /* R44 - FLL Control 3 */ 333 - 0x0000, /* R45 - FLL Control 4 */ 334 - 0x0000, /* R46 */ 335 - 0x0000, /* R47 */ 336 - 0x0000, /* R48 - DAC Control */ 337 - 0x0000, /* R49 */ 338 - 0x00C0, /* R50 - DAC Digital Volume L */ 339 - 0x00C0, /* R51 - DAC Digital Volume R */ 340 - 0x0000, /* R52 */ 341 - 0x0040, /* R53 - DAC LR Rate */ 342 - 0x0000, /* R54 - DAC Clock Control */ 343 - 0x0000, /* R55 */ 344 - 0x0000, /* R56 */ 345 - 0x0000, /* R57 */ 346 - 0x4000, /* R58 - DAC Mute */ 347 - 0x0000, /* R59 - DAC Mute Volume */ 348 - 0x0000, /* R60 - DAC Side */ 349 - 0x0000, /* R61 */ 350 - 0x0000, /* R62 */ 351 - 0x0000, /* R63 */ 352 - 0x8000, /* R64 - ADC Control */ 353 - 0x0000, /* R65 */ 354 - 0x00C0, /* R66 - ADC Digital Volume L */ 355 - 0x00C0, /* R67 - ADC Digital Volume R */ 356 - 0x0000, /* R68 - ADC Divider */ 357 - 0x0000, /* R69 */ 358 - 0x0040, /* R70 - ADC LR Rate */ 359 - 0x0000, /* R71 */ 360 - 0x0303, /* R72 - Input Control */ 361 - 0x0000, /* R73 - IN3 Input Control */ 362 - 0x0000, /* R74 - Mic Bias Control */ 363 - 0x0000, /* R75 */ 364 - 0x0000, /* R76 - Output Control */ 365 - 0x0000, /* R77 - Jack Detect */ 366 - 0x0000, /* R78 - Anti Pop Control */ 367 - 0x0000, /* R79 */ 368 - 0x0040, /* R80 - Left Input Volume */ 369 - 0x0040, /* R81 - Right Input Volume */ 370 - 0x0000, /* R82 */ 371 - 0x0000, /* R83 */ 372 - 0x0000, /* R84 */ 373 - 0x0000, /* R85 */ 374 - 0x0000, /* R86 */ 375 - 0x0000, /* R87 */ 376 - 0x0800, /* R88 - Left Mixer Control */ 377 - 0x1000, /* R89 - Right Mixer Control */ 378 - 0x0000, /* R90 */ 379 - 0x0000, /* R91 */ 380 - 0x0000, /* R92 - OUT3 Mixer Control */ 381 - 0x0000, /* R93 - OUT4 Mixer Control */ 382 - 0x0000, /* R94 */ 383 - 0x0000, /* R95 */ 384 - 0x0000, /* R96 - Output Left Mixer Volume */ 385 - 0x0000, /* R97 - Output Right Mixer Volume */ 386 - 0x0000, /* R98 - Input Mixer Volume L */ 387 - 0x0000, /* R99 - Input Mixer Volume R */ 388 - 0x0000, /* R100 - Input Mixer Volume */ 389 - 0x0000, /* R101 */ 390 - 0x0000, /* R102 */ 391 - 0x0000, /* R103 */ 392 - 0x00E4, /* R104 - LOUT1 Volume */ 393 - 0x00E4, /* R105 - ROUT1 Volume */ 394 - 0x00E4, /* R106 - LOUT2 Volume */ 395 - 0x02E4, /* R107 - ROUT2 Volume */ 396 - 0x0000, /* R108 */ 397 - 0x0000, /* R109 */ 398 - 0x0000, /* R110 */ 399 - 0x0000, /* R111 - BEEP Volume */ 400 - 0x0A00, /* R112 - AI Formating */ 401 - 0x0000, /* R113 - ADC DAC COMP */ 402 - 0x0020, /* R114 - AI ADC Control */ 403 - 0x0020, /* R115 - AI DAC Control */ 404 - 0x0000, /* R116 - AIF Test */ 405 - 0x0000, /* R117 */ 406 - 0x0000, /* R118 */ 407 - 0x0000, /* R119 */ 408 - 0x0000, /* R120 */ 409 - 0x0000, /* R121 */ 410 - 0x0000, /* R122 */ 411 - 0x0000, /* R123 */ 412 - 0x0000, /* R124 */ 413 - 0x0000, /* R125 */ 414 - 0x0000, /* R126 */ 415 - 0x0000, /* R127 */ 416 - 0x1FFF, /* R128 - GPIO Debounce */ 417 - 0x0000, /* R129 - GPIO Pin pull up Control */ 418 - 0x03FC, /* R130 - GPIO Pull down Control */ 419 - 0x0000, /* R131 - GPIO Interrupt Mode */ 420 - 0x0000, /* R132 */ 421 - 0x0000, /* R133 - GPIO Control */ 422 - 0x00FB, /* R134 - GPIO Configuration (i/o) */ 423 - 0x04FE, /* R135 - GPIO Pin Polarity / Type */ 424 - 0x0000, /* R136 */ 425 - 0x0000, /* R137 */ 426 - 0x0000, /* R138 */ 427 - 0x0000, /* R139 */ 428 - 0x0312, /* R140 - GPIO Function Select 1 */ 429 - 0x1003, /* R141 - GPIO Function Select 2 */ 430 - 0x1331, /* R142 - GPIO Function Select 3 */ 431 - 0x0003, /* R143 - GPIO Function Select 4 */ 432 - 0x0000, /* R144 - Digitiser Control (1) */ 433 - 0x0002, /* R145 - Digitiser Control (2) */ 434 - 0x0000, /* R146 */ 435 - 0x0000, /* R147 */ 436 - 0x0000, /* R148 */ 437 - 0x0000, /* R149 */ 438 - 0x0000, /* R150 */ 439 - 0x0000, /* R151 */ 440 - 0x7000, /* R152 - AUX1 Readback */ 441 - 0x7000, /* R153 - AUX2 Readback */ 442 - 0x7000, /* R154 - AUX3 Readback */ 443 - 0x7000, /* R155 - AUX4 Readback */ 444 - 0x0000, /* R156 - USB Voltage Readback */ 445 - 0x0000, /* R157 - LINE Voltage Readback */ 446 - 0x0000, /* R158 - BATT Voltage Readback */ 447 - 0x0000, /* R159 - Chip Temp Readback */ 448 - 0x0000, /* R160 */ 449 - 0x0000, /* R161 */ 450 - 0x0000, /* R162 */ 451 - 0x0000, /* R163 - Generic Comparator Control */ 452 - 0x0000, /* R164 - Generic comparator 1 */ 453 - 0x0000, /* R165 - Generic comparator 2 */ 454 - 0x0000, /* R166 - Generic comparator 3 */ 455 - 0x0000, /* R167 - Generic comparator 4 */ 456 - 0xA00F, /* R168 - Battery Charger Control 1 */ 457 - 0x0B06, /* R169 - Battery Charger Control 2 */ 458 - 0x0000, /* R170 - Battery Charger Control 3 */ 459 - 0x0000, /* R171 */ 460 - 0x0000, /* R172 - Current Sink Driver A */ 461 - 0x0000, /* R173 - CSA Flash control */ 462 - 0x0000, /* R174 - Current Sink Driver B */ 463 - 0x0000, /* R175 - CSB Flash control */ 464 - 0x0000, /* R176 - DCDC/LDO requested */ 465 - 0x002D, /* R177 - DCDC Active options */ 466 - 0x0000, /* R178 - DCDC Sleep options */ 467 - 0x0025, /* R179 - Power-check comparator */ 468 - 0x0062, /* R180 - DCDC1 Control */ 469 - 0x0400, /* R181 - DCDC1 Timeouts */ 470 - 0x1006, /* R182 - DCDC1 Low Power */ 471 - 0x0018, /* R183 - DCDC2 Control */ 472 - 0x0000, /* R184 - DCDC2 Timeouts */ 473 - 0x0000, /* R185 */ 474 - 0x0026, /* R186 - DCDC3 Control */ 475 - 0x0400, /* R187 - DCDC3 Timeouts */ 476 - 0x0006, /* R188 - DCDC3 Low Power */ 477 - 0x0062, /* R189 - DCDC4 Control */ 478 - 0x0400, /* R190 - DCDC4 Timeouts */ 479 - 0x0006, /* R191 - DCDC4 Low Power */ 480 - 0x0008, /* R192 - DCDC5 Control */ 481 - 0x0000, /* R193 - DCDC5 Timeouts */ 482 - 0x0000, /* R194 */ 483 - 0x0026, /* R195 - DCDC6 Control */ 484 - 0x0800, /* R196 - DCDC6 Timeouts */ 485 - 0x0006, /* R197 - DCDC6 Low Power */ 486 - 0x0000, /* R198 */ 487 - 0x0003, /* R199 - Limit Switch Control */ 488 - 0x0006, /* R200 - LDO1 Control */ 489 - 0x0400, /* R201 - LDO1 Timeouts */ 490 - 0x001C, /* R202 - LDO1 Low Power */ 491 - 0x0006, /* R203 - LDO2 Control */ 492 - 0x0400, /* R204 - LDO2 Timeouts */ 493 - 0x001C, /* R205 - LDO2 Low Power */ 494 - 0x001B, /* R206 - LDO3 Control */ 495 - 0x0000, /* R207 - LDO3 Timeouts */ 496 - 0x001C, /* R208 - LDO3 Low Power */ 497 - 0x001B, /* R209 - LDO4 Control */ 498 - 0x0000, /* R210 - LDO4 Timeouts */ 499 - 0x001C, /* R211 - LDO4 Low Power */ 500 - 0x0000, /* R212 */ 501 - 0x0000, /* R213 */ 502 - 0x0000, /* R214 */ 503 - 0x0000, /* R215 - VCC_FAULT Masks */ 504 - 0x001F, /* R216 - Main Bandgap Control */ 505 - 0x0000, /* R217 - OSC Control */ 506 - 0x9000, /* R218 - RTC Tick Control */ 507 - 0x0000, /* R219 */ 508 - 0x4000, /* R220 - RAM BIST 1 */ 509 - 0x0000, /* R221 */ 510 - 0x0000, /* R222 */ 511 - 0x0000, /* R223 */ 512 - 0x0000, /* R224 */ 513 - 0x0000, /* R225 - DCDC/LDO status */ 514 - 0x0000, /* R226 */ 515 - 0x0000, /* R227 */ 516 - 0x0000, /* R228 */ 517 - 0x0000, /* R229 */ 518 - 0xE000, /* R230 - GPIO Pin Status */ 519 - 0x0000, /* R231 */ 520 - 0x0000, /* R232 */ 521 - 0x0000, /* R233 */ 522 - 0x0000, /* R234 */ 523 - 0x0000, /* R235 */ 524 - 0x0000, /* R236 */ 525 - 0x0000, /* R237 */ 526 - 0x0000, /* R238 */ 527 - 0x0000, /* R239 */ 528 - 0x0000, /* R240 */ 529 - 0x0000, /* R241 */ 530 - 0x0000, /* R242 */ 531 - 0x0000, /* R243 */ 532 - 0x0000, /* R244 */ 533 - 0x0000, /* R245 */ 534 - 0x0000, /* R246 */ 535 - 0x0000, /* R247 */ 536 - 0x0000, /* R248 */ 537 - 0x0000, /* R249 */ 538 - 0x0000, /* R250 */ 539 - 0x0000, /* R251 */ 540 - 0x0000, /* R252 */ 541 - 0x0000, /* R253 */ 542 - 0x0000, /* R254 */ 543 - 0x0000, /* R255 */ 544 - }; 545 - #endif 546 - 547 - #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_2 548 - 549 - #undef WM8350_HAVE_CONFIG_MODE 550 - #define WM8350_HAVE_CONFIG_MODE 551 - 552 - const u16 wm8350_mode2_defaults[] = { 553 - 0x17FF, /* R0 - Reset/ID */ 554 - 0x1000, /* R1 - ID */ 555 - 0x0000, /* R2 */ 556 - 0x1002, /* R3 - System Control 1 */ 557 - 0x0014, /* R4 - System Control 2 */ 558 - 0x0000, /* R5 - System Hibernate */ 559 - 0x8A00, /* R6 - Interface Control */ 560 - 0x0000, /* R7 */ 561 - 0x8000, /* R8 - Power mgmt (1) */ 562 - 0x0000, /* R9 - Power mgmt (2) */ 563 - 0x0000, /* R10 - Power mgmt (3) */ 564 - 0x2000, /* R11 - Power mgmt (4) */ 565 - 0x0E00, /* R12 - Power mgmt (5) */ 566 - 0x0000, /* R13 - Power mgmt (6) */ 567 - 0x0000, /* R14 - Power mgmt (7) */ 568 - 0x0000, /* R15 */ 569 - 0x0000, /* R16 - RTC Seconds/Minutes */ 570 - 0x0100, /* R17 - RTC Hours/Day */ 571 - 0x0101, /* R18 - RTC Date/Month */ 572 - 0x1400, /* R19 - RTC Year */ 573 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 574 - 0x0000, /* R21 - Alarm Hours/Day */ 575 - 0x0000, /* R22 - Alarm Date/Month */ 576 - 0x0320, /* R23 - RTC Time Control */ 577 - 0x0000, /* R24 - System Interrupts */ 578 - 0x0000, /* R25 - Interrupt Status 1 */ 579 - 0x0000, /* R26 - Interrupt Status 2 */ 580 - 0x0000, /* R27 - Power Up Interrupt Status */ 581 - 0x0000, /* R28 - Under Voltage Interrupt status */ 582 - 0x0000, /* R29 - Over Current Interrupt status */ 583 - 0x0000, /* R30 - GPIO Interrupt Status */ 584 - 0x0000, /* R31 - Comparator Interrupt Status */ 585 - 0x3FFF, /* R32 - System Interrupts Mask */ 586 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 587 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 588 - 0x0000, /* R35 - Power Up Interrupt Status Mask */ 589 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 590 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 591 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 592 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 593 - 0x0040, /* R40 - Clock Control 1 */ 594 - 0x0000, /* R41 - Clock Control 2 */ 595 - 0x3B00, /* R42 - FLL Control 1 */ 596 - 0x7086, /* R43 - FLL Control 2 */ 597 - 0xC226, /* R44 - FLL Control 3 */ 598 - 0x0000, /* R45 - FLL Control 4 */ 599 - 0x0000, /* R46 */ 600 - 0x0000, /* R47 */ 601 - 0x0000, /* R48 - DAC Control */ 602 - 0x0000, /* R49 */ 603 - 0x00C0, /* R50 - DAC Digital Volume L */ 604 - 0x00C0, /* R51 - DAC Digital Volume R */ 605 - 0x0000, /* R52 */ 606 - 0x0040, /* R53 - DAC LR Rate */ 607 - 0x0000, /* R54 - DAC Clock Control */ 608 - 0x0000, /* R55 */ 609 - 0x0000, /* R56 */ 610 - 0x0000, /* R57 */ 611 - 0x4000, /* R58 - DAC Mute */ 612 - 0x0000, /* R59 - DAC Mute Volume */ 613 - 0x0000, /* R60 - DAC Side */ 614 - 0x0000, /* R61 */ 615 - 0x0000, /* R62 */ 616 - 0x0000, /* R63 */ 617 - 0x8000, /* R64 - ADC Control */ 618 - 0x0000, /* R65 */ 619 - 0x00C0, /* R66 - ADC Digital Volume L */ 620 - 0x00C0, /* R67 - ADC Digital Volume R */ 621 - 0x0000, /* R68 - ADC Divider */ 622 - 0x0000, /* R69 */ 623 - 0x0040, /* R70 - ADC LR Rate */ 624 - 0x0000, /* R71 */ 625 - 0x0303, /* R72 - Input Control */ 626 - 0x0000, /* R73 - IN3 Input Control */ 627 - 0x0000, /* R74 - Mic Bias Control */ 628 - 0x0000, /* R75 */ 629 - 0x0000, /* R76 - Output Control */ 630 - 0x0000, /* R77 - Jack Detect */ 631 - 0x0000, /* R78 - Anti Pop Control */ 632 - 0x0000, /* R79 */ 633 - 0x0040, /* R80 - Left Input Volume */ 634 - 0x0040, /* R81 - Right Input Volume */ 635 - 0x0000, /* R82 */ 636 - 0x0000, /* R83 */ 637 - 0x0000, /* R84 */ 638 - 0x0000, /* R85 */ 639 - 0x0000, /* R86 */ 640 - 0x0000, /* R87 */ 641 - 0x0800, /* R88 - Left Mixer Control */ 642 - 0x1000, /* R89 - Right Mixer Control */ 643 - 0x0000, /* R90 */ 644 - 0x0000, /* R91 */ 645 - 0x0000, /* R92 - OUT3 Mixer Control */ 646 - 0x0000, /* R93 - OUT4 Mixer Control */ 647 - 0x0000, /* R94 */ 648 - 0x0000, /* R95 */ 649 - 0x0000, /* R96 - Output Left Mixer Volume */ 650 - 0x0000, /* R97 - Output Right Mixer Volume */ 651 - 0x0000, /* R98 - Input Mixer Volume L */ 652 - 0x0000, /* R99 - Input Mixer Volume R */ 653 - 0x0000, /* R100 - Input Mixer Volume */ 654 - 0x0000, /* R101 */ 655 - 0x0000, /* R102 */ 656 - 0x0000, /* R103 */ 657 - 0x00E4, /* R104 - LOUT1 Volume */ 658 - 0x00E4, /* R105 - ROUT1 Volume */ 659 - 0x00E4, /* R106 - LOUT2 Volume */ 660 - 0x02E4, /* R107 - ROUT2 Volume */ 661 - 0x0000, /* R108 */ 662 - 0x0000, /* R109 */ 663 - 0x0000, /* R110 */ 664 - 0x0000, /* R111 - BEEP Volume */ 665 - 0x0A00, /* R112 - AI Formating */ 666 - 0x0000, /* R113 - ADC DAC COMP */ 667 - 0x0020, /* R114 - AI ADC Control */ 668 - 0x0020, /* R115 - AI DAC Control */ 669 - 0x0000, /* R116 - AIF Test */ 670 - 0x0000, /* R117 */ 671 - 0x0000, /* R118 */ 672 - 0x0000, /* R119 */ 673 - 0x0000, /* R120 */ 674 - 0x0000, /* R121 */ 675 - 0x0000, /* R122 */ 676 - 0x0000, /* R123 */ 677 - 0x0000, /* R124 */ 678 - 0x0000, /* R125 */ 679 - 0x0000, /* R126 */ 680 - 0x0000, /* R127 */ 681 - 0x1FFF, /* R128 - GPIO Debounce */ 682 - 0x0000, /* R129 - GPIO Pin pull up Control */ 683 - 0x03FC, /* R130 - GPIO Pull down Control */ 684 - 0x0000, /* R131 - GPIO Interrupt Mode */ 685 - 0x0000, /* R132 */ 686 - 0x0000, /* R133 - GPIO Control */ 687 - 0x08FB, /* R134 - GPIO Configuration (i/o) */ 688 - 0x0CFE, /* R135 - GPIO Pin Polarity / Type */ 689 - 0x0000, /* R136 */ 690 - 0x0000, /* R137 */ 691 - 0x0000, /* R138 */ 692 - 0x0000, /* R139 */ 693 - 0x0312, /* R140 - GPIO Function Select 1 */ 694 - 0x0003, /* R141 - GPIO Function Select 2 */ 695 - 0x2331, /* R142 - GPIO Function Select 3 */ 696 - 0x0003, /* R143 - GPIO Function Select 4 */ 697 - 0x0000, /* R144 - Digitiser Control (1) */ 698 - 0x0002, /* R145 - Digitiser Control (2) */ 699 - 0x0000, /* R146 */ 700 - 0x0000, /* R147 */ 701 - 0x0000, /* R148 */ 702 - 0x0000, /* R149 */ 703 - 0x0000, /* R150 */ 704 - 0x0000, /* R151 */ 705 - 0x7000, /* R152 - AUX1 Readback */ 706 - 0x7000, /* R153 - AUX2 Readback */ 707 - 0x7000, /* R154 - AUX3 Readback */ 708 - 0x7000, /* R155 - AUX4 Readback */ 709 - 0x0000, /* R156 - USB Voltage Readback */ 710 - 0x0000, /* R157 - LINE Voltage Readback */ 711 - 0x0000, /* R158 - BATT Voltage Readback */ 712 - 0x0000, /* R159 - Chip Temp Readback */ 713 - 0x0000, /* R160 */ 714 - 0x0000, /* R161 */ 715 - 0x0000, /* R162 */ 716 - 0x0000, /* R163 - Generic Comparator Control */ 717 - 0x0000, /* R164 - Generic comparator 1 */ 718 - 0x0000, /* R165 - Generic comparator 2 */ 719 - 0x0000, /* R166 - Generic comparator 3 */ 720 - 0x0000, /* R167 - Generic comparator 4 */ 721 - 0xA00F, /* R168 - Battery Charger Control 1 */ 722 - 0x0B06, /* R169 - Battery Charger Control 2 */ 723 - 0x0000, /* R170 - Battery Charger Control 3 */ 724 - 0x0000, /* R171 */ 725 - 0x0000, /* R172 - Current Sink Driver A */ 726 - 0x0000, /* R173 - CSA Flash control */ 727 - 0x0000, /* R174 - Current Sink Driver B */ 728 - 0x0000, /* R175 - CSB Flash control */ 729 - 0x0000, /* R176 - DCDC/LDO requested */ 730 - 0x002D, /* R177 - DCDC Active options */ 731 - 0x0000, /* R178 - DCDC Sleep options */ 732 - 0x0025, /* R179 - Power-check comparator */ 733 - 0x000E, /* R180 - DCDC1 Control */ 734 - 0x0400, /* R181 - DCDC1 Timeouts */ 735 - 0x1006, /* R182 - DCDC1 Low Power */ 736 - 0x0018, /* R183 - DCDC2 Control */ 737 - 0x0000, /* R184 - DCDC2 Timeouts */ 738 - 0x0000, /* R185 */ 739 - 0x002E, /* R186 - DCDC3 Control */ 740 - 0x0800, /* R187 - DCDC3 Timeouts */ 741 - 0x0006, /* R188 - DCDC3 Low Power */ 742 - 0x000E, /* R189 - DCDC4 Control */ 743 - 0x0800, /* R190 - DCDC4 Timeouts */ 744 - 0x0006, /* R191 - DCDC4 Low Power */ 745 - 0x0008, /* R192 - DCDC5 Control */ 746 - 0x0000, /* R193 - DCDC5 Timeouts */ 747 - 0x0000, /* R194 */ 748 - 0x0026, /* R195 - DCDC6 Control */ 749 - 0x0C00, /* R196 - DCDC6 Timeouts */ 750 - 0x0006, /* R197 - DCDC6 Low Power */ 751 - 0x0000, /* R198 */ 752 - 0x0003, /* R199 - Limit Switch Control */ 753 - 0x001A, /* R200 - LDO1 Control */ 754 - 0x0800, /* R201 - LDO1 Timeouts */ 755 - 0x001C, /* R202 - LDO1 Low Power */ 756 - 0x0010, /* R203 - LDO2 Control */ 757 - 0x0800, /* R204 - LDO2 Timeouts */ 758 - 0x001C, /* R205 - LDO2 Low Power */ 759 - 0x000A, /* R206 - LDO3 Control */ 760 - 0x0C00, /* R207 - LDO3 Timeouts */ 761 - 0x001C, /* R208 - LDO3 Low Power */ 762 - 0x001A, /* R209 - LDO4 Control */ 763 - 0x0800, /* R210 - LDO4 Timeouts */ 764 - 0x001C, /* R211 - LDO4 Low Power */ 765 - 0x0000, /* R212 */ 766 - 0x0000, /* R213 */ 767 - 0x0000, /* R214 */ 768 - 0x0000, /* R215 - VCC_FAULT Masks */ 769 - 0x001F, /* R216 - Main Bandgap Control */ 770 - 0x0000, /* R217 - OSC Control */ 771 - 0x9000, /* R218 - RTC Tick Control */ 772 - 0x0000, /* R219 */ 773 - 0x4000, /* R220 - RAM BIST 1 */ 774 - 0x0000, /* R221 */ 775 - 0x0000, /* R222 */ 776 - 0x0000, /* R223 */ 777 - 0x0000, /* R224 */ 778 - 0x0000, /* R225 - DCDC/LDO status */ 779 - 0x0000, /* R226 */ 780 - 0x0000, /* R227 */ 781 - 0x0000, /* R228 */ 782 - 0x0000, /* R229 */ 783 - 0xE000, /* R230 - GPIO Pin Status */ 784 - 0x0000, /* R231 */ 785 - 0x0000, /* R232 */ 786 - 0x0000, /* R233 */ 787 - 0x0000, /* R234 */ 788 - 0x0000, /* R235 */ 789 - 0x0000, /* R236 */ 790 - 0x0000, /* R237 */ 791 - 0x0000, /* R238 */ 792 - 0x0000, /* R239 */ 793 - 0x0000, /* R240 */ 794 - 0x0000, /* R241 */ 795 - 0x0000, /* R242 */ 796 - 0x0000, /* R243 */ 797 - 0x0000, /* R244 */ 798 - 0x0000, /* R245 */ 799 - 0x0000, /* R246 */ 800 - 0x0000, /* R247 */ 801 - 0x0000, /* R248 */ 802 - 0x0000, /* R249 */ 803 - 0x0000, /* R250 */ 804 - 0x0000, /* R251 */ 805 - 0x0000, /* R252 */ 806 - 0x0000, /* R253 */ 807 - 0x0000, /* R254 */ 808 - 0x0000, /* R255 */ 809 - }; 810 - #endif 811 - 812 - #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_3 813 - 814 - #undef WM8350_HAVE_CONFIG_MODE 815 - #define WM8350_HAVE_CONFIG_MODE 816 - 817 - const u16 wm8350_mode3_defaults[] = { 818 - 0x17FF, /* R0 - Reset/ID */ 819 - 0x1000, /* R1 - ID */ 820 - 0x0000, /* R2 */ 821 - 0x1000, /* R3 - System Control 1 */ 822 - 0x0004, /* R4 - System Control 2 */ 823 - 0x0000, /* R5 - System Hibernate */ 824 - 0x8A00, /* R6 - Interface Control */ 825 - 0x0000, /* R7 */ 826 - 0x8000, /* R8 - Power mgmt (1) */ 827 - 0x0000, /* R9 - Power mgmt (2) */ 828 - 0x0000, /* R10 - Power mgmt (3) */ 829 - 0x2000, /* R11 - Power mgmt (4) */ 830 - 0x0E00, /* R12 - Power mgmt (5) */ 831 - 0x0000, /* R13 - Power mgmt (6) */ 832 - 0x0000, /* R14 - Power mgmt (7) */ 833 - 0x0000, /* R15 */ 834 - 0x0000, /* R16 - RTC Seconds/Minutes */ 835 - 0x0100, /* R17 - RTC Hours/Day */ 836 - 0x0101, /* R18 - RTC Date/Month */ 837 - 0x1400, /* R19 - RTC Year */ 838 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 839 - 0x0000, /* R21 - Alarm Hours/Day */ 840 - 0x0000, /* R22 - Alarm Date/Month */ 841 - 0x0320, /* R23 - RTC Time Control */ 842 - 0x0000, /* R24 - System Interrupts */ 843 - 0x0000, /* R25 - Interrupt Status 1 */ 844 - 0x0000, /* R26 - Interrupt Status 2 */ 845 - 0x0000, /* R27 - Power Up Interrupt Status */ 846 - 0x0000, /* R28 - Under Voltage Interrupt status */ 847 - 0x0000, /* R29 - Over Current Interrupt status */ 848 - 0x0000, /* R30 - GPIO Interrupt Status */ 849 - 0x0000, /* R31 - Comparator Interrupt Status */ 850 - 0x3FFF, /* R32 - System Interrupts Mask */ 851 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 852 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 853 - 0x0000, /* R35 - Power Up Interrupt Status Mask */ 854 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 855 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 856 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 857 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 858 - 0x0040, /* R40 - Clock Control 1 */ 859 - 0x0000, /* R41 - Clock Control 2 */ 860 - 0x3B00, /* R42 - FLL Control 1 */ 861 - 0x7086, /* R43 - FLL Control 2 */ 862 - 0xC226, /* R44 - FLL Control 3 */ 863 - 0x0000, /* R45 - FLL Control 4 */ 864 - 0x0000, /* R46 */ 865 - 0x0000, /* R47 */ 866 - 0x0000, /* R48 - DAC Control */ 867 - 0x0000, /* R49 */ 868 - 0x00C0, /* R50 - DAC Digital Volume L */ 869 - 0x00C0, /* R51 - DAC Digital Volume R */ 870 - 0x0000, /* R52 */ 871 - 0x0040, /* R53 - DAC LR Rate */ 872 - 0x0000, /* R54 - DAC Clock Control */ 873 - 0x0000, /* R55 */ 874 - 0x0000, /* R56 */ 875 - 0x0000, /* R57 */ 876 - 0x4000, /* R58 - DAC Mute */ 877 - 0x0000, /* R59 - DAC Mute Volume */ 878 - 0x0000, /* R60 - DAC Side */ 879 - 0x0000, /* R61 */ 880 - 0x0000, /* R62 */ 881 - 0x0000, /* R63 */ 882 - 0x8000, /* R64 - ADC Control */ 883 - 0x0000, /* R65 */ 884 - 0x00C0, /* R66 - ADC Digital Volume L */ 885 - 0x00C0, /* R67 - ADC Digital Volume R */ 886 - 0x0000, /* R68 - ADC Divider */ 887 - 0x0000, /* R69 */ 888 - 0x0040, /* R70 - ADC LR Rate */ 889 - 0x0000, /* R71 */ 890 - 0x0303, /* R72 - Input Control */ 891 - 0x0000, /* R73 - IN3 Input Control */ 892 - 0x0000, /* R74 - Mic Bias Control */ 893 - 0x0000, /* R75 */ 894 - 0x0000, /* R76 - Output Control */ 895 - 0x0000, /* R77 - Jack Detect */ 896 - 0x0000, /* R78 - Anti Pop Control */ 897 - 0x0000, /* R79 */ 898 - 0x0040, /* R80 - Left Input Volume */ 899 - 0x0040, /* R81 - Right Input Volume */ 900 - 0x0000, /* R82 */ 901 - 0x0000, /* R83 */ 902 - 0x0000, /* R84 */ 903 - 0x0000, /* R85 */ 904 - 0x0000, /* R86 */ 905 - 0x0000, /* R87 */ 906 - 0x0800, /* R88 - Left Mixer Control */ 907 - 0x1000, /* R89 - Right Mixer Control */ 908 - 0x0000, /* R90 */ 909 - 0x0000, /* R91 */ 910 - 0x0000, /* R92 - OUT3 Mixer Control */ 911 - 0x0000, /* R93 - OUT4 Mixer Control */ 912 - 0x0000, /* R94 */ 913 - 0x0000, /* R95 */ 914 - 0x0000, /* R96 - Output Left Mixer Volume */ 915 - 0x0000, /* R97 - Output Right Mixer Volume */ 916 - 0x0000, /* R98 - Input Mixer Volume L */ 917 - 0x0000, /* R99 - Input Mixer Volume R */ 918 - 0x0000, /* R100 - Input Mixer Volume */ 919 - 0x0000, /* R101 */ 920 - 0x0000, /* R102 */ 921 - 0x0000, /* R103 */ 922 - 0x00E4, /* R104 - LOUT1 Volume */ 923 - 0x00E4, /* R105 - ROUT1 Volume */ 924 - 0x00E4, /* R106 - LOUT2 Volume */ 925 - 0x02E4, /* R107 - ROUT2 Volume */ 926 - 0x0000, /* R108 */ 927 - 0x0000, /* R109 */ 928 - 0x0000, /* R110 */ 929 - 0x0000, /* R111 - BEEP Volume */ 930 - 0x0A00, /* R112 - AI Formating */ 931 - 0x0000, /* R113 - ADC DAC COMP */ 932 - 0x0020, /* R114 - AI ADC Control */ 933 - 0x0020, /* R115 - AI DAC Control */ 934 - 0x0000, /* R116 - AIF Test */ 935 - 0x0000, /* R117 */ 936 - 0x0000, /* R118 */ 937 - 0x0000, /* R119 */ 938 - 0x0000, /* R120 */ 939 - 0x0000, /* R121 */ 940 - 0x0000, /* R122 */ 941 - 0x0000, /* R123 */ 942 - 0x0000, /* R124 */ 943 - 0x0000, /* R125 */ 944 - 0x0000, /* R126 */ 945 - 0x0000, /* R127 */ 946 - 0x1FFF, /* R128 - GPIO Debounce */ 947 - 0x0000, /* R129 - GPIO Pin pull up Control */ 948 - 0x03FC, /* R130 - GPIO Pull down Control */ 949 - 0x0000, /* R131 - GPIO Interrupt Mode */ 950 - 0x0000, /* R132 */ 951 - 0x0000, /* R133 - GPIO Control */ 952 - 0x0A7B, /* R134 - GPIO Configuration (i/o) */ 953 - 0x06FE, /* R135 - GPIO Pin Polarity / Type */ 954 - 0x0000, /* R136 */ 955 - 0x0000, /* R137 */ 956 - 0x0000, /* R138 */ 957 - 0x0000, /* R139 */ 958 - 0x1312, /* R140 - GPIO Function Select 1 */ 959 - 0x1030, /* R141 - GPIO Function Select 2 */ 960 - 0x2231, /* R142 - GPIO Function Select 3 */ 961 - 0x0003, /* R143 - GPIO Function Select 4 */ 962 - 0x0000, /* R144 - Digitiser Control (1) */ 963 - 0x0002, /* R145 - Digitiser Control (2) */ 964 - 0x0000, /* R146 */ 965 - 0x0000, /* R147 */ 966 - 0x0000, /* R148 */ 967 - 0x0000, /* R149 */ 968 - 0x0000, /* R150 */ 969 - 0x0000, /* R151 */ 970 - 0x7000, /* R152 - AUX1 Readback */ 971 - 0x7000, /* R153 - AUX2 Readback */ 972 - 0x7000, /* R154 - AUX3 Readback */ 973 - 0x7000, /* R155 - AUX4 Readback */ 974 - 0x0000, /* R156 - USB Voltage Readback */ 975 - 0x0000, /* R157 - LINE Voltage Readback */ 976 - 0x0000, /* R158 - BATT Voltage Readback */ 977 - 0x0000, /* R159 - Chip Temp Readback */ 978 - 0x0000, /* R160 */ 979 - 0x0000, /* R161 */ 980 - 0x0000, /* R162 */ 981 - 0x0000, /* R163 - Generic Comparator Control */ 982 - 0x0000, /* R164 - Generic comparator 1 */ 983 - 0x0000, /* R165 - Generic comparator 2 */ 984 - 0x0000, /* R166 - Generic comparator 3 */ 985 - 0x0000, /* R167 - Generic comparator 4 */ 986 - 0xA00F, /* R168 - Battery Charger Control 1 */ 987 - 0x0B06, /* R169 - Battery Charger Control 2 */ 988 - 0x0000, /* R170 - Battery Charger Control 3 */ 989 - 0x0000, /* R171 */ 990 - 0x0000, /* R172 - Current Sink Driver A */ 991 - 0x0000, /* R173 - CSA Flash control */ 992 - 0x0000, /* R174 - Current Sink Driver B */ 993 - 0x0000, /* R175 - CSB Flash control */ 994 - 0x0000, /* R176 - DCDC/LDO requested */ 995 - 0x002D, /* R177 - DCDC Active options */ 996 - 0x0000, /* R178 - DCDC Sleep options */ 997 - 0x0025, /* R179 - Power-check comparator */ 998 - 0x000E, /* R180 - DCDC1 Control */ 999 - 0x0400, /* R181 - DCDC1 Timeouts */ 1000 - 0x1006, /* R182 - DCDC1 Low Power */ 1001 - 0x0018, /* R183 - DCDC2 Control */ 1002 - 0x0000, /* R184 - DCDC2 Timeouts */ 1003 - 0x0000, /* R185 */ 1004 - 0x000E, /* R186 - DCDC3 Control */ 1005 - 0x0400, /* R187 - DCDC3 Timeouts */ 1006 - 0x0006, /* R188 - DCDC3 Low Power */ 1007 - 0x0026, /* R189 - DCDC4 Control */ 1008 - 0x0400, /* R190 - DCDC4 Timeouts */ 1009 - 0x0006, /* R191 - DCDC4 Low Power */ 1010 - 0x0008, /* R192 - DCDC5 Control */ 1011 - 0x0000, /* R193 - DCDC5 Timeouts */ 1012 - 0x0000, /* R194 */ 1013 - 0x0026, /* R195 - DCDC6 Control */ 1014 - 0x0400, /* R196 - DCDC6 Timeouts */ 1015 - 0x0006, /* R197 - DCDC6 Low Power */ 1016 - 0x0000, /* R198 */ 1017 - 0x0003, /* R199 - Limit Switch Control */ 1018 - 0x001C, /* R200 - LDO1 Control */ 1019 - 0x0000, /* R201 - LDO1 Timeouts */ 1020 - 0x001C, /* R202 - LDO1 Low Power */ 1021 - 0x001C, /* R203 - LDO2 Control */ 1022 - 0x0400, /* R204 - LDO2 Timeouts */ 1023 - 0x001C, /* R205 - LDO2 Low Power */ 1024 - 0x001C, /* R206 - LDO3 Control */ 1025 - 0x0400, /* R207 - LDO3 Timeouts */ 1026 - 0x001C, /* R208 - LDO3 Low Power */ 1027 - 0x001F, /* R209 - LDO4 Control */ 1028 - 0x0400, /* R210 - LDO4 Timeouts */ 1029 - 0x001C, /* R211 - LDO4 Low Power */ 1030 - 0x0000, /* R212 */ 1031 - 0x0000, /* R213 */ 1032 - 0x0000, /* R214 */ 1033 - 0x0000, /* R215 - VCC_FAULT Masks */ 1034 - 0x001F, /* R216 - Main Bandgap Control */ 1035 - 0x0000, /* R217 - OSC Control */ 1036 - 0x9000, /* R218 - RTC Tick Control */ 1037 - 0x0000, /* R219 */ 1038 - 0x4000, /* R220 - RAM BIST 1 */ 1039 - 0x0000, /* R221 */ 1040 - 0x0000, /* R222 */ 1041 - 0x0000, /* R223 */ 1042 - 0x0000, /* R224 */ 1043 - 0x0000, /* R225 - DCDC/LDO status */ 1044 - 0x0000, /* R226 */ 1045 - 0x0000, /* R227 */ 1046 - 0x0000, /* R228 */ 1047 - 0x0000, /* R229 */ 1048 - 0xE000, /* R230 - GPIO Pin Status */ 1049 - 0x0000, /* R231 */ 1050 - 0x0000, /* R232 */ 1051 - 0x0000, /* R233 */ 1052 - 0x0000, /* R234 */ 1053 - 0x0000, /* R235 */ 1054 - 0x0000, /* R236 */ 1055 - 0x0000, /* R237 */ 1056 - 0x0000, /* R238 */ 1057 - 0x0000, /* R239 */ 1058 - 0x0000, /* R240 */ 1059 - 0x0000, /* R241 */ 1060 - 0x0000, /* R242 */ 1061 - 0x0000, /* R243 */ 1062 - 0x0000, /* R244 */ 1063 - 0x0000, /* R245 */ 1064 - 0x0000, /* R246 */ 1065 - 0x0000, /* R247 */ 1066 - 0x0000, /* R248 */ 1067 - 0x0000, /* R249 */ 1068 - 0x0000, /* R250 */ 1069 - 0x0000, /* R251 */ 1070 - 0x0000, /* R252 */ 1071 - 0x0000, /* R253 */ 1072 - 0x0000, /* R254 */ 1073 - 0x0000, /* R255 */ 1074 - }; 1075 - #endif 1076 - 1077 - #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_0 1078 - 1079 - #undef WM8350_HAVE_CONFIG_MODE 1080 - #define WM8350_HAVE_CONFIG_MODE 1081 - 1082 - const u16 wm8351_mode0_defaults[] = { 1083 - 0x6143, /* R0 - Reset/ID */ 1084 - 0x0000, /* R1 - ID */ 1085 - 0x0001, /* R2 - Revision */ 1086 - 0x1C02, /* R3 - System Control 1 */ 1087 - 0x0004, /* R4 - System Control 2 */ 1088 - 0x0000, /* R5 - System Hibernate */ 1089 - 0x8A00, /* R6 - Interface Control */ 1090 - 0x0000, /* R7 */ 1091 - 0x8000, /* R8 - Power mgmt (1) */ 1092 - 0x0000, /* R9 - Power mgmt (2) */ 1093 - 0x0000, /* R10 - Power mgmt (3) */ 1094 - 0x2000, /* R11 - Power mgmt (4) */ 1095 - 0x0E00, /* R12 - Power mgmt (5) */ 1096 - 0x0000, /* R13 - Power mgmt (6) */ 1097 - 0x0000, /* R14 - Power mgmt (7) */ 1098 - 0x0000, /* R15 */ 1099 - 0x0000, /* R16 - RTC Seconds/Minutes */ 1100 - 0x0100, /* R17 - RTC Hours/Day */ 1101 - 0x0101, /* R18 - RTC Date/Month */ 1102 - 0x1400, /* R19 - RTC Year */ 1103 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 1104 - 0x0000, /* R21 - Alarm Hours/Day */ 1105 - 0x0000, /* R22 - Alarm Date/Month */ 1106 - 0x0320, /* R23 - RTC Time Control */ 1107 - 0x0000, /* R24 - System Interrupts */ 1108 - 0x0000, /* R25 - Interrupt Status 1 */ 1109 - 0x0000, /* R26 - Interrupt Status 2 */ 1110 - 0x0000, /* R27 */ 1111 - 0x0000, /* R28 - Under Voltage Interrupt status */ 1112 - 0x0000, /* R29 - Over Current Interrupt status */ 1113 - 0x0000, /* R30 - GPIO Interrupt Status */ 1114 - 0x0000, /* R31 - Comparator Interrupt Status */ 1115 - 0x3FFF, /* R32 - System Interrupts Mask */ 1116 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 1117 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 1118 - 0x0000, /* R35 */ 1119 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 1120 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 1121 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 1122 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 1123 - 0x0040, /* R40 - Clock Control 1 */ 1124 - 0x0000, /* R41 - Clock Control 2 */ 1125 - 0x3A00, /* R42 - FLL Control 1 */ 1126 - 0x7086, /* R43 - FLL Control 2 */ 1127 - 0xC226, /* R44 - FLL Control 3 */ 1128 - 0x0000, /* R45 - FLL Control 4 */ 1129 - 0x0000, /* R46 */ 1130 - 0x0000, /* R47 */ 1131 - 0x0000, /* R48 - DAC Control */ 1132 - 0x0000, /* R49 */ 1133 - 0x00C0, /* R50 - DAC Digital Volume L */ 1134 - 0x00C0, /* R51 - DAC Digital Volume R */ 1135 - 0x0000, /* R52 */ 1136 - 0x0040, /* R53 - DAC LR Rate */ 1137 - 0x0000, /* R54 - DAC Clock Control */ 1138 - 0x0000, /* R55 */ 1139 - 0x0000, /* R56 */ 1140 - 0x0000, /* R57 */ 1141 - 0x4000, /* R58 - DAC Mute */ 1142 - 0x0000, /* R59 - DAC Mute Volume */ 1143 - 0x0000, /* R60 - DAC Side */ 1144 - 0x0000, /* R61 */ 1145 - 0x0000, /* R62 */ 1146 - 0x0000, /* R63 */ 1147 - 0x8000, /* R64 - ADC Control */ 1148 - 0x0000, /* R65 */ 1149 - 0x00C0, /* R66 - ADC Digital Volume L */ 1150 - 0x00C0, /* R67 - ADC Digital Volume R */ 1151 - 0x0000, /* R68 - ADC Divider */ 1152 - 0x0000, /* R69 */ 1153 - 0x0040, /* R70 - ADC LR Rate */ 1154 - 0x0000, /* R71 */ 1155 - 0x0303, /* R72 - Input Control */ 1156 - 0x0000, /* R73 - IN3 Input Control */ 1157 - 0x0000, /* R74 - Mic Bias Control */ 1158 - 0x0000, /* R75 */ 1159 - 0x0000, /* R76 - Output Control */ 1160 - 0x0000, /* R77 - Jack Detect */ 1161 - 0x0000, /* R78 - Anti Pop Control */ 1162 - 0x0000, /* R79 */ 1163 - 0x0040, /* R80 - Left Input Volume */ 1164 - 0x0040, /* R81 - Right Input Volume */ 1165 - 0x0000, /* R82 */ 1166 - 0x0000, /* R83 */ 1167 - 0x0000, /* R84 */ 1168 - 0x0000, /* R85 */ 1169 - 0x0000, /* R86 */ 1170 - 0x0000, /* R87 */ 1171 - 0x0800, /* R88 - Left Mixer Control */ 1172 - 0x1000, /* R89 - Right Mixer Control */ 1173 - 0x0000, /* R90 */ 1174 - 0x0000, /* R91 */ 1175 - 0x0000, /* R92 - OUT3 Mixer Control */ 1176 - 0x0000, /* R93 - OUT4 Mixer Control */ 1177 - 0x0000, /* R94 */ 1178 - 0x0000, /* R95 */ 1179 - 0x0000, /* R96 - Output Left Mixer Volume */ 1180 - 0x0000, /* R97 - Output Right Mixer Volume */ 1181 - 0x0000, /* R98 - Input Mixer Volume L */ 1182 - 0x0000, /* R99 - Input Mixer Volume R */ 1183 - 0x0000, /* R100 - Input Mixer Volume */ 1184 - 0x0000, /* R101 */ 1185 - 0x0000, /* R102 */ 1186 - 0x0000, /* R103 */ 1187 - 0x00E4, /* R104 - OUT1L Volume */ 1188 - 0x00E4, /* R105 - OUT1R Volume */ 1189 - 0x00E4, /* R106 - OUT2L Volume */ 1190 - 0x02E4, /* R107 - OUT2R Volume */ 1191 - 0x0000, /* R108 */ 1192 - 0x0000, /* R109 */ 1193 - 0x0000, /* R110 */ 1194 - 0x0000, /* R111 - BEEP Volume */ 1195 - 0x0A00, /* R112 - AI Formating */ 1196 - 0x0000, /* R113 - ADC DAC COMP */ 1197 - 0x0020, /* R114 - AI ADC Control */ 1198 - 0x0020, /* R115 - AI DAC Control */ 1199 - 0x0000, /* R116 */ 1200 - 0x0000, /* R117 */ 1201 - 0x0000, /* R118 */ 1202 - 0x0000, /* R119 */ 1203 - 0x0000, /* R120 */ 1204 - 0x0000, /* R121 */ 1205 - 0x0000, /* R122 */ 1206 - 0x0000, /* R123 */ 1207 - 0x0000, /* R124 */ 1208 - 0x0000, /* R125 */ 1209 - 0x0000, /* R126 */ 1210 - 0x0000, /* R127 */ 1211 - 0x1FFF, /* R128 - GPIO Debounce */ 1212 - 0x0000, /* R129 - GPIO Pin pull up Control */ 1213 - 0x0000, /* R130 - GPIO Pull down Control */ 1214 - 0x0000, /* R131 - GPIO Interrupt Mode */ 1215 - 0x0000, /* R132 */ 1216 - 0x0000, /* R133 - GPIO Control */ 1217 - 0x0FFC, /* R134 - GPIO Configuration (i/o) */ 1218 - 0x0FFC, /* R135 - GPIO Pin Polarity / Type */ 1219 - 0x0000, /* R136 */ 1220 - 0x0000, /* R137 */ 1221 - 0x0000, /* R138 */ 1222 - 0x0000, /* R139 */ 1223 - 0x0013, /* R140 - GPIO Function Select 1 */ 1224 - 0x0000, /* R141 - GPIO Function Select 2 */ 1225 - 0x0000, /* R142 - GPIO Function Select 3 */ 1226 - 0x0003, /* R143 - GPIO Function Select 4 */ 1227 - 0x0000, /* R144 - Digitiser Control (1) */ 1228 - 0x0002, /* R145 - Digitiser Control (2) */ 1229 - 0x0000, /* R146 */ 1230 - 0x0000, /* R147 */ 1231 - 0x0000, /* R148 */ 1232 - 0x0000, /* R149 */ 1233 - 0x0000, /* R150 */ 1234 - 0x0000, /* R151 */ 1235 - 0x7000, /* R152 - AUX1 Readback */ 1236 - 0x7000, /* R153 - AUX2 Readback */ 1237 - 0x7000, /* R154 - AUX3 Readback */ 1238 - 0x7000, /* R155 - AUX4 Readback */ 1239 - 0x0000, /* R156 - USB Voltage Readback */ 1240 - 0x0000, /* R157 - LINE Voltage Readback */ 1241 - 0x0000, /* R158 - BATT Voltage Readback */ 1242 - 0x0000, /* R159 - Chip Temp Readback */ 1243 - 0x0000, /* R160 */ 1244 - 0x0000, /* R161 */ 1245 - 0x0000, /* R162 */ 1246 - 0x0000, /* R163 - Generic Comparator Control */ 1247 - 0x0000, /* R164 - Generic comparator 1 */ 1248 - 0x0000, /* R165 - Generic comparator 2 */ 1249 - 0x0000, /* R166 - Generic comparator 3 */ 1250 - 0x0000, /* R167 - Generic comparator 4 */ 1251 - 0xA00F, /* R168 - Battery Charger Control 1 */ 1252 - 0x0B06, /* R169 - Battery Charger Control 2 */ 1253 - 0x0000, /* R170 - Battery Charger Control 3 */ 1254 - 0x0000, /* R171 */ 1255 - 0x0000, /* R172 - Current Sink Driver A */ 1256 - 0x0000, /* R173 - CSA Flash control */ 1257 - 0x0000, /* R174 */ 1258 - 0x0000, /* R175 */ 1259 - 0x0000, /* R176 - DCDC/LDO requested */ 1260 - 0x032D, /* R177 - DCDC Active options */ 1261 - 0x0000, /* R178 - DCDC Sleep options */ 1262 - 0x0025, /* R179 - Power-check comparator */ 1263 - 0x000E, /* R180 - DCDC1 Control */ 1264 - 0x0000, /* R181 - DCDC1 Timeouts */ 1265 - 0x1006, /* R182 - DCDC1 Low Power */ 1266 - 0x0018, /* R183 - DCDC2 Control */ 1267 - 0x0000, /* R184 - DCDC2 Timeouts */ 1268 - 0x0000, /* R185 */ 1269 - 0x0000, /* R186 - DCDC3 Control */ 1270 - 0x0000, /* R187 - DCDC3 Timeouts */ 1271 - 0x0006, /* R188 - DCDC3 Low Power */ 1272 - 0x0000, /* R189 - DCDC4 Control */ 1273 - 0x0000, /* R190 - DCDC4 Timeouts */ 1274 - 0x0006, /* R191 - DCDC4 Low Power */ 1275 - 0x0008, /* R192 */ 1276 - 0x0000, /* R193 */ 1277 - 0x0000, /* R194 */ 1278 - 0x0000, /* R195 */ 1279 - 0x0000, /* R196 */ 1280 - 0x0006, /* R197 */ 1281 - 0x0000, /* R198 */ 1282 - 0x0003, /* R199 - Limit Switch Control */ 1283 - 0x001C, /* R200 - LDO1 Control */ 1284 - 0x0000, /* R201 - LDO1 Timeouts */ 1285 - 0x001C, /* R202 - LDO1 Low Power */ 1286 - 0x001B, /* R203 - LDO2 Control */ 1287 - 0x0000, /* R204 - LDO2 Timeouts */ 1288 - 0x001C, /* R205 - LDO2 Low Power */ 1289 - 0x001B, /* R206 - LDO3 Control */ 1290 - 0x0000, /* R207 - LDO3 Timeouts */ 1291 - 0x001C, /* R208 - LDO3 Low Power */ 1292 - 0x001B, /* R209 - LDO4 Control */ 1293 - 0x0000, /* R210 - LDO4 Timeouts */ 1294 - 0x001C, /* R211 - LDO4 Low Power */ 1295 - 0x0000, /* R212 */ 1296 - 0x0000, /* R213 */ 1297 - 0x0000, /* R214 */ 1298 - 0x0000, /* R215 - VCC_FAULT Masks */ 1299 - 0x001F, /* R216 - Main Bandgap Control */ 1300 - 0x0000, /* R217 - OSC Control */ 1301 - 0x9000, /* R218 - RTC Tick Control */ 1302 - 0x0000, /* R219 - Security1 */ 1303 - 0x4000, /* R220 */ 1304 - 0x0000, /* R221 */ 1305 - 0x0000, /* R222 */ 1306 - 0x0000, /* R223 */ 1307 - 0x0000, /* R224 - Signal overrides */ 1308 - 0x0000, /* R225 - DCDC/LDO status */ 1309 - 0x0000, /* R226 - Charger Overides/status */ 1310 - 0x0000, /* R227 - misc overrides */ 1311 - 0x0000, /* R228 - Supply overrides/status 1 */ 1312 - 0x0000, /* R229 - Supply overrides/status 2 */ 1313 - 0xE000, /* R230 - GPIO Pin Status */ 1314 - 0x0000, /* R231 - comparotor overrides */ 1315 - 0x0000, /* R232 */ 1316 - 0x0000, /* R233 - State Machine status */ 1317 - 0x1200, /* R234 - FLL Test 1 */ 1318 - 0x0000, /* R235 */ 1319 - 0x8000, /* R236 */ 1320 - 0x0000, /* R237 */ 1321 - 0x0000, /* R238 */ 1322 - 0x0000, /* R239 */ 1323 - 0x0003, /* R240 */ 1324 - 0x0000, /* R241 */ 1325 - 0x0000, /* R242 */ 1326 - 0x0004, /* R243 */ 1327 - 0x0300, /* R244 */ 1328 - 0x0000, /* R245 */ 1329 - 0x0200, /* R246 */ 1330 - 0x0000, /* R247 */ 1331 - 0x1000, /* R248 - DCDC1 Test Controls */ 1332 - 0x1000, /* R249 */ 1333 - 0x1000, /* R250 - DCDC3 Test Controls */ 1334 - 0x1000, /* R251 - DCDC4 Test Controls */ 1335 - }; 1336 - #endif 1337 - 1338 - #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_1 1339 - 1340 - #undef WM8350_HAVE_CONFIG_MODE 1341 - #define WM8350_HAVE_CONFIG_MODE 1342 - 1343 - const u16 wm8351_mode1_defaults[] = { 1344 - 0x6143, /* R0 - Reset/ID */ 1345 - 0x0000, /* R1 - ID */ 1346 - 0x0001, /* R2 - Revision */ 1347 - 0x1C02, /* R3 - System Control 1 */ 1348 - 0x0204, /* R4 - System Control 2 */ 1349 - 0x0000, /* R5 - System Hibernate */ 1350 - 0x8A00, /* R6 - Interface Control */ 1351 - 0x0000, /* R7 */ 1352 - 0x8000, /* R8 - Power mgmt (1) */ 1353 - 0x0000, /* R9 - Power mgmt (2) */ 1354 - 0x0000, /* R10 - Power mgmt (3) */ 1355 - 0x2000, /* R11 - Power mgmt (4) */ 1356 - 0x0E00, /* R12 - Power mgmt (5) */ 1357 - 0x0000, /* R13 - Power mgmt (6) */ 1358 - 0x0000, /* R14 - Power mgmt (7) */ 1359 - 0x0000, /* R15 */ 1360 - 0x0000, /* R16 - RTC Seconds/Minutes */ 1361 - 0x0100, /* R17 - RTC Hours/Day */ 1362 - 0x0101, /* R18 - RTC Date/Month */ 1363 - 0x1400, /* R19 - RTC Year */ 1364 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 1365 - 0x0000, /* R21 - Alarm Hours/Day */ 1366 - 0x0000, /* R22 - Alarm Date/Month */ 1367 - 0x0320, /* R23 - RTC Time Control */ 1368 - 0x0000, /* R24 - System Interrupts */ 1369 - 0x0000, /* R25 - Interrupt Status 1 */ 1370 - 0x0000, /* R26 - Interrupt Status 2 */ 1371 - 0x0000, /* R27 */ 1372 - 0x0000, /* R28 - Under Voltage Interrupt status */ 1373 - 0x0000, /* R29 - Over Current Interrupt status */ 1374 - 0x0000, /* R30 - GPIO Interrupt Status */ 1375 - 0x0000, /* R31 - Comparator Interrupt Status */ 1376 - 0x3FFF, /* R32 - System Interrupts Mask */ 1377 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 1378 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 1379 - 0x0000, /* R35 */ 1380 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 1381 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 1382 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 1383 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 1384 - 0x0040, /* R40 - Clock Control 1 */ 1385 - 0x0000, /* R41 - Clock Control 2 */ 1386 - 0x3A00, /* R42 - FLL Control 1 */ 1387 - 0x7086, /* R43 - FLL Control 2 */ 1388 - 0xC226, /* R44 - FLL Control 3 */ 1389 - 0x0000, /* R45 - FLL Control 4 */ 1390 - 0x0000, /* R46 */ 1391 - 0x0000, /* R47 */ 1392 - 0x0000, /* R48 - DAC Control */ 1393 - 0x0000, /* R49 */ 1394 - 0x00C0, /* R50 - DAC Digital Volume L */ 1395 - 0x00C0, /* R51 - DAC Digital Volume R */ 1396 - 0x0000, /* R52 */ 1397 - 0x0040, /* R53 - DAC LR Rate */ 1398 - 0x0000, /* R54 - DAC Clock Control */ 1399 - 0x0000, /* R55 */ 1400 - 0x0000, /* R56 */ 1401 - 0x0000, /* R57 */ 1402 - 0x4000, /* R58 - DAC Mute */ 1403 - 0x0000, /* R59 - DAC Mute Volume */ 1404 - 0x0000, /* R60 - DAC Side */ 1405 - 0x0000, /* R61 */ 1406 - 0x0000, /* R62 */ 1407 - 0x0000, /* R63 */ 1408 - 0x8000, /* R64 - ADC Control */ 1409 - 0x0000, /* R65 */ 1410 - 0x00C0, /* R66 - ADC Digital Volume L */ 1411 - 0x00C0, /* R67 - ADC Digital Volume R */ 1412 - 0x0000, /* R68 - ADC Divider */ 1413 - 0x0000, /* R69 */ 1414 - 0x0040, /* R70 - ADC LR Rate */ 1415 - 0x0000, /* R71 */ 1416 - 0x0303, /* R72 - Input Control */ 1417 - 0x0000, /* R73 - IN3 Input Control */ 1418 - 0x0000, /* R74 - Mic Bias Control */ 1419 - 0x0000, /* R75 */ 1420 - 0x0000, /* R76 - Output Control */ 1421 - 0x0000, /* R77 - Jack Detect */ 1422 - 0x0000, /* R78 - Anti Pop Control */ 1423 - 0x0000, /* R79 */ 1424 - 0x0040, /* R80 - Left Input Volume */ 1425 - 0x0040, /* R81 - Right Input Volume */ 1426 - 0x0000, /* R82 */ 1427 - 0x0000, /* R83 */ 1428 - 0x0000, /* R84 */ 1429 - 0x0000, /* R85 */ 1430 - 0x0000, /* R86 */ 1431 - 0x0000, /* R87 */ 1432 - 0x0800, /* R88 - Left Mixer Control */ 1433 - 0x1000, /* R89 - Right Mixer Control */ 1434 - 0x0000, /* R90 */ 1435 - 0x0000, /* R91 */ 1436 - 0x0000, /* R92 - OUT3 Mixer Control */ 1437 - 0x0000, /* R93 - OUT4 Mixer Control */ 1438 - 0x0000, /* R94 */ 1439 - 0x0000, /* R95 */ 1440 - 0x0000, /* R96 - Output Left Mixer Volume */ 1441 - 0x0000, /* R97 - Output Right Mixer Volume */ 1442 - 0x0000, /* R98 - Input Mixer Volume L */ 1443 - 0x0000, /* R99 - Input Mixer Volume R */ 1444 - 0x0000, /* R100 - Input Mixer Volume */ 1445 - 0x0000, /* R101 */ 1446 - 0x0000, /* R102 */ 1447 - 0x0000, /* R103 */ 1448 - 0x00E4, /* R104 - OUT1L Volume */ 1449 - 0x00E4, /* R105 - OUT1R Volume */ 1450 - 0x00E4, /* R106 - OUT2L Volume */ 1451 - 0x02E4, /* R107 - OUT2R Volume */ 1452 - 0x0000, /* R108 */ 1453 - 0x0000, /* R109 */ 1454 - 0x0000, /* R110 */ 1455 - 0x0000, /* R111 - BEEP Volume */ 1456 - 0x0A00, /* R112 - AI Formating */ 1457 - 0x0000, /* R113 - ADC DAC COMP */ 1458 - 0x0020, /* R114 - AI ADC Control */ 1459 - 0x0020, /* R115 - AI DAC Control */ 1460 - 0x0000, /* R116 */ 1461 - 0x0000, /* R117 */ 1462 - 0x0000, /* R118 */ 1463 - 0x0000, /* R119 */ 1464 - 0x0000, /* R120 */ 1465 - 0x0000, /* R121 */ 1466 - 0x0000, /* R122 */ 1467 - 0x0000, /* R123 */ 1468 - 0x0000, /* R124 */ 1469 - 0x0000, /* R125 */ 1470 - 0x0000, /* R126 */ 1471 - 0x0000, /* R127 */ 1472 - 0x1FFF, /* R128 - GPIO Debounce */ 1473 - 0x0000, /* R129 - GPIO Pin pull up Control */ 1474 - 0x0000, /* R130 - GPIO Pull down Control */ 1475 - 0x0000, /* R131 - GPIO Interrupt Mode */ 1476 - 0x0000, /* R132 */ 1477 - 0x0000, /* R133 - GPIO Control */ 1478 - 0x0CFB, /* R134 - GPIO Configuration (i/o) */ 1479 - 0x0C1F, /* R135 - GPIO Pin Polarity / Type */ 1480 - 0x0000, /* R136 */ 1481 - 0x0000, /* R137 */ 1482 - 0x0000, /* R138 */ 1483 - 0x0000, /* R139 */ 1484 - 0x0300, /* R140 - GPIO Function Select 1 */ 1485 - 0x1110, /* R141 - GPIO Function Select 2 */ 1486 - 0x0013, /* R142 - GPIO Function Select 3 */ 1487 - 0x0003, /* R143 - GPIO Function Select 4 */ 1488 - 0x0000, /* R144 - Digitiser Control (1) */ 1489 - 0x0002, /* R145 - Digitiser Control (2) */ 1490 - 0x0000, /* R146 */ 1491 - 0x0000, /* R147 */ 1492 - 0x0000, /* R148 */ 1493 - 0x0000, /* R149 */ 1494 - 0x0000, /* R150 */ 1495 - 0x0000, /* R151 */ 1496 - 0x7000, /* R152 - AUX1 Readback */ 1497 - 0x7000, /* R153 - AUX2 Readback */ 1498 - 0x7000, /* R154 - AUX3 Readback */ 1499 - 0x7000, /* R155 - AUX4 Readback */ 1500 - 0x0000, /* R156 - USB Voltage Readback */ 1501 - 0x0000, /* R157 - LINE Voltage Readback */ 1502 - 0x0000, /* R158 - BATT Voltage Readback */ 1503 - 0x0000, /* R159 - Chip Temp Readback */ 1504 - 0x0000, /* R160 */ 1505 - 0x0000, /* R161 */ 1506 - 0x0000, /* R162 */ 1507 - 0x0000, /* R163 - Generic Comparator Control */ 1508 - 0x0000, /* R164 - Generic comparator 1 */ 1509 - 0x0000, /* R165 - Generic comparator 2 */ 1510 - 0x0000, /* R166 - Generic comparator 3 */ 1511 - 0x0000, /* R167 - Generic comparator 4 */ 1512 - 0xA00F, /* R168 - Battery Charger Control 1 */ 1513 - 0x0B06, /* R169 - Battery Charger Control 2 */ 1514 - 0x0000, /* R170 - Battery Charger Control 3 */ 1515 - 0x0000, /* R171 */ 1516 - 0x0000, /* R172 - Current Sink Driver A */ 1517 - 0x0000, /* R173 - CSA Flash control */ 1518 - 0x0000, /* R174 */ 1519 - 0x0000, /* R175 */ 1520 - 0x0000, /* R176 - DCDC/LDO requested */ 1521 - 0x032D, /* R177 - DCDC Active options */ 1522 - 0x0000, /* R178 - DCDC Sleep options */ 1523 - 0x0025, /* R179 - Power-check comparator */ 1524 - 0x000E, /* R180 - DCDC1 Control */ 1525 - 0x0C00, /* R181 - DCDC1 Timeouts */ 1526 - 0x1006, /* R182 - DCDC1 Low Power */ 1527 - 0x0018, /* R183 - DCDC2 Control */ 1528 - 0x0000, /* R184 - DCDC2 Timeouts */ 1529 - 0x0000, /* R185 */ 1530 - 0x0026, /* R186 - DCDC3 Control */ 1531 - 0x0400, /* R187 - DCDC3 Timeouts */ 1532 - 0x0006, /* R188 - DCDC3 Low Power */ 1533 - 0x0062, /* R189 - DCDC4 Control */ 1534 - 0x0800, /* R190 - DCDC4 Timeouts */ 1535 - 0x0006, /* R191 - DCDC4 Low Power */ 1536 - 0x0008, /* R192 */ 1537 - 0x0000, /* R193 */ 1538 - 0x0000, /* R194 */ 1539 - 0x000A, /* R195 */ 1540 - 0x1000, /* R196 */ 1541 - 0x0006, /* R197 */ 1542 - 0x0000, /* R198 */ 1543 - 0x0003, /* R199 - Limit Switch Control */ 1544 - 0x0006, /* R200 - LDO1 Control */ 1545 - 0x0000, /* R201 - LDO1 Timeouts */ 1546 - 0x001C, /* R202 - LDO1 Low Power */ 1547 - 0x0010, /* R203 - LDO2 Control */ 1548 - 0x0C00, /* R204 - LDO2 Timeouts */ 1549 - 0x001C, /* R205 - LDO2 Low Power */ 1550 - 0x001F, /* R206 - LDO3 Control */ 1551 - 0x0800, /* R207 - LDO3 Timeouts */ 1552 - 0x001C, /* R208 - LDO3 Low Power */ 1553 - 0x000A, /* R209 - LDO4 Control */ 1554 - 0x0800, /* R210 - LDO4 Timeouts */ 1555 - 0x001C, /* R211 - LDO4 Low Power */ 1556 - 0x0000, /* R212 */ 1557 - 0x0000, /* R213 */ 1558 - 0x0000, /* R214 */ 1559 - 0x0000, /* R215 - VCC_FAULT Masks */ 1560 - 0x001F, /* R216 - Main Bandgap Control */ 1561 - 0x0000, /* R217 - OSC Control */ 1562 - 0x9000, /* R218 - RTC Tick Control */ 1563 - 0x0000, /* R219 - Security1 */ 1564 - 0x4000, /* R220 */ 1565 - 0x0000, /* R221 */ 1566 - 0x0000, /* R222 */ 1567 - 0x0000, /* R223 */ 1568 - 0x0000, /* R224 - Signal overrides */ 1569 - 0x0000, /* R225 - DCDC/LDO status */ 1570 - 0x0000, /* R226 - Charger Overides/status */ 1571 - 0x0000, /* R227 - misc overrides */ 1572 - 0x0000, /* R228 - Supply overrides/status 1 */ 1573 - 0x0000, /* R229 - Supply overrides/status 2 */ 1574 - 0xE000, /* R230 - GPIO Pin Status */ 1575 - 0x0000, /* R231 - comparotor overrides */ 1576 - 0x0000, /* R232 */ 1577 - 0x0000, /* R233 - State Machine status */ 1578 - 0x1200, /* R234 - FLL Test 1 */ 1579 - 0x0000, /* R235 */ 1580 - 0x8000, /* R236 */ 1581 - 0x0000, /* R237 */ 1582 - 0x0000, /* R238 */ 1583 - 0x0000, /* R239 */ 1584 - 0x0003, /* R240 */ 1585 - 0x0000, /* R241 */ 1586 - 0x0000, /* R242 */ 1587 - 0x0004, /* R243 */ 1588 - 0x0300, /* R244 */ 1589 - 0x0000, /* R245 */ 1590 - 0x0200, /* R246 */ 1591 - 0x1000, /* R247 */ 1592 - 0x1000, /* R248 - DCDC1 Test Controls */ 1593 - 0x1000, /* R249 */ 1594 - 0x1000, /* R250 - DCDC3 Test Controls */ 1595 - 0x1000, /* R251 - DCDC4 Test Controls */ 1596 - }; 1597 - #endif 1598 - 1599 - #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_2 1600 - 1601 - #undef WM8350_HAVE_CONFIG_MODE 1602 - #define WM8350_HAVE_CONFIG_MODE 1603 - 1604 - const u16 wm8351_mode2_defaults[] = { 1605 - 0x6143, /* R0 - Reset/ID */ 1606 - 0x0000, /* R1 - ID */ 1607 - 0x0001, /* R2 - Revision */ 1608 - 0x1C02, /* R3 - System Control 1 */ 1609 - 0x0214, /* R4 - System Control 2 */ 1610 - 0x0000, /* R5 - System Hibernate */ 1611 - 0x8A00, /* R6 - Interface Control */ 1612 - 0x0000, /* R7 */ 1613 - 0x8000, /* R8 - Power mgmt (1) */ 1614 - 0x0000, /* R9 - Power mgmt (2) */ 1615 - 0x0000, /* R10 - Power mgmt (3) */ 1616 - 0x2000, /* R11 - Power mgmt (4) */ 1617 - 0x0E00, /* R12 - Power mgmt (5) */ 1618 - 0x0000, /* R13 - Power mgmt (6) */ 1619 - 0x0000, /* R14 - Power mgmt (7) */ 1620 - 0x0000, /* R15 */ 1621 - 0x0000, /* R16 - RTC Seconds/Minutes */ 1622 - 0x0100, /* R17 - RTC Hours/Day */ 1623 - 0x0101, /* R18 - RTC Date/Month */ 1624 - 0x1400, /* R19 - RTC Year */ 1625 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 1626 - 0x0000, /* R21 - Alarm Hours/Day */ 1627 - 0x0000, /* R22 - Alarm Date/Month */ 1628 - 0x0320, /* R23 - RTC Time Control */ 1629 - 0x0000, /* R24 - System Interrupts */ 1630 - 0x0000, /* R25 - Interrupt Status 1 */ 1631 - 0x0000, /* R26 - Interrupt Status 2 */ 1632 - 0x0000, /* R27 */ 1633 - 0x0000, /* R28 - Under Voltage Interrupt status */ 1634 - 0x0000, /* R29 - Over Current Interrupt status */ 1635 - 0x0000, /* R30 - GPIO Interrupt Status */ 1636 - 0x0000, /* R31 - Comparator Interrupt Status */ 1637 - 0x3FFF, /* R32 - System Interrupts Mask */ 1638 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 1639 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 1640 - 0x0000, /* R35 */ 1641 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 1642 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 1643 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 1644 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 1645 - 0x0040, /* R40 - Clock Control 1 */ 1646 - 0x0000, /* R41 - Clock Control 2 */ 1647 - 0x3A00, /* R42 - FLL Control 1 */ 1648 - 0x7086, /* R43 - FLL Control 2 */ 1649 - 0xC226, /* R44 - FLL Control 3 */ 1650 - 0x0000, /* R45 - FLL Control 4 */ 1651 - 0x0000, /* R46 */ 1652 - 0x0000, /* R47 */ 1653 - 0x0000, /* R48 - DAC Control */ 1654 - 0x0000, /* R49 */ 1655 - 0x00C0, /* R50 - DAC Digital Volume L */ 1656 - 0x00C0, /* R51 - DAC Digital Volume R */ 1657 - 0x0000, /* R52 */ 1658 - 0x0040, /* R53 - DAC LR Rate */ 1659 - 0x0000, /* R54 - DAC Clock Control */ 1660 - 0x0000, /* R55 */ 1661 - 0x0000, /* R56 */ 1662 - 0x0000, /* R57 */ 1663 - 0x4000, /* R58 - DAC Mute */ 1664 - 0x0000, /* R59 - DAC Mute Volume */ 1665 - 0x0000, /* R60 - DAC Side */ 1666 - 0x0000, /* R61 */ 1667 - 0x0000, /* R62 */ 1668 - 0x0000, /* R63 */ 1669 - 0x8000, /* R64 - ADC Control */ 1670 - 0x0000, /* R65 */ 1671 - 0x00C0, /* R66 - ADC Digital Volume L */ 1672 - 0x00C0, /* R67 - ADC Digital Volume R */ 1673 - 0x0000, /* R68 - ADC Divider */ 1674 - 0x0000, /* R69 */ 1675 - 0x0040, /* R70 - ADC LR Rate */ 1676 - 0x0000, /* R71 */ 1677 - 0x0303, /* R72 - Input Control */ 1678 - 0x0000, /* R73 - IN3 Input Control */ 1679 - 0x0000, /* R74 - Mic Bias Control */ 1680 - 0x0000, /* R75 */ 1681 - 0x0000, /* R76 - Output Control */ 1682 - 0x0000, /* R77 - Jack Detect */ 1683 - 0x0000, /* R78 - Anti Pop Control */ 1684 - 0x0000, /* R79 */ 1685 - 0x0040, /* R80 - Left Input Volume */ 1686 - 0x0040, /* R81 - Right Input Volume */ 1687 - 0x0000, /* R82 */ 1688 - 0x0000, /* R83 */ 1689 - 0x0000, /* R84 */ 1690 - 0x0000, /* R85 */ 1691 - 0x0000, /* R86 */ 1692 - 0x0000, /* R87 */ 1693 - 0x0800, /* R88 - Left Mixer Control */ 1694 - 0x1000, /* R89 - Right Mixer Control */ 1695 - 0x0000, /* R90 */ 1696 - 0x0000, /* R91 */ 1697 - 0x0000, /* R92 - OUT3 Mixer Control */ 1698 - 0x0000, /* R93 - OUT4 Mixer Control */ 1699 - 0x0000, /* R94 */ 1700 - 0x0000, /* R95 */ 1701 - 0x0000, /* R96 - Output Left Mixer Volume */ 1702 - 0x0000, /* R97 - Output Right Mixer Volume */ 1703 - 0x0000, /* R98 - Input Mixer Volume L */ 1704 - 0x0000, /* R99 - Input Mixer Volume R */ 1705 - 0x0000, /* R100 - Input Mixer Volume */ 1706 - 0x0000, /* R101 */ 1707 - 0x0000, /* R102 */ 1708 - 0x0000, /* R103 */ 1709 - 0x00E4, /* R104 - OUT1L Volume */ 1710 - 0x00E4, /* R105 - OUT1R Volume */ 1711 - 0x00E4, /* R106 - OUT2L Volume */ 1712 - 0x02E4, /* R107 - OUT2R Volume */ 1713 - 0x0000, /* R108 */ 1714 - 0x0000, /* R109 */ 1715 - 0x0000, /* R110 */ 1716 - 0x0000, /* R111 - BEEP Volume */ 1717 - 0x0A00, /* R112 - AI Formating */ 1718 - 0x0000, /* R113 - ADC DAC COMP */ 1719 - 0x0020, /* R114 - AI ADC Control */ 1720 - 0x0020, /* R115 - AI DAC Control */ 1721 - 0x0000, /* R116 */ 1722 - 0x0000, /* R117 */ 1723 - 0x0000, /* R118 */ 1724 - 0x0000, /* R119 */ 1725 - 0x0000, /* R120 */ 1726 - 0x0000, /* R121 */ 1727 - 0x0000, /* R122 */ 1728 - 0x0000, /* R123 */ 1729 - 0x0000, /* R124 */ 1730 - 0x0000, /* R125 */ 1731 - 0x0000, /* R126 */ 1732 - 0x0000, /* R127 */ 1733 - 0x1FFF, /* R128 - GPIO Debounce */ 1734 - 0x0000, /* R129 - GPIO Pin pull up Control */ 1735 - 0x0110, /* R130 - GPIO Pull down Control */ 1736 - 0x0000, /* R131 - GPIO Interrupt Mode */ 1737 - 0x0000, /* R132 */ 1738 - 0x0000, /* R133 - GPIO Control */ 1739 - 0x09FA, /* R134 - GPIO Configuration (i/o) */ 1740 - 0x0DF6, /* R135 - GPIO Pin Polarity / Type */ 1741 - 0x0000, /* R136 */ 1742 - 0x0000, /* R137 */ 1743 - 0x0000, /* R138 */ 1744 - 0x0000, /* R139 */ 1745 - 0x1310, /* R140 - GPIO Function Select 1 */ 1746 - 0x0003, /* R141 - GPIO Function Select 2 */ 1747 - 0x2000, /* R142 - GPIO Function Select 3 */ 1748 - 0x0000, /* R143 - GPIO Function Select 4 */ 1749 - 0x0000, /* R144 - Digitiser Control (1) */ 1750 - 0x0002, /* R145 - Digitiser Control (2) */ 1751 - 0x0000, /* R146 */ 1752 - 0x0000, /* R147 */ 1753 - 0x0000, /* R148 */ 1754 - 0x0000, /* R149 */ 1755 - 0x0000, /* R150 */ 1756 - 0x0000, /* R151 */ 1757 - 0x7000, /* R152 - AUX1 Readback */ 1758 - 0x7000, /* R153 - AUX2 Readback */ 1759 - 0x7000, /* R154 - AUX3 Readback */ 1760 - 0x7000, /* R155 - AUX4 Readback */ 1761 - 0x0000, /* R156 - USB Voltage Readback */ 1762 - 0x0000, /* R157 - LINE Voltage Readback */ 1763 - 0x0000, /* R158 - BATT Voltage Readback */ 1764 - 0x0000, /* R159 - Chip Temp Readback */ 1765 - 0x0000, /* R160 */ 1766 - 0x0000, /* R161 */ 1767 - 0x0000, /* R162 */ 1768 - 0x0000, /* R163 - Generic Comparator Control */ 1769 - 0x0000, /* R164 - Generic comparator 1 */ 1770 - 0x0000, /* R165 - Generic comparator 2 */ 1771 - 0x0000, /* R166 - Generic comparator 3 */ 1772 - 0x0000, /* R167 - Generic comparator 4 */ 1773 - 0xA00F, /* R168 - Battery Charger Control 1 */ 1774 - 0x0B06, /* R169 - Battery Charger Control 2 */ 1775 - 0x0000, /* R170 - Battery Charger Control 3 */ 1776 - 0x0000, /* R171 */ 1777 - 0x0000, /* R172 - Current Sink Driver A */ 1778 - 0x0000, /* R173 - CSA Flash control */ 1779 - 0x0000, /* R174 */ 1780 - 0x0000, /* R175 */ 1781 - 0x0000, /* R176 - DCDC/LDO requested */ 1782 - 0x032D, /* R177 - DCDC Active options */ 1783 - 0x0000, /* R178 - DCDC Sleep options */ 1784 - 0x0025, /* R179 - Power-check comparator */ 1785 - 0x001A, /* R180 - DCDC1 Control */ 1786 - 0x0800, /* R181 - DCDC1 Timeouts */ 1787 - 0x1006, /* R182 - DCDC1 Low Power */ 1788 - 0x0018, /* R183 - DCDC2 Control */ 1789 - 0x0000, /* R184 - DCDC2 Timeouts */ 1790 - 0x0000, /* R185 */ 1791 - 0x0056, /* R186 - DCDC3 Control */ 1792 - 0x0400, /* R187 - DCDC3 Timeouts */ 1793 - 0x0006, /* R188 - DCDC3 Low Power */ 1794 - 0x0026, /* R189 - DCDC4 Control */ 1795 - 0x0C00, /* R190 - DCDC4 Timeouts */ 1796 - 0x0006, /* R191 - DCDC4 Low Power */ 1797 - 0x0008, /* R192 */ 1798 - 0x0000, /* R193 */ 1799 - 0x0000, /* R194 */ 1800 - 0x0026, /* R195 */ 1801 - 0x0C00, /* R196 */ 1802 - 0x0006, /* R197 */ 1803 - 0x0000, /* R198 */ 1804 - 0x0003, /* R199 - Limit Switch Control */ 1805 - 0x001C, /* R200 - LDO1 Control */ 1806 - 0x0400, /* R201 - LDO1 Timeouts */ 1807 - 0x001C, /* R202 - LDO1 Low Power */ 1808 - 0x0010, /* R203 - LDO2 Control */ 1809 - 0x0C00, /* R204 - LDO2 Timeouts */ 1810 - 0x001C, /* R205 - LDO2 Low Power */ 1811 - 0x0015, /* R206 - LDO3 Control */ 1812 - 0x0000, /* R207 - LDO3 Timeouts */ 1813 - 0x001C, /* R208 - LDO3 Low Power */ 1814 - 0x001A, /* R209 - LDO4 Control */ 1815 - 0x0000, /* R210 - LDO4 Timeouts */ 1816 - 0x001C, /* R211 - LDO4 Low Power */ 1817 - 0x0000, /* R212 */ 1818 - 0x0000, /* R213 */ 1819 - 0x0000, /* R214 */ 1820 - 0x0000, /* R215 - VCC_FAULT Masks */ 1821 - 0x001F, /* R216 - Main Bandgap Control */ 1822 - 0x0000, /* R217 - OSC Control */ 1823 - 0x9000, /* R218 - RTC Tick Control */ 1824 - 0x0000, /* R219 - Security1 */ 1825 - 0x4000, /* R220 */ 1826 - 0x0000, /* R221 */ 1827 - 0x0000, /* R222 */ 1828 - 0x0000, /* R223 */ 1829 - 0x0000, /* R224 - Signal overrides */ 1830 - 0x0000, /* R225 - DCDC/LDO status */ 1831 - 0x0000, /* R226 - Charger Overides/status */ 1832 - 0x0000, /* R227 - misc overrides */ 1833 - 0x0000, /* R228 - Supply overrides/status 1 */ 1834 - 0x0000, /* R229 - Supply overrides/status 2 */ 1835 - 0xE000, /* R230 - GPIO Pin Status */ 1836 - 0x0000, /* R231 - comparotor overrides */ 1837 - 0x0000, /* R232 */ 1838 - 0x0000, /* R233 - State Machine status */ 1839 - 0x1200, /* R234 - FLL Test 1 */ 1840 - 0x0000, /* R235 */ 1841 - 0x8000, /* R236 */ 1842 - 0x0000, /* R237 */ 1843 - 0x0000, /* R238 */ 1844 - 0x0000, /* R239 */ 1845 - 0x0003, /* R240 */ 1846 - 0x0000, /* R241 */ 1847 - 0x0000, /* R242 */ 1848 - 0x0004, /* R243 */ 1849 - 0x0300, /* R244 */ 1850 - 0x0000, /* R245 */ 1851 - 0x0200, /* R246 */ 1852 - 0x0000, /* R247 */ 1853 - 0x1000, /* R248 - DCDC1 Test Controls */ 1854 - 0x1000, /* R249 */ 1855 - 0x1000, /* R250 - DCDC3 Test Controls */ 1856 - 0x1000, /* R251 - DCDC4 Test Controls */ 1857 - }; 1858 - #endif 1859 - 1860 - #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_3 1861 - 1862 - #undef WM8350_HAVE_CONFIG_MODE 1863 - #define WM8350_HAVE_CONFIG_MODE 1864 - 1865 - const u16 wm8351_mode3_defaults[] = { 1866 - 0x6143, /* R0 - Reset/ID */ 1867 - 0x0000, /* R1 - ID */ 1868 - 0x0001, /* R2 - Revision */ 1869 - 0x1C02, /* R3 - System Control 1 */ 1870 - 0x0204, /* R4 - System Control 2 */ 1871 - 0x0000, /* R5 - System Hibernate */ 1872 - 0x8A00, /* R6 - Interface Control */ 1873 - 0x0000, /* R7 */ 1874 - 0x8000, /* R8 - Power mgmt (1) */ 1875 - 0x0000, /* R9 - Power mgmt (2) */ 1876 - 0x0000, /* R10 - Power mgmt (3) */ 1877 - 0x2000, /* R11 - Power mgmt (4) */ 1878 - 0x0E00, /* R12 - Power mgmt (5) */ 1879 - 0x0000, /* R13 - Power mgmt (6) */ 1880 - 0x0000, /* R14 - Power mgmt (7) */ 1881 - 0x0000, /* R15 */ 1882 - 0x0000, /* R16 - RTC Seconds/Minutes */ 1883 - 0x0100, /* R17 - RTC Hours/Day */ 1884 - 0x0101, /* R18 - RTC Date/Month */ 1885 - 0x1400, /* R19 - RTC Year */ 1886 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 1887 - 0x0000, /* R21 - Alarm Hours/Day */ 1888 - 0x0000, /* R22 - Alarm Date/Month */ 1889 - 0x0320, /* R23 - RTC Time Control */ 1890 - 0x0000, /* R24 - System Interrupts */ 1891 - 0x0000, /* R25 - Interrupt Status 1 */ 1892 - 0x0000, /* R26 - Interrupt Status 2 */ 1893 - 0x0000, /* R27 */ 1894 - 0x0000, /* R28 - Under Voltage Interrupt status */ 1895 - 0x0000, /* R29 - Over Current Interrupt status */ 1896 - 0x0000, /* R30 - GPIO Interrupt Status */ 1897 - 0x0000, /* R31 - Comparator Interrupt Status */ 1898 - 0x3FFF, /* R32 - System Interrupts Mask */ 1899 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 1900 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 1901 - 0x0000, /* R35 */ 1902 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 1903 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 1904 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 1905 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 1906 - 0x0040, /* R40 - Clock Control 1 */ 1907 - 0x0000, /* R41 - Clock Control 2 */ 1908 - 0x3A00, /* R42 - FLL Control 1 */ 1909 - 0x7086, /* R43 - FLL Control 2 */ 1910 - 0xC226, /* R44 - FLL Control 3 */ 1911 - 0x0000, /* R45 - FLL Control 4 */ 1912 - 0x0000, /* R46 */ 1913 - 0x0000, /* R47 */ 1914 - 0x0000, /* R48 - DAC Control */ 1915 - 0x0000, /* R49 */ 1916 - 0x00C0, /* R50 - DAC Digital Volume L */ 1917 - 0x00C0, /* R51 - DAC Digital Volume R */ 1918 - 0x0000, /* R52 */ 1919 - 0x0040, /* R53 - DAC LR Rate */ 1920 - 0x0000, /* R54 - DAC Clock Control */ 1921 - 0x0000, /* R55 */ 1922 - 0x0000, /* R56 */ 1923 - 0x0000, /* R57 */ 1924 - 0x4000, /* R58 - DAC Mute */ 1925 - 0x0000, /* R59 - DAC Mute Volume */ 1926 - 0x0000, /* R60 - DAC Side */ 1927 - 0x0000, /* R61 */ 1928 - 0x0000, /* R62 */ 1929 - 0x0000, /* R63 */ 1930 - 0x8000, /* R64 - ADC Control */ 1931 - 0x0000, /* R65 */ 1932 - 0x00C0, /* R66 - ADC Digital Volume L */ 1933 - 0x00C0, /* R67 - ADC Digital Volume R */ 1934 - 0x0000, /* R68 - ADC Divider */ 1935 - 0x0000, /* R69 */ 1936 - 0x0040, /* R70 - ADC LR Rate */ 1937 - 0x0000, /* R71 */ 1938 - 0x0303, /* R72 - Input Control */ 1939 - 0x0000, /* R73 - IN3 Input Control */ 1940 - 0x0000, /* R74 - Mic Bias Control */ 1941 - 0x0000, /* R75 */ 1942 - 0x0000, /* R76 - Output Control */ 1943 - 0x0000, /* R77 - Jack Detect */ 1944 - 0x0000, /* R78 - Anti Pop Control */ 1945 - 0x0000, /* R79 */ 1946 - 0x0040, /* R80 - Left Input Volume */ 1947 - 0x0040, /* R81 - Right Input Volume */ 1948 - 0x0000, /* R82 */ 1949 - 0x0000, /* R83 */ 1950 - 0x0000, /* R84 */ 1951 - 0x0000, /* R85 */ 1952 - 0x0000, /* R86 */ 1953 - 0x0000, /* R87 */ 1954 - 0x0800, /* R88 - Left Mixer Control */ 1955 - 0x1000, /* R89 - Right Mixer Control */ 1956 - 0x0000, /* R90 */ 1957 - 0x0000, /* R91 */ 1958 - 0x0000, /* R92 - OUT3 Mixer Control */ 1959 - 0x0000, /* R93 - OUT4 Mixer Control */ 1960 - 0x0000, /* R94 */ 1961 - 0x0000, /* R95 */ 1962 - 0x0000, /* R96 - Output Left Mixer Volume */ 1963 - 0x0000, /* R97 - Output Right Mixer Volume */ 1964 - 0x0000, /* R98 - Input Mixer Volume L */ 1965 - 0x0000, /* R99 - Input Mixer Volume R */ 1966 - 0x0000, /* R100 - Input Mixer Volume */ 1967 - 0x0000, /* R101 */ 1968 - 0x0000, /* R102 */ 1969 - 0x0000, /* R103 */ 1970 - 0x00E4, /* R104 - OUT1L Volume */ 1971 - 0x00E4, /* R105 - OUT1R Volume */ 1972 - 0x00E4, /* R106 - OUT2L Volume */ 1973 - 0x02E4, /* R107 - OUT2R Volume */ 1974 - 0x0000, /* R108 */ 1975 - 0x0000, /* R109 */ 1976 - 0x0000, /* R110 */ 1977 - 0x0000, /* R111 - BEEP Volume */ 1978 - 0x0A00, /* R112 - AI Formating */ 1979 - 0x0000, /* R113 - ADC DAC COMP */ 1980 - 0x0020, /* R114 - AI ADC Control */ 1981 - 0x0020, /* R115 - AI DAC Control */ 1982 - 0x0000, /* R116 */ 1983 - 0x0000, /* R117 */ 1984 - 0x0000, /* R118 */ 1985 - 0x0000, /* R119 */ 1986 - 0x0000, /* R120 */ 1987 - 0x0000, /* R121 */ 1988 - 0x0000, /* R122 */ 1989 - 0x0000, /* R123 */ 1990 - 0x0000, /* R124 */ 1991 - 0x0000, /* R125 */ 1992 - 0x0000, /* R126 */ 1993 - 0x0000, /* R127 */ 1994 - 0x1FFF, /* R128 - GPIO Debounce */ 1995 - 0x0010, /* R129 - GPIO Pin pull up Control */ 1996 - 0x0000, /* R130 - GPIO Pull down Control */ 1997 - 0x0000, /* R131 - GPIO Interrupt Mode */ 1998 - 0x0000, /* R132 */ 1999 - 0x0000, /* R133 - GPIO Control */ 2000 - 0x0BFB, /* R134 - GPIO Configuration (i/o) */ 2001 - 0x0FFD, /* R135 - GPIO Pin Polarity / Type */ 2002 - 0x0000, /* R136 */ 2003 - 0x0000, /* R137 */ 2004 - 0x0000, /* R138 */ 2005 - 0x0000, /* R139 */ 2006 - 0x0310, /* R140 - GPIO Function Select 1 */ 2007 - 0x0001, /* R141 - GPIO Function Select 2 */ 2008 - 0x2300, /* R142 - GPIO Function Select 3 */ 2009 - 0x0003, /* R143 - GPIO Function Select 4 */ 2010 - 0x0000, /* R144 - Digitiser Control (1) */ 2011 - 0x0002, /* R145 - Digitiser Control (2) */ 2012 - 0x0000, /* R146 */ 2013 - 0x0000, /* R147 */ 2014 - 0x0000, /* R148 */ 2015 - 0x0000, /* R149 */ 2016 - 0x0000, /* R150 */ 2017 - 0x0000, /* R151 */ 2018 - 0x7000, /* R152 - AUX1 Readback */ 2019 - 0x7000, /* R153 - AUX2 Readback */ 2020 - 0x7000, /* R154 - AUX3 Readback */ 2021 - 0x7000, /* R155 - AUX4 Readback */ 2022 - 0x0000, /* R156 - USB Voltage Readback */ 2023 - 0x0000, /* R157 - LINE Voltage Readback */ 2024 - 0x0000, /* R158 - BATT Voltage Readback */ 2025 - 0x0000, /* R159 - Chip Temp Readback */ 2026 - 0x0000, /* R160 */ 2027 - 0x0000, /* R161 */ 2028 - 0x0000, /* R162 */ 2029 - 0x0000, /* R163 - Generic Comparator Control */ 2030 - 0x0000, /* R164 - Generic comparator 1 */ 2031 - 0x0000, /* R165 - Generic comparator 2 */ 2032 - 0x0000, /* R166 - Generic comparator 3 */ 2033 - 0x0000, /* R167 - Generic comparator 4 */ 2034 - 0xA00F, /* R168 - Battery Charger Control 1 */ 2035 - 0x0B06, /* R169 - Battery Charger Control 2 */ 2036 - 0x0000, /* R170 - Battery Charger Control 3 */ 2037 - 0x0000, /* R171 */ 2038 - 0x0000, /* R172 - Current Sink Driver A */ 2039 - 0x0000, /* R173 - CSA Flash control */ 2040 - 0x0000, /* R174 */ 2041 - 0x0000, /* R175 */ 2042 - 0x0000, /* R176 - DCDC/LDO requested */ 2043 - 0x032D, /* R177 - DCDC Active options */ 2044 - 0x0000, /* R178 - DCDC Sleep options */ 2045 - 0x0025, /* R179 - Power-check comparator */ 2046 - 0x000E, /* R180 - DCDC1 Control */ 2047 - 0x0400, /* R181 - DCDC1 Timeouts */ 2048 - 0x1006, /* R182 - DCDC1 Low Power */ 2049 - 0x0018, /* R183 - DCDC2 Control */ 2050 - 0x0000, /* R184 - DCDC2 Timeouts */ 2051 - 0x0000, /* R185 */ 2052 - 0x0026, /* R186 - DCDC3 Control */ 2053 - 0x0800, /* R187 - DCDC3 Timeouts */ 2054 - 0x0006, /* R188 - DCDC3 Low Power */ 2055 - 0x0062, /* R189 - DCDC4 Control */ 2056 - 0x1400, /* R190 - DCDC4 Timeouts */ 2057 - 0x0006, /* R191 - DCDC4 Low Power */ 2058 - 0x0008, /* R192 */ 2059 - 0x0000, /* R193 */ 2060 - 0x0000, /* R194 */ 2061 - 0x0026, /* R195 */ 2062 - 0x0400, /* R196 */ 2063 - 0x0006, /* R197 */ 2064 - 0x0000, /* R198 */ 2065 - 0x0003, /* R199 - Limit Switch Control */ 2066 - 0x0006, /* R200 - LDO1 Control */ 2067 - 0x0C00, /* R201 - LDO1 Timeouts */ 2068 - 0x001C, /* R202 - LDO1 Low Power */ 2069 - 0x0016, /* R203 - LDO2 Control */ 2070 - 0x0000, /* R204 - LDO2 Timeouts */ 2071 - 0x001C, /* R205 - LDO2 Low Power */ 2072 - 0x0019, /* R206 - LDO3 Control */ 2073 - 0x0000, /* R207 - LDO3 Timeouts */ 2074 - 0x001C, /* R208 - LDO3 Low Power */ 2075 - 0x001A, /* R209 - LDO4 Control */ 2076 - 0x1000, /* R210 - LDO4 Timeouts */ 2077 - 0x001C, /* R211 - LDO4 Low Power */ 2078 - 0x0000, /* R212 */ 2079 - 0x0000, /* R213 */ 2080 - 0x0000, /* R214 */ 2081 - 0x0000, /* R215 - VCC_FAULT Masks */ 2082 - 0x001F, /* R216 - Main Bandgap Control */ 2083 - 0x0000, /* R217 - OSC Control */ 2084 - 0x9000, /* R218 - RTC Tick Control */ 2085 - 0x0000, /* R219 - Security1 */ 2086 - 0x4000, /* R220 */ 2087 - 0x0000, /* R221 */ 2088 - 0x0000, /* R222 */ 2089 - 0x0000, /* R223 */ 2090 - 0x0000, /* R224 - Signal overrides */ 2091 - 0x0000, /* R225 - DCDC/LDO status */ 2092 - 0x0000, /* R226 - Charger Overides/status */ 2093 - 0x0000, /* R227 - misc overrides */ 2094 - 0x0000, /* R228 - Supply overrides/status 1 */ 2095 - 0x0000, /* R229 - Supply overrides/status 2 */ 2096 - 0xE000, /* R230 - GPIO Pin Status */ 2097 - 0x0000, /* R231 - comparotor overrides */ 2098 - 0x0000, /* R232 */ 2099 - 0x0000, /* R233 - State Machine status */ 2100 - 0x1200, /* R234 - FLL Test 1 */ 2101 - 0x0000, /* R235 */ 2102 - 0x8000, /* R236 */ 2103 - 0x0000, /* R237 */ 2104 - 0x0000, /* R238 */ 2105 - 0x0000, /* R239 */ 2106 - 0x0003, /* R240 */ 2107 - 0x0000, /* R241 */ 2108 - 0x0000, /* R242 */ 2109 - 0x0004, /* R243 */ 2110 - 0x0300, /* R244 */ 2111 - 0x0000, /* R245 */ 2112 - 0x0200, /* R246 */ 2113 - 0x0000, /* R247 */ 2114 - 0x1000, /* R248 - DCDC1 Test Controls */ 2115 - 0x1000, /* R249 */ 2116 - 0x1000, /* R250 - DCDC3 Test Controls */ 2117 - 0x1000, /* R251 - DCDC4 Test Controls */ 2118 - }; 2119 - #endif 2120 - 2121 - #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_0 2122 - 2123 - #undef WM8350_HAVE_CONFIG_MODE 2124 - #define WM8350_HAVE_CONFIG_MODE 2125 - 2126 - const u16 wm8352_mode0_defaults[] = { 2127 - 0x6143, /* R0 - Reset/ID */ 2128 - 0x0000, /* R1 - ID */ 2129 - 0x0002, /* R2 - Revision */ 2130 - 0x1C02, /* R3 - System Control 1 */ 2131 - 0x0004, /* R4 - System Control 2 */ 2132 - 0x0000, /* R5 - System Hibernate */ 2133 - 0x8A00, /* R6 - Interface Control */ 2134 - 0x0000, /* R7 */ 2135 - 0x8000, /* R8 - Power mgmt (1) */ 2136 - 0x0000, /* R9 - Power mgmt (2) */ 2137 - 0x0000, /* R10 - Power mgmt (3) */ 2138 - 0x2000, /* R11 - Power mgmt (4) */ 2139 - 0x0E00, /* R12 - Power mgmt (5) */ 2140 - 0x0000, /* R13 - Power mgmt (6) */ 2141 - 0x0000, /* R14 - Power mgmt (7) */ 2142 - 0x0000, /* R15 */ 2143 - 0x0000, /* R16 - RTC Seconds/Minutes */ 2144 - 0x0100, /* R17 - RTC Hours/Day */ 2145 - 0x0101, /* R18 - RTC Date/Month */ 2146 - 0x1400, /* R19 - RTC Year */ 2147 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 2148 - 0x0000, /* R21 - Alarm Hours/Day */ 2149 - 0x0000, /* R22 - Alarm Date/Month */ 2150 - 0x0320, /* R23 - RTC Time Control */ 2151 - 0x0000, /* R24 - System Interrupts */ 2152 - 0x0000, /* R25 - Interrupt Status 1 */ 2153 - 0x0000, /* R26 - Interrupt Status 2 */ 2154 - 0x0000, /* R27 */ 2155 - 0x0000, /* R28 - Under Voltage Interrupt status */ 2156 - 0x0000, /* R29 - Over Current Interrupt status */ 2157 - 0x0000, /* R30 - GPIO Interrupt Status */ 2158 - 0x0000, /* R31 - Comparator Interrupt Status */ 2159 - 0x3FFF, /* R32 - System Interrupts Mask */ 2160 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 2161 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 2162 - 0x0000, /* R35 */ 2163 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 2164 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 2165 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 2166 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 2167 - 0x0040, /* R40 - Clock Control 1 */ 2168 - 0x0000, /* R41 - Clock Control 2 */ 2169 - 0x3A00, /* R42 - FLL Control 1 */ 2170 - 0x7086, /* R43 - FLL Control 2 */ 2171 - 0xC226, /* R44 - FLL Control 3 */ 2172 - 0x0000, /* R45 - FLL Control 4 */ 2173 - 0x0000, /* R46 */ 2174 - 0x0000, /* R47 */ 2175 - 0x0000, /* R48 - DAC Control */ 2176 - 0x0000, /* R49 */ 2177 - 0x00C0, /* R50 - DAC Digital Volume L */ 2178 - 0x00C0, /* R51 - DAC Digital Volume R */ 2179 - 0x0000, /* R52 */ 2180 - 0x0040, /* R53 - DAC LR Rate */ 2181 - 0x0000, /* R54 - DAC Clock Control */ 2182 - 0x0000, /* R55 */ 2183 - 0x0000, /* R56 */ 2184 - 0x0000, /* R57 */ 2185 - 0x4000, /* R58 - DAC Mute */ 2186 - 0x0000, /* R59 - DAC Mute Volume */ 2187 - 0x0000, /* R60 - DAC Side */ 2188 - 0x0000, /* R61 */ 2189 - 0x0000, /* R62 */ 2190 - 0x0000, /* R63 */ 2191 - 0x8000, /* R64 - ADC Control */ 2192 - 0x0000, /* R65 */ 2193 - 0x00C0, /* R66 - ADC Digital Volume L */ 2194 - 0x00C0, /* R67 - ADC Digital Volume R */ 2195 - 0x0000, /* R68 - ADC Divider */ 2196 - 0x0000, /* R69 */ 2197 - 0x0040, /* R70 - ADC LR Rate */ 2198 - 0x0000, /* R71 */ 2199 - 0x0303, /* R72 - Input Control */ 2200 - 0x0000, /* R73 - IN3 Input Control */ 2201 - 0x0000, /* R74 - Mic Bias Control */ 2202 - 0x0000, /* R75 */ 2203 - 0x0000, /* R76 - Output Control */ 2204 - 0x0000, /* R77 - Jack Detect */ 2205 - 0x0000, /* R78 - Anti Pop Control */ 2206 - 0x0000, /* R79 */ 2207 - 0x0040, /* R80 - Left Input Volume */ 2208 - 0x0040, /* R81 - Right Input Volume */ 2209 - 0x0000, /* R82 */ 2210 - 0x0000, /* R83 */ 2211 - 0x0000, /* R84 */ 2212 - 0x0000, /* R85 */ 2213 - 0x0000, /* R86 */ 2214 - 0x0000, /* R87 */ 2215 - 0x0800, /* R88 - Left Mixer Control */ 2216 - 0x1000, /* R89 - Right Mixer Control */ 2217 - 0x0000, /* R90 */ 2218 - 0x0000, /* R91 */ 2219 - 0x0000, /* R92 - OUT3 Mixer Control */ 2220 - 0x0000, /* R93 - OUT4 Mixer Control */ 2221 - 0x0000, /* R94 */ 2222 - 0x0000, /* R95 */ 2223 - 0x0000, /* R96 - Output Left Mixer Volume */ 2224 - 0x0000, /* R97 - Output Right Mixer Volume */ 2225 - 0x0000, /* R98 - Input Mixer Volume L */ 2226 - 0x0000, /* R99 - Input Mixer Volume R */ 2227 - 0x0000, /* R100 - Input Mixer Volume */ 2228 - 0x0000, /* R101 */ 2229 - 0x0000, /* R102 */ 2230 - 0x0000, /* R103 */ 2231 - 0x00E4, /* R104 - OUT1L Volume */ 2232 - 0x00E4, /* R105 - OUT1R Volume */ 2233 - 0x00E4, /* R106 - OUT2L Volume */ 2234 - 0x02E4, /* R107 - OUT2R Volume */ 2235 - 0x0000, /* R108 */ 2236 - 0x0000, /* R109 */ 2237 - 0x0000, /* R110 */ 2238 - 0x0000, /* R111 - BEEP Volume */ 2239 - 0x0A00, /* R112 - AI Formating */ 2240 - 0x0000, /* R113 - ADC DAC COMP */ 2241 - 0x0020, /* R114 - AI ADC Control */ 2242 - 0x0020, /* R115 - AI DAC Control */ 2243 - 0x0000, /* R116 */ 2244 - 0x0000, /* R117 */ 2245 - 0x0000, /* R118 */ 2246 - 0x0000, /* R119 */ 2247 - 0x0000, /* R120 */ 2248 - 0x0000, /* R121 */ 2249 - 0x0000, /* R122 */ 2250 - 0x0000, /* R123 */ 2251 - 0x0000, /* R124 */ 2252 - 0x0000, /* R125 */ 2253 - 0x0000, /* R126 */ 2254 - 0x0000, /* R127 */ 2255 - 0x1FFF, /* R128 - GPIO Debounce */ 2256 - 0x0000, /* R129 - GPIO Pin pull up Control */ 2257 - 0x0000, /* R130 - GPIO Pull down Control */ 2258 - 0x0000, /* R131 - GPIO Interrupt Mode */ 2259 - 0x0000, /* R132 */ 2260 - 0x0000, /* R133 - GPIO Control */ 2261 - 0x0FFC, /* R134 - GPIO Configuration (i/o) */ 2262 - 0x0FFC, /* R135 - GPIO Pin Polarity / Type */ 2263 - 0x0000, /* R136 */ 2264 - 0x0000, /* R137 */ 2265 - 0x0000, /* R138 */ 2266 - 0x0000, /* R139 */ 2267 - 0x0013, /* R140 - GPIO Function Select 1 */ 2268 - 0x0000, /* R141 - GPIO Function Select 2 */ 2269 - 0x0000, /* R142 - GPIO Function Select 3 */ 2270 - 0x0003, /* R143 - GPIO Function Select 4 */ 2271 - 0x0000, /* R144 - Digitiser Control (1) */ 2272 - 0x0002, /* R145 - Digitiser Control (2) */ 2273 - 0x0000, /* R146 */ 2274 - 0x0000, /* R147 */ 2275 - 0x0000, /* R148 */ 2276 - 0x0000, /* R149 */ 2277 - 0x0000, /* R150 */ 2278 - 0x0000, /* R151 */ 2279 - 0x7000, /* R152 - AUX1 Readback */ 2280 - 0x7000, /* R153 - AUX2 Readback */ 2281 - 0x7000, /* R154 - AUX3 Readback */ 2282 - 0x7000, /* R155 - AUX4 Readback */ 2283 - 0x0000, /* R156 - USB Voltage Readback */ 2284 - 0x0000, /* R157 - LINE Voltage Readback */ 2285 - 0x0000, /* R158 - BATT Voltage Readback */ 2286 - 0x0000, /* R159 - Chip Temp Readback */ 2287 - 0x0000, /* R160 */ 2288 - 0x0000, /* R161 */ 2289 - 0x0000, /* R162 */ 2290 - 0x0000, /* R163 - Generic Comparator Control */ 2291 - 0x0000, /* R164 - Generic comparator 1 */ 2292 - 0x0000, /* R165 - Generic comparator 2 */ 2293 - 0x0000, /* R166 - Generic comparator 3 */ 2294 - 0x0000, /* R167 - Generic comparator 4 */ 2295 - 0xA00F, /* R168 - Battery Charger Control 1 */ 2296 - 0x0B06, /* R169 - Battery Charger Control 2 */ 2297 - 0x0000, /* R170 - Battery Charger Control 3 */ 2298 - 0x0000, /* R171 */ 2299 - 0x0000, /* R172 - Current Sink Driver A */ 2300 - 0x0000, /* R173 - CSA Flash control */ 2301 - 0x0000, /* R174 - Current Sink Driver B */ 2302 - 0x0000, /* R175 - CSB Flash control */ 2303 - 0x0000, /* R176 - DCDC/LDO requested */ 2304 - 0x032D, /* R177 - DCDC Active options */ 2305 - 0x0000, /* R178 - DCDC Sleep options */ 2306 - 0x0025, /* R179 - Power-check comparator */ 2307 - 0x000E, /* R180 - DCDC1 Control */ 2308 - 0x0000, /* R181 - DCDC1 Timeouts */ 2309 - 0x1006, /* R182 - DCDC1 Low Power */ 2310 - 0x0018, /* R183 - DCDC2 Control */ 2311 - 0x0000, /* R184 - DCDC2 Timeouts */ 2312 - 0x0000, /* R185 */ 2313 - 0x0000, /* R186 - DCDC3 Control */ 2314 - 0x0000, /* R187 - DCDC3 Timeouts */ 2315 - 0x0006, /* R188 - DCDC3 Low Power */ 2316 - 0x0000, /* R189 - DCDC4 Control */ 2317 - 0x0000, /* R190 - DCDC4 Timeouts */ 2318 - 0x0006, /* R191 - DCDC4 Low Power */ 2319 - 0x0008, /* R192 - DCDC5 Control */ 2320 - 0x0000, /* R193 - DCDC5 Timeouts */ 2321 - 0x0000, /* R194 */ 2322 - 0x0000, /* R195 - DCDC6 Control */ 2323 - 0x0000, /* R196 - DCDC6 Timeouts */ 2324 - 0x0006, /* R197 - DCDC6 Low Power */ 2325 - 0x0000, /* R198 */ 2326 - 0x0003, /* R199 - Limit Switch Control */ 2327 - 0x001C, /* R200 - LDO1 Control */ 2328 - 0x0000, /* R201 - LDO1 Timeouts */ 2329 - 0x001C, /* R202 - LDO1 Low Power */ 2330 - 0x001B, /* R203 - LDO2 Control */ 2331 - 0x0000, /* R204 - LDO2 Timeouts */ 2332 - 0x001C, /* R205 - LDO2 Low Power */ 2333 - 0x001B, /* R206 - LDO3 Control */ 2334 - 0x0000, /* R207 - LDO3 Timeouts */ 2335 - 0x001C, /* R208 - LDO3 Low Power */ 2336 - 0x001B, /* R209 - LDO4 Control */ 2337 - 0x0000, /* R210 - LDO4 Timeouts */ 2338 - 0x001C, /* R211 - LDO4 Low Power */ 2339 - 0x0000, /* R212 */ 2340 - 0x0000, /* R213 */ 2341 - 0x0000, /* R214 */ 2342 - 0x0000, /* R215 - VCC_FAULT Masks */ 2343 - 0x001F, /* R216 - Main Bandgap Control */ 2344 - 0x0000, /* R217 - OSC Control */ 2345 - 0x9000, /* R218 - RTC Tick Control */ 2346 - 0x0000, /* R219 - Security1 */ 2347 - 0x4000, /* R220 */ 2348 - 0x0000, /* R221 */ 2349 - 0x0000, /* R222 */ 2350 - 0x0000, /* R223 */ 2351 - 0x0000, /* R224 - Signal overrides */ 2352 - 0x0000, /* R225 - DCDC/LDO status */ 2353 - 0x0000, /* R226 - Charger Overides/status */ 2354 - 0x0000, /* R227 - misc overrides */ 2355 - 0x0000, /* R228 - Supply overrides/status 1 */ 2356 - 0x0000, /* R229 - Supply overrides/status 2 */ 2357 - 0xE000, /* R230 - GPIO Pin Status */ 2358 - 0x0000, /* R231 - comparotor overrides */ 2359 - 0x0000, /* R232 */ 2360 - 0x0000, /* R233 - State Machine status */ 2361 - 0x1200, /* R234 */ 2362 - 0x0000, /* R235 */ 2363 - 0x8000, /* R236 */ 2364 - 0x0000, /* R237 */ 2365 - 0x0000, /* R238 */ 2366 - 0x0000, /* R239 */ 2367 - 0x0003, /* R240 */ 2368 - 0x0000, /* R241 */ 2369 - 0x0000, /* R242 */ 2370 - 0x0004, /* R243 */ 2371 - 0x0300, /* R244 */ 2372 - 0x0000, /* R245 */ 2373 - 0x0200, /* R246 */ 2374 - 0x0000, /* R247 */ 2375 - 0x1000, /* R248 - DCDC1 Test Controls */ 2376 - 0x5000, /* R249 */ 2377 - 0x1000, /* R250 - DCDC3 Test Controls */ 2378 - 0x1000, /* R251 - DCDC4 Test Controls */ 2379 - 0x5100, /* R252 */ 2380 - 0x1000, /* R253 - DCDC6 Test Controls */ 2381 - }; 2382 - #endif 2383 - 2384 - #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_1 2385 - 2386 - #undef WM8350_HAVE_CONFIG_MODE 2387 - #define WM8350_HAVE_CONFIG_MODE 2388 - 2389 - const u16 wm8352_mode1_defaults[] = { 2390 - 0x6143, /* R0 - Reset/ID */ 2391 - 0x0000, /* R1 - ID */ 2392 - 0x0002, /* R2 - Revision */ 2393 - 0x1C02, /* R3 - System Control 1 */ 2394 - 0x0204, /* R4 - System Control 2 */ 2395 - 0x0000, /* R5 - System Hibernate */ 2396 - 0x8A00, /* R6 - Interface Control */ 2397 - 0x0000, /* R7 */ 2398 - 0x8000, /* R8 - Power mgmt (1) */ 2399 - 0x0000, /* R9 - Power mgmt (2) */ 2400 - 0x0000, /* R10 - Power mgmt (3) */ 2401 - 0x2000, /* R11 - Power mgmt (4) */ 2402 - 0x0E00, /* R12 - Power mgmt (5) */ 2403 - 0x0000, /* R13 - Power mgmt (6) */ 2404 - 0x0000, /* R14 - Power mgmt (7) */ 2405 - 0x0000, /* R15 */ 2406 - 0x0000, /* R16 - RTC Seconds/Minutes */ 2407 - 0x0100, /* R17 - RTC Hours/Day */ 2408 - 0x0101, /* R18 - RTC Date/Month */ 2409 - 0x1400, /* R19 - RTC Year */ 2410 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 2411 - 0x0000, /* R21 - Alarm Hours/Day */ 2412 - 0x0000, /* R22 - Alarm Date/Month */ 2413 - 0x0320, /* R23 - RTC Time Control */ 2414 - 0x0000, /* R24 - System Interrupts */ 2415 - 0x0000, /* R25 - Interrupt Status 1 */ 2416 - 0x0000, /* R26 - Interrupt Status 2 */ 2417 - 0x0000, /* R27 */ 2418 - 0x0000, /* R28 - Under Voltage Interrupt status */ 2419 - 0x0000, /* R29 - Over Current Interrupt status */ 2420 - 0x0000, /* R30 - GPIO Interrupt Status */ 2421 - 0x0000, /* R31 - Comparator Interrupt Status */ 2422 - 0x3FFF, /* R32 - System Interrupts Mask */ 2423 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 2424 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 2425 - 0x0000, /* R35 */ 2426 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 2427 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 2428 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 2429 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 2430 - 0x0040, /* R40 - Clock Control 1 */ 2431 - 0x0000, /* R41 - Clock Control 2 */ 2432 - 0x3A00, /* R42 - FLL Control 1 */ 2433 - 0x7086, /* R43 - FLL Control 2 */ 2434 - 0xC226, /* R44 - FLL Control 3 */ 2435 - 0x0000, /* R45 - FLL Control 4 */ 2436 - 0x0000, /* R46 */ 2437 - 0x0000, /* R47 */ 2438 - 0x0000, /* R48 - DAC Control */ 2439 - 0x0000, /* R49 */ 2440 - 0x00C0, /* R50 - DAC Digital Volume L */ 2441 - 0x00C0, /* R51 - DAC Digital Volume R */ 2442 - 0x0000, /* R52 */ 2443 - 0x0040, /* R53 - DAC LR Rate */ 2444 - 0x0000, /* R54 - DAC Clock Control */ 2445 - 0x0000, /* R55 */ 2446 - 0x0000, /* R56 */ 2447 - 0x0000, /* R57 */ 2448 - 0x4000, /* R58 - DAC Mute */ 2449 - 0x0000, /* R59 - DAC Mute Volume */ 2450 - 0x0000, /* R60 - DAC Side */ 2451 - 0x0000, /* R61 */ 2452 - 0x0000, /* R62 */ 2453 - 0x0000, /* R63 */ 2454 - 0x8000, /* R64 - ADC Control */ 2455 - 0x0000, /* R65 */ 2456 - 0x00C0, /* R66 - ADC Digital Volume L */ 2457 - 0x00C0, /* R67 - ADC Digital Volume R */ 2458 - 0x0000, /* R68 - ADC Divider */ 2459 - 0x0000, /* R69 */ 2460 - 0x0040, /* R70 - ADC LR Rate */ 2461 - 0x0000, /* R71 */ 2462 - 0x0303, /* R72 - Input Control */ 2463 - 0x0000, /* R73 - IN3 Input Control */ 2464 - 0x0000, /* R74 - Mic Bias Control */ 2465 - 0x0000, /* R75 */ 2466 - 0x0000, /* R76 - Output Control */ 2467 - 0x0000, /* R77 - Jack Detect */ 2468 - 0x0000, /* R78 - Anti Pop Control */ 2469 - 0x0000, /* R79 */ 2470 - 0x0040, /* R80 - Left Input Volume */ 2471 - 0x0040, /* R81 - Right Input Volume */ 2472 - 0x0000, /* R82 */ 2473 - 0x0000, /* R83 */ 2474 - 0x0000, /* R84 */ 2475 - 0x0000, /* R85 */ 2476 - 0x0000, /* R86 */ 2477 - 0x0000, /* R87 */ 2478 - 0x0800, /* R88 - Left Mixer Control */ 2479 - 0x1000, /* R89 - Right Mixer Control */ 2480 - 0x0000, /* R90 */ 2481 - 0x0000, /* R91 */ 2482 - 0x0000, /* R92 - OUT3 Mixer Control */ 2483 - 0x0000, /* R93 - OUT4 Mixer Control */ 2484 - 0x0000, /* R94 */ 2485 - 0x0000, /* R95 */ 2486 - 0x0000, /* R96 - Output Left Mixer Volume */ 2487 - 0x0000, /* R97 - Output Right Mixer Volume */ 2488 - 0x0000, /* R98 - Input Mixer Volume L */ 2489 - 0x0000, /* R99 - Input Mixer Volume R */ 2490 - 0x0000, /* R100 - Input Mixer Volume */ 2491 - 0x0000, /* R101 */ 2492 - 0x0000, /* R102 */ 2493 - 0x0000, /* R103 */ 2494 - 0x00E4, /* R104 - OUT1L Volume */ 2495 - 0x00E4, /* R105 - OUT1R Volume */ 2496 - 0x00E4, /* R106 - OUT2L Volume */ 2497 - 0x02E4, /* R107 - OUT2R Volume */ 2498 - 0x0000, /* R108 */ 2499 - 0x0000, /* R109 */ 2500 - 0x0000, /* R110 */ 2501 - 0x0000, /* R111 - BEEP Volume */ 2502 - 0x0A00, /* R112 - AI Formating */ 2503 - 0x0000, /* R113 - ADC DAC COMP */ 2504 - 0x0020, /* R114 - AI ADC Control */ 2505 - 0x0020, /* R115 - AI DAC Control */ 2506 - 0x0000, /* R116 */ 2507 - 0x0000, /* R117 */ 2508 - 0x0000, /* R118 */ 2509 - 0x0000, /* R119 */ 2510 - 0x0000, /* R120 */ 2511 - 0x0000, /* R121 */ 2512 - 0x0000, /* R122 */ 2513 - 0x0000, /* R123 */ 2514 - 0x0000, /* R124 */ 2515 - 0x0000, /* R125 */ 2516 - 0x0000, /* R126 */ 2517 - 0x0000, /* R127 */ 2518 - 0x1FFF, /* R128 - GPIO Debounce */ 2519 - 0x0000, /* R129 - GPIO Pin pull up Control */ 2520 - 0x0000, /* R130 - GPIO Pull down Control */ 2521 - 0x0000, /* R131 - GPIO Interrupt Mode */ 2522 - 0x0000, /* R132 */ 2523 - 0x0000, /* R133 - GPIO Control */ 2524 - 0x0BFB, /* R134 - GPIO Configuration (i/o) */ 2525 - 0x0FFF, /* R135 - GPIO Pin Polarity / Type */ 2526 - 0x0000, /* R136 */ 2527 - 0x0000, /* R137 */ 2528 - 0x0000, /* R138 */ 2529 - 0x0000, /* R139 */ 2530 - 0x0300, /* R140 - GPIO Function Select 1 */ 2531 - 0x0000, /* R141 - GPIO Function Select 2 */ 2532 - 0x2300, /* R142 - GPIO Function Select 3 */ 2533 - 0x0003, /* R143 - GPIO Function Select 4 */ 2534 - 0x0000, /* R144 - Digitiser Control (1) */ 2535 - 0x0002, /* R145 - Digitiser Control (2) */ 2536 - 0x0000, /* R146 */ 2537 - 0x0000, /* R147 */ 2538 - 0x0000, /* R148 */ 2539 - 0x0000, /* R149 */ 2540 - 0x0000, /* R150 */ 2541 - 0x0000, /* R151 */ 2542 - 0x7000, /* R152 - AUX1 Readback */ 2543 - 0x7000, /* R153 - AUX2 Readback */ 2544 - 0x7000, /* R154 - AUX3 Readback */ 2545 - 0x7000, /* R155 - AUX4 Readback */ 2546 - 0x0000, /* R156 - USB Voltage Readback */ 2547 - 0x0000, /* R157 - LINE Voltage Readback */ 2548 - 0x0000, /* R158 - BATT Voltage Readback */ 2549 - 0x0000, /* R159 - Chip Temp Readback */ 2550 - 0x0000, /* R160 */ 2551 - 0x0000, /* R161 */ 2552 - 0x0000, /* R162 */ 2553 - 0x0000, /* R163 - Generic Comparator Control */ 2554 - 0x0000, /* R164 - Generic comparator 1 */ 2555 - 0x0000, /* R165 - Generic comparator 2 */ 2556 - 0x0000, /* R166 - Generic comparator 3 */ 2557 - 0x0000, /* R167 - Generic comparator 4 */ 2558 - 0xA00F, /* R168 - Battery Charger Control 1 */ 2559 - 0x0B06, /* R169 - Battery Charger Control 2 */ 2560 - 0x0000, /* R170 - Battery Charger Control 3 */ 2561 - 0x0000, /* R171 */ 2562 - 0x0000, /* R172 - Current Sink Driver A */ 2563 - 0x0000, /* R173 - CSA Flash control */ 2564 - 0x0000, /* R174 - Current Sink Driver B */ 2565 - 0x0000, /* R175 - CSB Flash control */ 2566 - 0x0000, /* R176 - DCDC/LDO requested */ 2567 - 0x032D, /* R177 - DCDC Active options */ 2568 - 0x0000, /* R178 - DCDC Sleep options */ 2569 - 0x0025, /* R179 - Power-check comparator */ 2570 - 0x0062, /* R180 - DCDC1 Control */ 2571 - 0x0400, /* R181 - DCDC1 Timeouts */ 2572 - 0x1006, /* R182 - DCDC1 Low Power */ 2573 - 0x0018, /* R183 - DCDC2 Control */ 2574 - 0x0000, /* R184 - DCDC2 Timeouts */ 2575 - 0x0000, /* R185 */ 2576 - 0x0006, /* R186 - DCDC3 Control */ 2577 - 0x0800, /* R187 - DCDC3 Timeouts */ 2578 - 0x0006, /* R188 - DCDC3 Low Power */ 2579 - 0x0006, /* R189 - DCDC4 Control */ 2580 - 0x0C00, /* R190 - DCDC4 Timeouts */ 2581 - 0x0006, /* R191 - DCDC4 Low Power */ 2582 - 0x0008, /* R192 - DCDC5 Control */ 2583 - 0x0000, /* R193 - DCDC5 Timeouts */ 2584 - 0x0000, /* R194 */ 2585 - 0x0026, /* R195 - DCDC6 Control */ 2586 - 0x1000, /* R196 - DCDC6 Timeouts */ 2587 - 0x0006, /* R197 - DCDC6 Low Power */ 2588 - 0x0000, /* R198 */ 2589 - 0x0003, /* R199 - Limit Switch Control */ 2590 - 0x0002, /* R200 - LDO1 Control */ 2591 - 0x0000, /* R201 - LDO1 Timeouts */ 2592 - 0x001C, /* R202 - LDO1 Low Power */ 2593 - 0x001A, /* R203 - LDO2 Control */ 2594 - 0x0000, /* R204 - LDO2 Timeouts */ 2595 - 0x001C, /* R205 - LDO2 Low Power */ 2596 - 0x001F, /* R206 - LDO3 Control */ 2597 - 0x0000, /* R207 - LDO3 Timeouts */ 2598 - 0x001C, /* R208 - LDO3 Low Power */ 2599 - 0x001F, /* R209 - LDO4 Control */ 2600 - 0x0000, /* R210 - LDO4 Timeouts */ 2601 - 0x001C, /* R211 - LDO4 Low Power */ 2602 - 0x0000, /* R212 */ 2603 - 0x0000, /* R213 */ 2604 - 0x0000, /* R214 */ 2605 - 0x0000, /* R215 - VCC_FAULT Masks */ 2606 - 0x001F, /* R216 - Main Bandgap Control */ 2607 - 0x0000, /* R217 - OSC Control */ 2608 - 0x9000, /* R218 - RTC Tick Control */ 2609 - 0x0000, /* R219 - Security1 */ 2610 - 0x4000, /* R220 */ 2611 - 0x0000, /* R221 */ 2612 - 0x0000, /* R222 */ 2613 - 0x0000, /* R223 */ 2614 - 0x0000, /* R224 - Signal overrides */ 2615 - 0x0000, /* R225 - DCDC/LDO status */ 2616 - 0x0000, /* R226 - Charger Overides/status */ 2617 - 0x0000, /* R227 - misc overrides */ 2618 - 0x0000, /* R228 - Supply overrides/status 1 */ 2619 - 0x0000, /* R229 - Supply overrides/status 2 */ 2620 - 0xE000, /* R230 - GPIO Pin Status */ 2621 - 0x0000, /* R231 - comparotor overrides */ 2622 - 0x0000, /* R232 */ 2623 - 0x0000, /* R233 - State Machine status */ 2624 - 0x1200, /* R234 */ 2625 - 0x0000, /* R235 */ 2626 - 0x8000, /* R236 */ 2627 - 0x0000, /* R237 */ 2628 - 0x0000, /* R238 */ 2629 - 0x0000, /* R239 */ 2630 - 0x0003, /* R240 */ 2631 - 0x0000, /* R241 */ 2632 - 0x0000, /* R242 */ 2633 - 0x0004, /* R243 */ 2634 - 0x0300, /* R244 */ 2635 - 0x0000, /* R245 */ 2636 - 0x0200, /* R246 */ 2637 - 0x0000, /* R247 */ 2638 - 0x1000, /* R248 - DCDC1 Test Controls */ 2639 - 0x5000, /* R249 */ 2640 - 0x1000, /* R250 - DCDC3 Test Controls */ 2641 - 0x1000, /* R251 - DCDC4 Test Controls */ 2642 - 0x5100, /* R252 */ 2643 - 0x1000, /* R253 - DCDC6 Test Controls */ 2644 - }; 2645 - #endif 2646 - 2647 - #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_2 2648 - 2649 - #undef WM8350_HAVE_CONFIG_MODE 2650 - #define WM8350_HAVE_CONFIG_MODE 2651 - 2652 - const u16 wm8352_mode2_defaults[] = { 2653 - 0x6143, /* R0 - Reset/ID */ 2654 - 0x0000, /* R1 - ID */ 2655 - 0x0002, /* R2 - Revision */ 2656 - 0x1C02, /* R3 - System Control 1 */ 2657 - 0x0204, /* R4 - System Control 2 */ 2658 - 0x0000, /* R5 - System Hibernate */ 2659 - 0x8A00, /* R6 - Interface Control */ 2660 - 0x0000, /* R7 */ 2661 - 0x8000, /* R8 - Power mgmt (1) */ 2662 - 0x0000, /* R9 - Power mgmt (2) */ 2663 - 0x0000, /* R10 - Power mgmt (3) */ 2664 - 0x2000, /* R11 - Power mgmt (4) */ 2665 - 0x0E00, /* R12 - Power mgmt (5) */ 2666 - 0x0000, /* R13 - Power mgmt (6) */ 2667 - 0x0000, /* R14 - Power mgmt (7) */ 2668 - 0x0000, /* R15 */ 2669 - 0x0000, /* R16 - RTC Seconds/Minutes */ 2670 - 0x0100, /* R17 - RTC Hours/Day */ 2671 - 0x0101, /* R18 - RTC Date/Month */ 2672 - 0x1400, /* R19 - RTC Year */ 2673 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 2674 - 0x0000, /* R21 - Alarm Hours/Day */ 2675 - 0x0000, /* R22 - Alarm Date/Month */ 2676 - 0x0320, /* R23 - RTC Time Control */ 2677 - 0x0000, /* R24 - System Interrupts */ 2678 - 0x0000, /* R25 - Interrupt Status 1 */ 2679 - 0x0000, /* R26 - Interrupt Status 2 */ 2680 - 0x0000, /* R27 */ 2681 - 0x0000, /* R28 - Under Voltage Interrupt status */ 2682 - 0x0000, /* R29 - Over Current Interrupt status */ 2683 - 0x0000, /* R30 - GPIO Interrupt Status */ 2684 - 0x0000, /* R31 - Comparator Interrupt Status */ 2685 - 0x3FFF, /* R32 - System Interrupts Mask */ 2686 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 2687 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 2688 - 0x0000, /* R35 */ 2689 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 2690 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 2691 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 2692 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 2693 - 0x0040, /* R40 - Clock Control 1 */ 2694 - 0x0000, /* R41 - Clock Control 2 */ 2695 - 0x3A00, /* R42 - FLL Control 1 */ 2696 - 0x7086, /* R43 - FLL Control 2 */ 2697 - 0xC226, /* R44 - FLL Control 3 */ 2698 - 0x0000, /* R45 - FLL Control 4 */ 2699 - 0x0000, /* R46 */ 2700 - 0x0000, /* R47 */ 2701 - 0x0000, /* R48 - DAC Control */ 2702 - 0x0000, /* R49 */ 2703 - 0x00C0, /* R50 - DAC Digital Volume L */ 2704 - 0x00C0, /* R51 - DAC Digital Volume R */ 2705 - 0x0000, /* R52 */ 2706 - 0x0040, /* R53 - DAC LR Rate */ 2707 - 0x0000, /* R54 - DAC Clock Control */ 2708 - 0x0000, /* R55 */ 2709 - 0x0000, /* R56 */ 2710 - 0x0000, /* R57 */ 2711 - 0x4000, /* R58 - DAC Mute */ 2712 - 0x0000, /* R59 - DAC Mute Volume */ 2713 - 0x0000, /* R60 - DAC Side */ 2714 - 0x0000, /* R61 */ 2715 - 0x0000, /* R62 */ 2716 - 0x0000, /* R63 */ 2717 - 0x8000, /* R64 - ADC Control */ 2718 - 0x0000, /* R65 */ 2719 - 0x00C0, /* R66 - ADC Digital Volume L */ 2720 - 0x00C0, /* R67 - ADC Digital Volume R */ 2721 - 0x0000, /* R68 - ADC Divider */ 2722 - 0x0000, /* R69 */ 2723 - 0x0040, /* R70 - ADC LR Rate */ 2724 - 0x0000, /* R71 */ 2725 - 0x0303, /* R72 - Input Control */ 2726 - 0x0000, /* R73 - IN3 Input Control */ 2727 - 0x0000, /* R74 - Mic Bias Control */ 2728 - 0x0000, /* R75 */ 2729 - 0x0000, /* R76 - Output Control */ 2730 - 0x0000, /* R77 - Jack Detect */ 2731 - 0x0000, /* R78 - Anti Pop Control */ 2732 - 0x0000, /* R79 */ 2733 - 0x0040, /* R80 - Left Input Volume */ 2734 - 0x0040, /* R81 - Right Input Volume */ 2735 - 0x0000, /* R82 */ 2736 - 0x0000, /* R83 */ 2737 - 0x0000, /* R84 */ 2738 - 0x0000, /* R85 */ 2739 - 0x0000, /* R86 */ 2740 - 0x0000, /* R87 */ 2741 - 0x0800, /* R88 - Left Mixer Control */ 2742 - 0x1000, /* R89 - Right Mixer Control */ 2743 - 0x0000, /* R90 */ 2744 - 0x0000, /* R91 */ 2745 - 0x0000, /* R92 - OUT3 Mixer Control */ 2746 - 0x0000, /* R93 - OUT4 Mixer Control */ 2747 - 0x0000, /* R94 */ 2748 - 0x0000, /* R95 */ 2749 - 0x0000, /* R96 - Output Left Mixer Volume */ 2750 - 0x0000, /* R97 - Output Right Mixer Volume */ 2751 - 0x0000, /* R98 - Input Mixer Volume L */ 2752 - 0x0000, /* R99 - Input Mixer Volume R */ 2753 - 0x0000, /* R100 - Input Mixer Volume */ 2754 - 0x0000, /* R101 */ 2755 - 0x0000, /* R102 */ 2756 - 0x0000, /* R103 */ 2757 - 0x00E4, /* R104 - OUT1L Volume */ 2758 - 0x00E4, /* R105 - OUT1R Volume */ 2759 - 0x00E4, /* R106 - OUT2L Volume */ 2760 - 0x02E4, /* R107 - OUT2R Volume */ 2761 - 0x0000, /* R108 */ 2762 - 0x0000, /* R109 */ 2763 - 0x0000, /* R110 */ 2764 - 0x0000, /* R111 - BEEP Volume */ 2765 - 0x0A00, /* R112 - AI Formating */ 2766 - 0x0000, /* R113 - ADC DAC COMP */ 2767 - 0x0020, /* R114 - AI ADC Control */ 2768 - 0x0020, /* R115 - AI DAC Control */ 2769 - 0x0000, /* R116 */ 2770 - 0x0000, /* R117 */ 2771 - 0x0000, /* R118 */ 2772 - 0x0000, /* R119 */ 2773 - 0x0000, /* R120 */ 2774 - 0x0000, /* R121 */ 2775 - 0x0000, /* R122 */ 2776 - 0x0000, /* R123 */ 2777 - 0x0000, /* R124 */ 2778 - 0x0000, /* R125 */ 2779 - 0x0000, /* R126 */ 2780 - 0x0000, /* R127 */ 2781 - 0x1FFF, /* R128 - GPIO Debounce */ 2782 - 0x0000, /* R129 - GPIO Pin pull up Control */ 2783 - 0x0110, /* R130 - GPIO Pull down Control */ 2784 - 0x0000, /* R131 - GPIO Interrupt Mode */ 2785 - 0x0000, /* R132 */ 2786 - 0x0000, /* R133 - GPIO Control */ 2787 - 0x09DA, /* R134 - GPIO Configuration (i/o) */ 2788 - 0x0DD6, /* R135 - GPIO Pin Polarity / Type */ 2789 - 0x0000, /* R136 */ 2790 - 0x0000, /* R137 */ 2791 - 0x0000, /* R138 */ 2792 - 0x0000, /* R139 */ 2793 - 0x1310, /* R140 - GPIO Function Select 1 */ 2794 - 0x0033, /* R141 - GPIO Function Select 2 */ 2795 - 0x2000, /* R142 - GPIO Function Select 3 */ 2796 - 0x0000, /* R143 - GPIO Function Select 4 */ 2797 - 0x0000, /* R144 - Digitiser Control (1) */ 2798 - 0x0002, /* R145 - Digitiser Control (2) */ 2799 - 0x0000, /* R146 */ 2800 - 0x0000, /* R147 */ 2801 - 0x0000, /* R148 */ 2802 - 0x0000, /* R149 */ 2803 - 0x0000, /* R150 */ 2804 - 0x0000, /* R151 */ 2805 - 0x7000, /* R152 - AUX1 Readback */ 2806 - 0x7000, /* R153 - AUX2 Readback */ 2807 - 0x7000, /* R154 - AUX3 Readback */ 2808 - 0x7000, /* R155 - AUX4 Readback */ 2809 - 0x0000, /* R156 - USB Voltage Readback */ 2810 - 0x0000, /* R157 - LINE Voltage Readback */ 2811 - 0x0000, /* R158 - BATT Voltage Readback */ 2812 - 0x0000, /* R159 - Chip Temp Readback */ 2813 - 0x0000, /* R160 */ 2814 - 0x0000, /* R161 */ 2815 - 0x0000, /* R162 */ 2816 - 0x0000, /* R163 - Generic Comparator Control */ 2817 - 0x0000, /* R164 - Generic comparator 1 */ 2818 - 0x0000, /* R165 - Generic comparator 2 */ 2819 - 0x0000, /* R166 - Generic comparator 3 */ 2820 - 0x0000, /* R167 - Generic comparator 4 */ 2821 - 0xA00F, /* R168 - Battery Charger Control 1 */ 2822 - 0x0B06, /* R169 - Battery Charger Control 2 */ 2823 - 0x0000, /* R170 - Battery Charger Control 3 */ 2824 - 0x0000, /* R171 */ 2825 - 0x0000, /* R172 - Current Sink Driver A */ 2826 - 0x0000, /* R173 - CSA Flash control */ 2827 - 0x0000, /* R174 - Current Sink Driver B */ 2828 - 0x0000, /* R175 - CSB Flash control */ 2829 - 0x0000, /* R176 - DCDC/LDO requested */ 2830 - 0x032D, /* R177 - DCDC Active options */ 2831 - 0x0000, /* R178 - DCDC Sleep options */ 2832 - 0x0025, /* R179 - Power-check comparator */ 2833 - 0x000E, /* R180 - DCDC1 Control */ 2834 - 0x0800, /* R181 - DCDC1 Timeouts */ 2835 - 0x1006, /* R182 - DCDC1 Low Power */ 2836 - 0x0018, /* R183 - DCDC2 Control */ 2837 - 0x0000, /* R184 - DCDC2 Timeouts */ 2838 - 0x0000, /* R185 */ 2839 - 0x0056, /* R186 - DCDC3 Control */ 2840 - 0x1800, /* R187 - DCDC3 Timeouts */ 2841 - 0x0006, /* R188 - DCDC3 Low Power */ 2842 - 0x000E, /* R189 - DCDC4 Control */ 2843 - 0x1000, /* R190 - DCDC4 Timeouts */ 2844 - 0x0006, /* R191 - DCDC4 Low Power */ 2845 - 0x0008, /* R192 - DCDC5 Control */ 2846 - 0x0000, /* R193 - DCDC5 Timeouts */ 2847 - 0x0000, /* R194 */ 2848 - 0x0026, /* R195 - DCDC6 Control */ 2849 - 0x0C00, /* R196 - DCDC6 Timeouts */ 2850 - 0x0006, /* R197 - DCDC6 Low Power */ 2851 - 0x0000, /* R198 */ 2852 - 0x0003, /* R199 - Limit Switch Control */ 2853 - 0x001C, /* R200 - LDO1 Control */ 2854 - 0x0000, /* R201 - LDO1 Timeouts */ 2855 - 0x001C, /* R202 - LDO1 Low Power */ 2856 - 0x0006, /* R203 - LDO2 Control */ 2857 - 0x0400, /* R204 - LDO2 Timeouts */ 2858 - 0x001C, /* R205 - LDO2 Low Power */ 2859 - 0x001C, /* R206 - LDO3 Control */ 2860 - 0x1400, /* R207 - LDO3 Timeouts */ 2861 - 0x001C, /* R208 - LDO3 Low Power */ 2862 - 0x001A, /* R209 - LDO4 Control */ 2863 - 0x0000, /* R210 - LDO4 Timeouts */ 2864 - 0x001C, /* R211 - LDO4 Low Power */ 2865 - 0x0000, /* R212 */ 2866 - 0x0000, /* R213 */ 2867 - 0x0000, /* R214 */ 2868 - 0x0000, /* R215 - VCC_FAULT Masks */ 2869 - 0x001F, /* R216 - Main Bandgap Control */ 2870 - 0x0000, /* R217 - OSC Control */ 2871 - 0x9000, /* R218 - RTC Tick Control */ 2872 - 0x0000, /* R219 - Security1 */ 2873 - 0x4000, /* R220 */ 2874 - 0x0000, /* R221 */ 2875 - 0x0000, /* R222 */ 2876 - 0x0000, /* R223 */ 2877 - 0x0000, /* R224 - Signal overrides */ 2878 - 0x0000, /* R225 - DCDC/LDO status */ 2879 - 0x0000, /* R226 - Charger Overides/status */ 2880 - 0x0000, /* R227 - misc overrides */ 2881 - 0x0000, /* R228 - Supply overrides/status 1 */ 2882 - 0x0000, /* R229 - Supply overrides/status 2 */ 2883 - 0xE000, /* R230 - GPIO Pin Status */ 2884 - 0x0000, /* R231 - comparotor overrides */ 2885 - 0x0000, /* R232 */ 2886 - 0x0000, /* R233 - State Machine status */ 2887 - 0x1200, /* R234 */ 2888 - 0x0000, /* R235 */ 2889 - 0x8000, /* R236 */ 2890 - 0x0000, /* R237 */ 2891 - 0x0000, /* R238 */ 2892 - 0x0000, /* R239 */ 2893 - 0x0003, /* R240 */ 2894 - 0x0000, /* R241 */ 2895 - 0x0000, /* R242 */ 2896 - 0x0004, /* R243 */ 2897 - 0x0300, /* R244 */ 2898 - 0x0000, /* R245 */ 2899 - 0x0200, /* R246 */ 2900 - 0x0000, /* R247 */ 2901 - 0x1000, /* R248 - DCDC1 Test Controls */ 2902 - 0x5000, /* R249 */ 2903 - 0x1000, /* R250 - DCDC3 Test Controls */ 2904 - 0x1000, /* R251 - DCDC4 Test Controls */ 2905 - 0x5100, /* R252 */ 2906 - 0x1000, /* R253 - DCDC6 Test Controls */ 2907 - }; 2908 - #endif 2909 - 2910 - #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_3 2911 - 2912 - #undef WM8350_HAVE_CONFIG_MODE 2913 - #define WM8350_HAVE_CONFIG_MODE 2914 - 2915 - const u16 wm8352_mode3_defaults[] = { 2916 - 0x6143, /* R0 - Reset/ID */ 2917 - 0x0000, /* R1 - ID */ 2918 - 0x0002, /* R2 - Revision */ 2919 - 0x1C02, /* R3 - System Control 1 */ 2920 - 0x0204, /* R4 - System Control 2 */ 2921 - 0x0000, /* R5 - System Hibernate */ 2922 - 0x8A00, /* R6 - Interface Control */ 2923 - 0x0000, /* R7 */ 2924 - 0x8000, /* R8 - Power mgmt (1) */ 2925 - 0x0000, /* R9 - Power mgmt (2) */ 2926 - 0x0000, /* R10 - Power mgmt (3) */ 2927 - 0x2000, /* R11 - Power mgmt (4) */ 2928 - 0x0E00, /* R12 - Power mgmt (5) */ 2929 - 0x0000, /* R13 - Power mgmt (6) */ 2930 - 0x0000, /* R14 - Power mgmt (7) */ 2931 - 0x0000, /* R15 */ 2932 - 0x0000, /* R16 - RTC Seconds/Minutes */ 2933 - 0x0100, /* R17 - RTC Hours/Day */ 2934 - 0x0101, /* R18 - RTC Date/Month */ 2935 - 0x1400, /* R19 - RTC Year */ 2936 - 0x0000, /* R20 - Alarm Seconds/Minutes */ 2937 - 0x0000, /* R21 - Alarm Hours/Day */ 2938 - 0x0000, /* R22 - Alarm Date/Month */ 2939 - 0x0320, /* R23 - RTC Time Control */ 2940 - 0x0000, /* R24 - System Interrupts */ 2941 - 0x0000, /* R25 - Interrupt Status 1 */ 2942 - 0x0000, /* R26 - Interrupt Status 2 */ 2943 - 0x0000, /* R27 */ 2944 - 0x0000, /* R28 - Under Voltage Interrupt status */ 2945 - 0x0000, /* R29 - Over Current Interrupt status */ 2946 - 0x0000, /* R30 - GPIO Interrupt Status */ 2947 - 0x0000, /* R31 - Comparator Interrupt Status */ 2948 - 0x3FFF, /* R32 - System Interrupts Mask */ 2949 - 0x0000, /* R33 - Interrupt Status 1 Mask */ 2950 - 0x0000, /* R34 - Interrupt Status 2 Mask */ 2951 - 0x0000, /* R35 */ 2952 - 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 2953 - 0x0000, /* R37 - Over Current Interrupt status Mask */ 2954 - 0x0000, /* R38 - GPIO Interrupt Status Mask */ 2955 - 0x0000, /* R39 - Comparator Interrupt Status Mask */ 2956 - 0x0040, /* R40 - Clock Control 1 */ 2957 - 0x0000, /* R41 - Clock Control 2 */ 2958 - 0x3A00, /* R42 - FLL Control 1 */ 2959 - 0x7086, /* R43 - FLL Control 2 */ 2960 - 0xC226, /* R44 - FLL Control 3 */ 2961 - 0x0000, /* R45 - FLL Control 4 */ 2962 - 0x0000, /* R46 */ 2963 - 0x0000, /* R47 */ 2964 - 0x0000, /* R48 - DAC Control */ 2965 - 0x0000, /* R49 */ 2966 - 0x00C0, /* R50 - DAC Digital Volume L */ 2967 - 0x00C0, /* R51 - DAC Digital Volume R */ 2968 - 0x0000, /* R52 */ 2969 - 0x0040, /* R53 - DAC LR Rate */ 2970 - 0x0000, /* R54 - DAC Clock Control */ 2971 - 0x0000, /* R55 */ 2972 - 0x0000, /* R56 */ 2973 - 0x0000, /* R57 */ 2974 - 0x4000, /* R58 - DAC Mute */ 2975 - 0x0000, /* R59 - DAC Mute Volume */ 2976 - 0x0000, /* R60 - DAC Side */ 2977 - 0x0000, /* R61 */ 2978 - 0x0000, /* R62 */ 2979 - 0x0000, /* R63 */ 2980 - 0x8000, /* R64 - ADC Control */ 2981 - 0x0000, /* R65 */ 2982 - 0x00C0, /* R66 - ADC Digital Volume L */ 2983 - 0x00C0, /* R67 - ADC Digital Volume R */ 2984 - 0x0000, /* R68 - ADC Divider */ 2985 - 0x0000, /* R69 */ 2986 - 0x0040, /* R70 - ADC LR Rate */ 2987 - 0x0000, /* R71 */ 2988 - 0x0303, /* R72 - Input Control */ 2989 - 0x0000, /* R73 - IN3 Input Control */ 2990 - 0x0000, /* R74 - Mic Bias Control */ 2991 - 0x0000, /* R75 */ 2992 - 0x0000, /* R76 - Output Control */ 2993 - 0x0000, /* R77 - Jack Detect */ 2994 - 0x0000, /* R78 - Anti Pop Control */ 2995 - 0x0000, /* R79 */ 2996 - 0x0040, /* R80 - Left Input Volume */ 2997 - 0x0040, /* R81 - Right Input Volume */ 2998 - 0x0000, /* R82 */ 2999 - 0x0000, /* R83 */ 3000 - 0x0000, /* R84 */ 3001 - 0x0000, /* R85 */ 3002 - 0x0000, /* R86 */ 3003 - 0x0000, /* R87 */ 3004 - 0x0800, /* R88 - Left Mixer Control */ 3005 - 0x1000, /* R89 - Right Mixer Control */ 3006 - 0x0000, /* R90 */ 3007 - 0x0000, /* R91 */ 3008 - 0x0000, /* R92 - OUT3 Mixer Control */ 3009 - 0x0000, /* R93 - OUT4 Mixer Control */ 3010 - 0x0000, /* R94 */ 3011 - 0x0000, /* R95 */ 3012 - 0x0000, /* R96 - Output Left Mixer Volume */ 3013 - 0x0000, /* R97 - Output Right Mixer Volume */ 3014 - 0x0000, /* R98 - Input Mixer Volume L */ 3015 - 0x0000, /* R99 - Input Mixer Volume R */ 3016 - 0x0000, /* R100 - Input Mixer Volume */ 3017 - 0x0000, /* R101 */ 3018 - 0x0000, /* R102 */ 3019 - 0x0000, /* R103 */ 3020 - 0x00E4, /* R104 - OUT1L Volume */ 3021 - 0x00E4, /* R105 - OUT1R Volume */ 3022 - 0x00E4, /* R106 - OUT2L Volume */ 3023 - 0x02E4, /* R107 - OUT2R Volume */ 3024 - 0x0000, /* R108 */ 3025 - 0x0000, /* R109 */ 3026 - 0x0000, /* R110 */ 3027 - 0x0000, /* R111 - BEEP Volume */ 3028 - 0x0A00, /* R112 - AI Formating */ 3029 - 0x0000, /* R113 - ADC DAC COMP */ 3030 - 0x0020, /* R114 - AI ADC Control */ 3031 - 0x0020, /* R115 - AI DAC Control */ 3032 - 0x0000, /* R116 */ 3033 - 0x0000, /* R117 */ 3034 - 0x0000, /* R118 */ 3035 - 0x0000, /* R119 */ 3036 - 0x0000, /* R120 */ 3037 - 0x0000, /* R121 */ 3038 - 0x0000, /* R122 */ 3039 - 0x0000, /* R123 */ 3040 - 0x0000, /* R124 */ 3041 - 0x0000, /* R125 */ 3042 - 0x0000, /* R126 */ 3043 - 0x0000, /* R127 */ 3044 - 0x1FFF, /* R128 - GPIO Debounce */ 3045 - 0x0010, /* R129 - GPIO Pin pull up Control */ 3046 - 0x0000, /* R130 - GPIO Pull down Control */ 3047 - 0x0000, /* R131 - GPIO Interrupt Mode */ 3048 - 0x0000, /* R132 */ 3049 - 0x0000, /* R133 - GPIO Control */ 3050 - 0x0BFB, /* R134 - GPIO Configuration (i/o) */ 3051 - 0x0FFD, /* R135 - GPIO Pin Polarity / Type */ 3052 - 0x0000, /* R136 */ 3053 - 0x0000, /* R137 */ 3054 - 0x0000, /* R138 */ 3055 - 0x0000, /* R139 */ 3056 - 0x0310, /* R140 - GPIO Function Select 1 */ 3057 - 0x0001, /* R141 - GPIO Function Select 2 */ 3058 - 0x2300, /* R142 - GPIO Function Select 3 */ 3059 - 0x0003, /* R143 - GPIO Function Select 4 */ 3060 - 0x0000, /* R144 - Digitiser Control (1) */ 3061 - 0x0002, /* R145 - Digitiser Control (2) */ 3062 - 0x0000, /* R146 */ 3063 - 0x0000, /* R147 */ 3064 - 0x0000, /* R148 */ 3065 - 0x0000, /* R149 */ 3066 - 0x0000, /* R150 */ 3067 - 0x0000, /* R151 */ 3068 - 0x7000, /* R152 - AUX1 Readback */ 3069 - 0x7000, /* R153 - AUX2 Readback */ 3070 - 0x7000, /* R154 - AUX3 Readback */ 3071 - 0x7000, /* R155 - AUX4 Readback */ 3072 - 0x0000, /* R156 - USB Voltage Readback */ 3073 - 0x0000, /* R157 - LINE Voltage Readback */ 3074 - 0x0000, /* R158 - BATT Voltage Readback */ 3075 - 0x0000, /* R159 - Chip Temp Readback */ 3076 - 0x0000, /* R160 */ 3077 - 0x0000, /* R161 */ 3078 - 0x0000, /* R162 */ 3079 - 0x0000, /* R163 - Generic Comparator Control */ 3080 - 0x0000, /* R164 - Generic comparator 1 */ 3081 - 0x0000, /* R165 - Generic comparator 2 */ 3082 - 0x0000, /* R166 - Generic comparator 3 */ 3083 - 0x0000, /* R167 - Generic comparator 4 */ 3084 - 0xA00F, /* R168 - Battery Charger Control 1 */ 3085 - 0x0B06, /* R169 - Battery Charger Control 2 */ 3086 - 0x0000, /* R170 - Battery Charger Control 3 */ 3087 - 0x0000, /* R171 */ 3088 - 0x0000, /* R172 - Current Sink Driver A */ 3089 - 0x0000, /* R173 - CSA Flash control */ 3090 - 0x0000, /* R174 - Current Sink Driver B */ 3091 - 0x0000, /* R175 - CSB Flash control */ 3092 - 0x0000, /* R176 - DCDC/LDO requested */ 3093 - 0x032D, /* R177 - DCDC Active options */ 3094 - 0x0000, /* R178 - DCDC Sleep options */ 3095 - 0x0025, /* R179 - Power-check comparator */ 3096 - 0x0006, /* R180 - DCDC1 Control */ 3097 - 0x0400, /* R181 - DCDC1 Timeouts */ 3098 - 0x1006, /* R182 - DCDC1 Low Power */ 3099 - 0x0018, /* R183 - DCDC2 Control */ 3100 - 0x0000, /* R184 - DCDC2 Timeouts */ 3101 - 0x0000, /* R185 */ 3102 - 0x0050, /* R186 - DCDC3 Control */ 3103 - 0x0C00, /* R187 - DCDC3 Timeouts */ 3104 - 0x0006, /* R188 - DCDC3 Low Power */ 3105 - 0x000E, /* R189 - DCDC4 Control */ 3106 - 0x0400, /* R190 - DCDC4 Timeouts */ 3107 - 0x0006, /* R191 - DCDC4 Low Power */ 3108 - 0x0008, /* R192 - DCDC5 Control */ 3109 - 0x0000, /* R193 - DCDC5 Timeouts */ 3110 - 0x0000, /* R194 */ 3111 - 0x0029, /* R195 - DCDC6 Control */ 3112 - 0x0800, /* R196 - DCDC6 Timeouts */ 3113 - 0x0006, /* R197 - DCDC6 Low Power */ 3114 - 0x0000, /* R198 */ 3115 - 0x0003, /* R199 - Limit Switch Control */ 3116 - 0x001D, /* R200 - LDO1 Control */ 3117 - 0x1000, /* R201 - LDO1 Timeouts */ 3118 - 0x001C, /* R202 - LDO1 Low Power */ 3119 - 0x0017, /* R203 - LDO2 Control */ 3120 - 0x1000, /* R204 - LDO2 Timeouts */ 3121 - 0x001C, /* R205 - LDO2 Low Power */ 3122 - 0x0006, /* R206 - LDO3 Control */ 3123 - 0x1000, /* R207 - LDO3 Timeouts */ 3124 - 0x001C, /* R208 - LDO3 Low Power */ 3125 - 0x0010, /* R209 - LDO4 Control */ 3126 - 0x1000, /* R210 - LDO4 Timeouts */ 3127 - 0x001C, /* R211 - LDO4 Low Power */ 3128 - 0x0000, /* R212 */ 3129 - 0x0000, /* R213 */ 3130 - 0x0000, /* R214 */ 3131 - 0x0000, /* R215 - VCC_FAULT Masks */ 3132 - 0x001F, /* R216 - Main Bandgap Control */ 3133 - 0x0000, /* R217 - OSC Control */ 3134 - 0x9000, /* R218 - RTC Tick Control */ 3135 - 0x0000, /* R219 - Security1 */ 3136 - 0x4000, /* R220 */ 3137 - 0x0000, /* R221 */ 3138 - 0x0000, /* R222 */ 3139 - 0x0000, /* R223 */ 3140 - 0x0000, /* R224 - Signal overrides */ 3141 - 0x0000, /* R225 - DCDC/LDO status */ 3142 - 0x0000, /* R226 - Charger Overides/status */ 3143 - 0x0000, /* R227 - misc overrides */ 3144 - 0x0000, /* R228 - Supply overrides/status 1 */ 3145 - 0x0000, /* R229 - Supply overrides/status 2 */ 3146 - 0xE000, /* R230 - GPIO Pin Status */ 3147 - 0x0000, /* R231 - comparotor overrides */ 3148 - 0x0000, /* R232 */ 3149 - 0x0000, /* R233 - State Machine status */ 3150 - 0x1200, /* R234 */ 3151 - 0x0000, /* R235 */ 3152 - 0x8000, /* R236 */ 3153 - 0x0000, /* R237 */ 3154 - 0x0000, /* R238 */ 3155 - 0x0000, /* R239 */ 3156 - 0x0003, /* R240 */ 3157 - 0x0000, /* R241 */ 3158 - 0x0000, /* R242 */ 3159 - 0x0004, /* R243 */ 3160 - 0x0300, /* R244 */ 3161 - 0x0000, /* R245 */ 3162 - 0x0200, /* R246 */ 3163 - 0x0000, /* R247 */ 3164 - 0x1000, /* R248 - DCDC1 Test Controls */ 3165 - 0x5000, /* R249 */ 3166 - 0x1000, /* R250 - DCDC3 Test Controls */ 3167 - 0x1000, /* R251 - DCDC4 Test Controls */ 3168 - 0x5100, /* R252 */ 3169 - 0x1000, /* R253 - DCDC6 Test Controls */ 3170 - }; 3171 - #endif 3172 - 3173 17 /* 3174 18 * Access masks. 3175 19 */ 3176 20 3177 - const struct wm8350_reg_access wm8350_reg_io_map[] = { 21 + static const struct wm8350_reg_access { 22 + u16 readable; /* Mask of readable bits */ 23 + u16 writable; /* Mask of writable bits */ 24 + u16 vol; /* Mask of volatile bits */ 25 + } wm8350_reg_io_map[] = { 3178 26 /* read write volatile */ 3179 - { 0xFFFF, 0xFFFF, 0xFFFF }, /* R0 - Reset/ID */ 3180 - { 0x7CFF, 0x0C00, 0x7FFF }, /* R1 - ID */ 27 + { 0xFFFF, 0xFFFF, 0x0000 }, /* R0 - Reset/ID */ 28 + { 0x7CFF, 0x0C00, 0x0000 }, /* R1 - ID */ 3181 29 { 0x007F, 0x0000, 0x0000 }, /* R2 - ROM Mask ID */ 3182 30 { 0xBE3B, 0xBE3B, 0x8000 }, /* R3 - System Control 1 */ 3183 31 { 0xFEF7, 0xFEF7, 0xF800 }, /* R4 - System Control 2 */
-19
include/linux/mfd/wm8350/core.h
··· 587 587 #define WM8350_NUM_IRQ_REGS 7 588 588 589 589 extern const struct regmap_config wm8350_regmap; 590 - struct wm8350_reg_access { 591 - u16 readable; /* Mask of readable bits */ 592 - u16 writable; /* Mask of writable bits */ 593 - u16 vol; /* Mask of volatile bits */ 594 - }; 595 - extern const struct wm8350_reg_access wm8350_reg_io_map[]; 596 - extern const u16 wm8350_mode0_defaults[]; 597 - extern const u16 wm8350_mode1_defaults[]; 598 - extern const u16 wm8350_mode2_defaults[]; 599 - extern const u16 wm8350_mode3_defaults[]; 600 - extern const u16 wm8351_mode0_defaults[]; 601 - extern const u16 wm8351_mode1_defaults[]; 602 - extern const u16 wm8351_mode2_defaults[]; 603 - extern const u16 wm8351_mode3_defaults[]; 604 - extern const u16 wm8352_mode0_defaults[]; 605 - extern const u16 wm8352_mode1_defaults[]; 606 - extern const u16 wm8352_mode2_defaults[]; 607 - extern const u16 wm8352_mode3_defaults[]; 608 590 609 591 struct wm8350; 610 592 ··· 600 618 601 619 /* device IO */ 602 620 struct regmap *regmap; 603 - u16 *reg_cache; 604 621 bool unlocked; 605 622 606 623 struct mutex auxadc_mutex;