Linux Audio

Check our new training course

In-person Linux kernel drivers training

Jun 16-20, 2025
Register
Loading...
v3.1
 
   1/*
   2 * wm8350-regmap.c  --  Wolfson Microelectronics WM8350 register map
   3 *
   4 * This file splits out the tables describing the defaults and access
   5 * status of the WM8350 registers since they are rather large.
   6 *
   7 * Copyright 2007, 2008 Wolfson Microelectronics PLC.
   8 *
   9 *  This program is free software; you can redistribute  it and/or modify it
  10 *  under  the terms of  the GNU General  Public License as published by the
  11 *  Free Software Foundation;  either version 2 of the  License, or (at your
  12 *  option) any later version.
  13 */
  14
  15#include <linux/mfd/wm8350/core.h>
  16
  17#ifdef CONFIG_MFD_WM8350_CONFIG_MODE_0
  18
  19#undef WM8350_HAVE_CONFIG_MODE
  20#define WM8350_HAVE_CONFIG_MODE
  21
  22const 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
 287const 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
 552const 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
 817const 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
1082const 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
1343const 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
1604const 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
1865const 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
2126const 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
2389const 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
2652const 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
2915const 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/*
3174 * Access masks.
3175 */
3176
3177const struct wm8350_reg_access wm8350_reg_io_map[] = {
 
 
 
 
3178	/*  read    write volatile */
3179	{ 0xFFFF, 0xFFFF, 0xFFFF }, /* R0   - Reset/ID */
3180	{ 0x7CFF, 0x0C00, 0x7FFF }, /* R1   - ID */
3181	{ 0x007F, 0x0000, 0x0000 }, /* R2   - ROM Mask ID */
3182	{ 0xBE3B, 0xBE3B, 0x8000 }, /* R3   - System Control 1 */
3183	{ 0xFEF7, 0xFEF7, 0xF800 }, /* R4   - System Control 2 */
3184	{ 0x80FF, 0x80FF, 0x8000 }, /* R5   - System Hibernate */
3185	{ 0xFB0E, 0xFB0E, 0x0000 }, /* R6   - Interface Control */
3186	{ 0x0000, 0x0000, 0x0000 }, /* R7 */
3187	{ 0xE537, 0xE537, 0xFFFF }, /* R8   - Power mgmt (1) */
3188	{ 0x0FF3, 0x0FF3, 0xFFFF }, /* R9   - Power mgmt (2) */
3189	{ 0x008F, 0x008F, 0xFFFF }, /* R10  - Power mgmt (3) */
3190	{ 0x6D3C, 0x6D3C, 0xFFFF }, /* R11  - Power mgmt (4) */
3191	{ 0x1F8F, 0x1F8F, 0xFFFF }, /* R12  - Power mgmt (5) */
3192	{ 0x8F3F, 0x8F3F, 0xFFFF }, /* R13  - Power mgmt (6) */
3193	{ 0x0003, 0x0003, 0xFFFF }, /* R14  - Power mgmt (7) */
3194	{ 0x0000, 0x0000, 0x0000 }, /* R15 */
3195	{ 0x7F7F, 0x7F7F, 0xFFFF }, /* R16  - RTC Seconds/Minutes */
3196	{ 0x073F, 0x073F, 0xFFFF }, /* R17  - RTC Hours/Day */
3197	{ 0x1F3F, 0x1F3F, 0xFFFF }, /* R18  - RTC Date/Month */
3198	{ 0x3FFF, 0x00FF, 0xFFFF }, /* R19  - RTC Year */
3199	{ 0x7F7F, 0x7F7F, 0x0000 }, /* R20  - Alarm Seconds/Minutes */
3200	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R21  - Alarm Hours/Day */
3201	{ 0x1F3F, 0x1F3F, 0x0000 }, /* R22  - Alarm Date/Month */
3202	{ 0xEF7F, 0xEA7F, 0xFFFF }, /* R23  - RTC Time Control */
3203	{ 0x3BFF, 0x0000, 0xFFFF }, /* R24  - System Interrupts */
3204	{ 0xFEE7, 0x0000, 0xFFFF }, /* R25  - Interrupt Status 1 */
3205	{ 0x35FF, 0x0000, 0xFFFF }, /* R26  - Interrupt Status 2 */
3206	{ 0x0F3F, 0x0000, 0xFFFF }, /* R27  - Power Up Interrupt Status */
3207	{ 0x0F3F, 0x0000, 0xFFFF }, /* R28  - Under Voltage Interrupt status */
3208	{ 0x8000, 0x0000, 0xFFFF }, /* R29  - Over Current Interrupt status */
3209	{ 0x1FFF, 0x0000, 0xFFFF }, /* R30  - GPIO Interrupt Status */
3210	{ 0xEF7F, 0x0000, 0xFFFF }, /* R31  - Comparator Interrupt Status */
3211	{ 0x3FFF, 0x3FFF, 0x0000 }, /* R32  - System Interrupts Mask */
3212	{ 0xFEE7, 0xFEE7, 0x0000 }, /* R33  - Interrupt Status 1 Mask */
3213	{ 0xF5FF, 0xF5FF, 0x0000 }, /* R34  - Interrupt Status 2 Mask */
3214	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R35  - Power Up Interrupt Status Mask */
3215	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R36  - Under Voltage Int status Mask */
3216	{ 0x8000, 0x8000, 0x0000 }, /* R37  - Over Current Int status Mask */
3217	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R38  - GPIO Interrupt Status Mask */
3218	{ 0xEF7F, 0xEF7F, 0x0000 }, /* R39  - Comparator IntStatus Mask */
3219	{ 0xC9F7, 0xC9F7, 0xFFFF }, /* R40  - Clock Control 1 */
3220	{ 0x8001, 0x8001, 0x0000 }, /* R41  - Clock Control 2 */
3221	{ 0xFFF7, 0xFFF7, 0xFFFF }, /* R42  - FLL Control 1 */
3222	{ 0xFBFF, 0xFBFF, 0x0000 }, /* R43  - FLL Control 2 */
3223	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R44  - FLL Control 3 */
3224	{ 0x0033, 0x0033, 0x0000 }, /* R45  - FLL Control 4 */
3225	{ 0x0000, 0x0000, 0x0000 }, /* R46 */
3226	{ 0x0000, 0x0000, 0x0000 }, /* R47 */
3227	{ 0x3033, 0x3033, 0x0000 }, /* R48  - DAC Control */
3228	{ 0x0000, 0x0000, 0x0000 }, /* R49 */
3229	{ 0x81FF, 0x81FF, 0xFFFF }, /* R50  - DAC Digital Volume L */
3230	{ 0x81FF, 0x81FF, 0xFFFF }, /* R51  - DAC Digital Volume R */
3231	{ 0x0000, 0x0000, 0x0000 }, /* R52 */
3232	{ 0x0FFF, 0x0FFF, 0xFFFF }, /* R53  - DAC LR Rate */
3233	{ 0x0017, 0x0017, 0x0000 }, /* R54  - DAC Clock Control */
3234	{ 0x0000, 0x0000, 0x0000 }, /* R55 */
3235	{ 0x0000, 0x0000, 0x0000 }, /* R56 */
3236	{ 0x0000, 0x0000, 0x0000 }, /* R57 */
3237	{ 0x4000, 0x4000, 0x0000 }, /* R58  - DAC Mute */
3238	{ 0x7000, 0x7000, 0x0000 }, /* R59  - DAC Mute Volume */
3239	{ 0x3C00, 0x3C00, 0x0000 }, /* R60  - DAC Side */
3240	{ 0x0000, 0x0000, 0x0000 }, /* R61 */
3241	{ 0x0000, 0x0000, 0x0000 }, /* R62 */
3242	{ 0x0000, 0x0000, 0x0000 }, /* R63 */
3243	{ 0x8303, 0x8303, 0xFFFF }, /* R64  - ADC Control */
3244	{ 0x0000, 0x0000, 0x0000 }, /* R65 */
3245	{ 0x81FF, 0x81FF, 0xFFFF }, /* R66  - ADC Digital Volume L */
3246	{ 0x81FF, 0x81FF, 0xFFFF }, /* R67  - ADC Digital Volume R */
3247	{ 0x0FFF, 0x0FFF, 0x0000 }, /* R68  - ADC Divider */
3248	{ 0x0000, 0x0000, 0x0000 }, /* R69 */
3249	{ 0x0FFF, 0x0FFF, 0xFFFF }, /* R70  - ADC LR Rate */
3250	{ 0x0000, 0x0000, 0x0000 }, /* R71 */
3251	{ 0x0707, 0x0707, 0xFFFF }, /* R72  - Input Control */
3252	{ 0xC0C0, 0xC0C0, 0xFFFF }, /* R73  - IN3 Input Control */
3253	{ 0xC09F, 0xC09F, 0xFFFF }, /* R74  - Mic Bias Control */
3254	{ 0x0000, 0x0000, 0x0000 }, /* R75 */
3255	{ 0x0F15, 0x0F15, 0xFFFF }, /* R76  - Output Control */
3256	{ 0xC000, 0xC000, 0xFFFF }, /* R77  - Jack Detect */
3257	{ 0x03FF, 0x03FF, 0x0000 }, /* R78  - Anti Pop Control */
3258	{ 0x0000, 0x0000, 0x0000 }, /* R79 */
3259	{ 0xE1FC, 0xE1FC, 0x8000 }, /* R80  - Left Input Volume */
3260	{ 0xE1FC, 0xE1FC, 0x8000 }, /* R81  - Right Input Volume */
3261	{ 0x0000, 0x0000, 0x0000 }, /* R82 */
3262	{ 0x0000, 0x0000, 0x0000 }, /* R83 */
3263	{ 0x0000, 0x0000, 0x0000 }, /* R84 */
3264	{ 0x0000, 0x0000, 0x0000 }, /* R85 */
3265	{ 0x0000, 0x0000, 0x0000 }, /* R86 */
3266	{ 0x0000, 0x0000, 0x0000 }, /* R87 */
3267	{ 0x9807, 0x9807, 0xFFFF }, /* R88  - Left Mixer Control */
3268	{ 0x980B, 0x980B, 0xFFFF }, /* R89  - Right Mixer Control */
3269	{ 0x0000, 0x0000, 0x0000 }, /* R90 */
3270	{ 0x0000, 0x0000, 0x0000 }, /* R91 */
3271	{ 0x8909, 0x8909, 0xFFFF }, /* R92  - OUT3 Mixer Control */
3272	{ 0x9E07, 0x9E07, 0xFFFF }, /* R93  - OUT4 Mixer Control */
3273	{ 0x0000, 0x0000, 0x0000 }, /* R94 */
3274	{ 0x0000, 0x0000, 0x0000 }, /* R95 */
3275	{ 0x0EEE, 0x0EEE, 0x0000 }, /* R96  - Output Left Mixer Volume */
3276	{ 0xE0EE, 0xE0EE, 0x0000 }, /* R97  - Output Right Mixer Volume */
3277	{ 0x0E0F, 0x0E0F, 0x0000 }, /* R98  - Input Mixer Volume L */
3278	{ 0xE0E1, 0xE0E1, 0x0000 }, /* R99  - Input Mixer Volume R */
3279	{ 0x800E, 0x800E, 0x0000 }, /* R100 - Input Mixer Volume */
3280	{ 0x0000, 0x0000, 0x0000 }, /* R101 */
3281	{ 0x0000, 0x0000, 0x0000 }, /* R102 */
3282	{ 0x0000, 0x0000, 0x0000 }, /* R103 */
3283	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R104 - LOUT1 Volume */
3284	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R105 - ROUT1 Volume */
3285	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R106 - LOUT2 Volume */
3286	{ 0xE7FC, 0xE7FC, 0xFFFF }, /* R107 - ROUT2 Volume */
3287	{ 0x0000, 0x0000, 0x0000 }, /* R108 */
3288	{ 0x0000, 0x0000, 0x0000 }, /* R109 */
3289	{ 0x0000, 0x0000, 0x0000 }, /* R110 */
3290	{ 0x80E0, 0x80E0, 0xFFFF }, /* R111 - BEEP Volume */
3291	{ 0xBF00, 0xBF00, 0x0000 }, /* R112 - AI Formating */
3292	{ 0x00F1, 0x00F1, 0x0000 }, /* R113 - ADC DAC COMP */
3293	{ 0x00F8, 0x00F8, 0x0000 }, /* R114 - AI ADC Control */
3294	{ 0x40FB, 0x40FB, 0x0000 }, /* R115 - AI DAC Control */
3295	{ 0x7C30, 0x7C30, 0x0000 }, /* R116 - AIF Test */
3296	{ 0x0000, 0x0000, 0x0000 }, /* R117 */
3297	{ 0x0000, 0x0000, 0x0000 }, /* R118 */
3298	{ 0x0000, 0x0000, 0x0000 }, /* R119 */
3299	{ 0x0000, 0x0000, 0x0000 }, /* R120 */
3300	{ 0x0000, 0x0000, 0x0000 }, /* R121 */
3301	{ 0x0000, 0x0000, 0x0000 }, /* R122 */
3302	{ 0x0000, 0x0000, 0x0000 }, /* R123 */
3303	{ 0x0000, 0x0000, 0x0000 }, /* R124 */
3304	{ 0x0000, 0x0000, 0x0000 }, /* R125 */
3305	{ 0x0000, 0x0000, 0x0000 }, /* R126 */
3306	{ 0x0000, 0x0000, 0x0000 }, /* R127 */
3307	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R128 - GPIO Debounce */
3308	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R129 - GPIO Pin pull up Control */
3309	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R130 - GPIO Pull down Control */
3310	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R131 - GPIO Interrupt Mode */
3311	{ 0x0000, 0x0000, 0x0000 }, /* R132 */
3312	{ 0x00C0, 0x00C0, 0x0000 }, /* R133 - GPIO Control */
3313	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R134 - GPIO Configuration (i/o) */
3314	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R135 - GPIO Pin Polarity / Type */
3315	{ 0x0000, 0x0000, 0x0000 }, /* R136 */
3316	{ 0x0000, 0x0000, 0x0000 }, /* R137 */
3317	{ 0x0000, 0x0000, 0x0000 }, /* R138 */
3318	{ 0x0000, 0x0000, 0x0000 }, /* R139 */
3319	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R140 - GPIO Function Select 1 */
3320	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R141 - GPIO Function Select 2 */
3321	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R142 - GPIO Function Select 3 */
3322	{ 0x000F, 0x000F, 0x0000 }, /* R143 - GPIO Function Select 4 */
3323	{ 0xF0FF, 0xF0FF, 0xA000 }, /* R144 - Digitiser Control (1) */
3324	{ 0x3707, 0x3707, 0x0000 }, /* R145 - Digitiser Control (2) */
3325	{ 0x0000, 0x0000, 0x0000 }, /* R146 */
3326	{ 0x0000, 0x0000, 0x0000 }, /* R147 */
3327	{ 0x0000, 0x0000, 0x0000 }, /* R148 */
3328	{ 0x0000, 0x0000, 0x0000 }, /* R149 */
3329	{ 0x0000, 0x0000, 0x0000 }, /* R150 */
3330	{ 0x0000, 0x0000, 0x0000 }, /* R151 */
3331	{ 0x7FFF, 0x7000, 0xFFFF }, /* R152 - AUX1 Readback */
3332	{ 0x7FFF, 0x7000, 0xFFFF }, /* R153 - AUX2 Readback */
3333	{ 0x7FFF, 0x7000, 0xFFFF }, /* R154 - AUX3 Readback */
3334	{ 0x7FFF, 0x7000, 0xFFFF }, /* R155 - AUX4 Readback */
3335	{ 0x0FFF, 0x0000, 0xFFFF }, /* R156 - USB Voltage Readback */
3336	{ 0x0FFF, 0x0000, 0xFFFF }, /* R157 - LINE Voltage Readback */
3337	{ 0x0FFF, 0x0000, 0xFFFF }, /* R158 - BATT Voltage Readback */
3338	{ 0x0FFF, 0x0000, 0xFFFF }, /* R159 - Chip Temp Readback */
3339	{ 0x0000, 0x0000, 0x0000 }, /* R160 */
3340	{ 0x0000, 0x0000, 0x0000 }, /* R161 */
3341	{ 0x0000, 0x0000, 0x0000 }, /* R162 */
3342	{ 0x000F, 0x000F, 0x0000 }, /* R163 - Generic Comparator Control */
3343	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R164 - Generic comparator 1 */
3344	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R165 - Generic comparator 2 */
3345	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R166 - Generic comparator 3 */
3346	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R167 - Generic comparator 4 */
3347	{ 0xBFFF, 0xBFFF, 0x8000 }, /* R168 - Battery Charger Control 1 */
3348	{ 0xFFFF, 0x4FFF, 0xB000 }, /* R169 - Battery Charger Control 2 */
3349	{ 0x007F, 0x007F, 0x0000 }, /* R170 - Battery Charger Control 3 */
3350	{ 0x0000, 0x0000, 0x0000 }, /* R171 */
3351	{ 0x903F, 0x903F, 0xFFFF }, /* R172 - Current Sink Driver A */
3352	{ 0xE333, 0xE333, 0xFFFF }, /* R173 - CSA Flash control */
3353	{ 0x903F, 0x903F, 0xFFFF }, /* R174 - Current Sink Driver B */
3354	{ 0xE333, 0xE333, 0xFFFF }, /* R175 - CSB Flash control */
3355	{ 0x8F3F, 0x8F3F, 0xFFFF }, /* R176 - DCDC/LDO requested */
3356	{ 0x332D, 0x332D, 0x0000 }, /* R177 - DCDC Active options */
3357	{ 0x002D, 0x002D, 0x0000 }, /* R178 - DCDC Sleep options */
3358	{ 0x5177, 0x5177, 0x8000 }, /* R179 - Power-check comparator */
3359	{ 0x047F, 0x047F, 0x0000 }, /* R180 - DCDC1 Control */
3360	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R181 - DCDC1 Timeouts */
3361	{ 0x737F, 0x737F, 0x0000 }, /* R182 - DCDC1 Low Power */
3362	{ 0x535B, 0x535B, 0x0000 }, /* R183 - DCDC2 Control */
3363	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R184 - DCDC2 Timeouts */
3364	{ 0x0000, 0x0000, 0x0000 }, /* R185 */
3365	{ 0x047F, 0x047F, 0x0000 }, /* R186 - DCDC3 Control */
3366	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R187 - DCDC3 Timeouts */
3367	{ 0x737F, 0x737F, 0x0000 }, /* R188 - DCDC3 Low Power */
3368	{ 0x047F, 0x047F, 0x0000 }, /* R189 - DCDC4 Control */
3369	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R190 - DCDC4 Timeouts */
3370	{ 0x737F, 0x737F, 0x0000 }, /* R191 - DCDC4 Low Power */
3371	{ 0x535B, 0x535B, 0x0000 }, /* R192 - DCDC5 Control */
3372	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R193 - DCDC5 Timeouts */
3373	{ 0x0000, 0x0000, 0x0000 }, /* R194 */
3374	{ 0x047F, 0x047F, 0x0000 }, /* R195 - DCDC6 Control */
3375	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R196 - DCDC6 Timeouts */
3376	{ 0x737F, 0x737F, 0x0000 }, /* R197 - DCDC6 Low Power */
3377	{ 0x0000, 0x0000, 0x0000 }, /* R198 */
3378	{ 0xFFD3, 0xFFD3, 0x0000 }, /* R199 - Limit Switch Control */
3379	{ 0x441F, 0x441F, 0x0000 }, /* R200 - LDO1 Control */
3380	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R201 - LDO1 Timeouts */
3381	{ 0x331F, 0x331F, 0x0000 }, /* R202 - LDO1 Low Power */
3382	{ 0x441F, 0x441F, 0x0000 }, /* R203 - LDO2 Control */
3383	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R204 - LDO2 Timeouts */
3384	{ 0x331F, 0x331F, 0x0000 }, /* R205 - LDO2 Low Power */
3385	{ 0x441F, 0x441F, 0x0000 }, /* R206 - LDO3 Control */
3386	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R207 - LDO3 Timeouts */
3387	{ 0x331F, 0x331F, 0x0000 }, /* R208 - LDO3 Low Power */
3388	{ 0x441F, 0x441F, 0x0000 }, /* R209 - LDO4 Control */
3389	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R210 - LDO4 Timeouts */
3390	{ 0x331F, 0x331F, 0x0000 }, /* R211 - LDO4 Low Power */
3391	{ 0x0000, 0x0000, 0x0000 }, /* R212 */
3392	{ 0x0000, 0x0000, 0x0000 }, /* R213 */
3393	{ 0x0000, 0x0000, 0x0000 }, /* R214 */
3394	{ 0x8F3F, 0x8F3F, 0x0000 }, /* R215 - VCC_FAULT Masks */
3395	{ 0xFF3F, 0xE03F, 0x0000 }, /* R216 - Main Bandgap Control */
3396	{ 0xEF2F, 0xE02F, 0x0000 }, /* R217 - OSC Control */
3397	{ 0xF3FF, 0xB3FF, 0xc000 }, /* R218 - RTC Tick Control */
3398	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R219 - Security */
3399	{ 0x09FF, 0x01FF, 0x0000 }, /* R220 - RAM BIST 1 */
3400	{ 0x0000, 0x0000, 0x0000 }, /* R221 */
3401	{ 0xFFFF, 0xFFFF, 0xFFFF }, /* R222 */
3402	{ 0xFFFF, 0xFFFF, 0xFFFF }, /* R223 */
3403	{ 0x0000, 0x0000, 0x0000 }, /* R224 */
3404	{ 0x8F3F, 0x0000, 0xFFFF }, /* R225 - DCDC/LDO status */
3405	{ 0x0000, 0x0000, 0xFFFF }, /* R226 - Charger status */
3406	{ 0x34FE, 0x0000, 0xFFFF }, /* R227 */
3407	{ 0x0000, 0x0000, 0x0000 }, /* R228 */
3408	{ 0x0000, 0x0000, 0x0000 }, /* R229 */
3409	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R230 - GPIO Pin Status */
3410	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R231 */
3411	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R232 */
3412	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R233 */
3413	{ 0x0000, 0x0000, 0x0000 }, /* R234 */
3414	{ 0x0000, 0x0000, 0x0000 }, /* R235 */
3415	{ 0x0000, 0x0000, 0x0000 }, /* R236 */
3416	{ 0x0000, 0x0000, 0x0000 }, /* R237 */
3417	{ 0x0000, 0x0000, 0x0000 }, /* R238 */
3418	{ 0x0000, 0x0000, 0x0000 }, /* R239 */
3419	{ 0x0000, 0x0000, 0x0000 }, /* R240 */
3420	{ 0x0000, 0x0000, 0x0000 }, /* R241 */
3421	{ 0x0000, 0x0000, 0x0000 }, /* R242 */
3422	{ 0x0000, 0x0000, 0x0000 }, /* R243 */
3423	{ 0x0000, 0x0000, 0x0000 }, /* R244 */
3424	{ 0x0000, 0x0000, 0x0000 }, /* R245 */
3425	{ 0x0000, 0x0000, 0x0000 }, /* R246 */
3426	{ 0x0000, 0x0000, 0x0000 }, /* R247 */
3427	{ 0xFFFF, 0x0010, 0xFFFF }, /* R248 */
3428	{ 0x0000, 0x0000, 0x0000 }, /* R249 */
3429	{ 0xFFFF, 0x0010, 0xFFFF }, /* R250 */
3430	{ 0xFFFF, 0x0010, 0xFFFF }, /* R251 */
3431	{ 0x0000, 0x0000, 0x0000 }, /* R252 */
3432	{ 0xFFFF, 0x0010, 0xFFFF }, /* R253 */
3433	{ 0x0000, 0x0000, 0x0000 }, /* R254 */
3434	{ 0x0000, 0x0000, 0x0000 }, /* R255 */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3435};
v5.14.15
  1// SPDX-License-Identifier: GPL-2.0-or-later
  2/*
  3 * wm8350-regmap.c  --  Wolfson Microelectronics WM8350 register map
  4 *
  5 * This file splits out the tables describing the defaults and access
  6 * status of the WM8350 registers since they are rather large.
  7 *
  8 * Copyright 2007, 2008 Wolfson Microelectronics PLC.
 
 
 
 
 
  9 */
 10
 11#include <linux/mfd/wm8350/core.h>
 12
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 13/*
 14 * Access masks.
 15 */
 16
 17static const struct wm8350_reg_access {
 18	u16 readable;		/* Mask of readable bits */
 19	u16 writable;		/* Mask of writable bits */
 20	u16 vol;		/* Mask of volatile bits */
 21} wm8350_reg_io_map[] = {
 22	/*  read    write volatile */
 23	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R0   - Reset/ID */
 24	{ 0x7CFF, 0x0C00, 0x0000 }, /* R1   - ID */
 25	{ 0x007F, 0x0000, 0x0000 }, /* R2   - ROM Mask ID */
 26	{ 0xBE3B, 0xBE3B, 0x8000 }, /* R3   - System Control 1 */
 27	{ 0xFEF7, 0xFEF7, 0xF800 }, /* R4   - System Control 2 */
 28	{ 0x80FF, 0x80FF, 0x8000 }, /* R5   - System Hibernate */
 29	{ 0xFB0E, 0xFB0E, 0x0000 }, /* R6   - Interface Control */
 30	{ 0x0000, 0x0000, 0x0000 }, /* R7 */
 31	{ 0xE537, 0xE537, 0xFFFF }, /* R8   - Power mgmt (1) */
 32	{ 0x0FF3, 0x0FF3, 0xFFFF }, /* R9   - Power mgmt (2) */
 33	{ 0x008F, 0x008F, 0xFFFF }, /* R10  - Power mgmt (3) */
 34	{ 0x6D3C, 0x6D3C, 0xFFFF }, /* R11  - Power mgmt (4) */
 35	{ 0x1F8F, 0x1F8F, 0xFFFF }, /* R12  - Power mgmt (5) */
 36	{ 0x8F3F, 0x8F3F, 0xFFFF }, /* R13  - Power mgmt (6) */
 37	{ 0x0003, 0x0003, 0xFFFF }, /* R14  - Power mgmt (7) */
 38	{ 0x0000, 0x0000, 0x0000 }, /* R15 */
 39	{ 0x7F7F, 0x7F7F, 0xFFFF }, /* R16  - RTC Seconds/Minutes */
 40	{ 0x073F, 0x073F, 0xFFFF }, /* R17  - RTC Hours/Day */
 41	{ 0x1F3F, 0x1F3F, 0xFFFF }, /* R18  - RTC Date/Month */
 42	{ 0x3FFF, 0x00FF, 0xFFFF }, /* R19  - RTC Year */
 43	{ 0x7F7F, 0x7F7F, 0x0000 }, /* R20  - Alarm Seconds/Minutes */
 44	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R21  - Alarm Hours/Day */
 45	{ 0x1F3F, 0x1F3F, 0x0000 }, /* R22  - Alarm Date/Month */
 46	{ 0xEF7F, 0xEA7F, 0xFFFF }, /* R23  - RTC Time Control */
 47	{ 0x3BFF, 0x0000, 0xFFFF }, /* R24  - System Interrupts */
 48	{ 0xFEE7, 0x0000, 0xFFFF }, /* R25  - Interrupt Status 1 */
 49	{ 0x35FF, 0x0000, 0xFFFF }, /* R26  - Interrupt Status 2 */
 50	{ 0x0F3F, 0x0000, 0xFFFF }, /* R27  - Power Up Interrupt Status */
 51	{ 0x0F3F, 0x0000, 0xFFFF }, /* R28  - Under Voltage Interrupt status */
 52	{ 0x8000, 0x0000, 0xFFFF }, /* R29  - Over Current Interrupt status */
 53	{ 0x1FFF, 0x0000, 0xFFFF }, /* R30  - GPIO Interrupt Status */
 54	{ 0xEF7F, 0x0000, 0xFFFF }, /* R31  - Comparator Interrupt Status */
 55	{ 0x3FFF, 0x3FFF, 0x0000 }, /* R32  - System Interrupts Mask */
 56	{ 0xFEE7, 0xFEE7, 0x0000 }, /* R33  - Interrupt Status 1 Mask */
 57	{ 0xF5FF, 0xF5FF, 0x0000 }, /* R34  - Interrupt Status 2 Mask */
 58	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R35  - Power Up Interrupt Status Mask */
 59	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R36  - Under Voltage Int status Mask */
 60	{ 0x8000, 0x8000, 0x0000 }, /* R37  - Over Current Int status Mask */
 61	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R38  - GPIO Interrupt Status Mask */
 62	{ 0xEF7F, 0xEF7F, 0x0000 }, /* R39  - Comparator IntStatus Mask */
 63	{ 0xC9F7, 0xC9F7, 0xFFFF }, /* R40  - Clock Control 1 */
 64	{ 0x8001, 0x8001, 0x0000 }, /* R41  - Clock Control 2 */
 65	{ 0xFFF7, 0xFFF7, 0xFFFF }, /* R42  - FLL Control 1 */
 66	{ 0xFBFF, 0xFBFF, 0x0000 }, /* R43  - FLL Control 2 */
 67	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R44  - FLL Control 3 */
 68	{ 0x0033, 0x0033, 0x0000 }, /* R45  - FLL Control 4 */
 69	{ 0x0000, 0x0000, 0x0000 }, /* R46 */
 70	{ 0x0000, 0x0000, 0x0000 }, /* R47 */
 71	{ 0x3033, 0x3033, 0x0000 }, /* R48  - DAC Control */
 72	{ 0x0000, 0x0000, 0x0000 }, /* R49 */
 73	{ 0x81FF, 0x81FF, 0xFFFF }, /* R50  - DAC Digital Volume L */
 74	{ 0x81FF, 0x81FF, 0xFFFF }, /* R51  - DAC Digital Volume R */
 75	{ 0x0000, 0x0000, 0x0000 }, /* R52 */
 76	{ 0x0FFF, 0x0FFF, 0xFFFF }, /* R53  - DAC LR Rate */
 77	{ 0x0017, 0x0017, 0x0000 }, /* R54  - DAC Clock Control */
 78	{ 0x0000, 0x0000, 0x0000 }, /* R55 */
 79	{ 0x0000, 0x0000, 0x0000 }, /* R56 */
 80	{ 0x0000, 0x0000, 0x0000 }, /* R57 */
 81	{ 0x4000, 0x4000, 0x0000 }, /* R58  - DAC Mute */
 82	{ 0x7000, 0x7000, 0x0000 }, /* R59  - DAC Mute Volume */
 83	{ 0x3C00, 0x3C00, 0x0000 }, /* R60  - DAC Side */
 84	{ 0x0000, 0x0000, 0x0000 }, /* R61 */
 85	{ 0x0000, 0x0000, 0x0000 }, /* R62 */
 86	{ 0x0000, 0x0000, 0x0000 }, /* R63 */
 87	{ 0x8303, 0x8303, 0xFFFF }, /* R64  - ADC Control */
 88	{ 0x0000, 0x0000, 0x0000 }, /* R65 */
 89	{ 0x81FF, 0x81FF, 0xFFFF }, /* R66  - ADC Digital Volume L */
 90	{ 0x81FF, 0x81FF, 0xFFFF }, /* R67  - ADC Digital Volume R */
 91	{ 0x0FFF, 0x0FFF, 0x0000 }, /* R68  - ADC Divider */
 92	{ 0x0000, 0x0000, 0x0000 }, /* R69 */
 93	{ 0x0FFF, 0x0FFF, 0xFFFF }, /* R70  - ADC LR Rate */
 94	{ 0x0000, 0x0000, 0x0000 }, /* R71 */
 95	{ 0x0707, 0x0707, 0xFFFF }, /* R72  - Input Control */
 96	{ 0xC0C0, 0xC0C0, 0xFFFF }, /* R73  - IN3 Input Control */
 97	{ 0xC09F, 0xC09F, 0xFFFF }, /* R74  - Mic Bias Control */
 98	{ 0x0000, 0x0000, 0x0000 }, /* R75 */
 99	{ 0x0F15, 0x0F15, 0xFFFF }, /* R76  - Output Control */
100	{ 0xC000, 0xC000, 0xFFFF }, /* R77  - Jack Detect */
101	{ 0x03FF, 0x03FF, 0x0000 }, /* R78  - Anti Pop Control */
102	{ 0x0000, 0x0000, 0x0000 }, /* R79 */
103	{ 0xE1FC, 0xE1FC, 0x8000 }, /* R80  - Left Input Volume */
104	{ 0xE1FC, 0xE1FC, 0x8000 }, /* R81  - Right Input Volume */
105	{ 0x0000, 0x0000, 0x0000 }, /* R82 */
106	{ 0x0000, 0x0000, 0x0000 }, /* R83 */
107	{ 0x0000, 0x0000, 0x0000 }, /* R84 */
108	{ 0x0000, 0x0000, 0x0000 }, /* R85 */
109	{ 0x0000, 0x0000, 0x0000 }, /* R86 */
110	{ 0x0000, 0x0000, 0x0000 }, /* R87 */
111	{ 0x9807, 0x9807, 0xFFFF }, /* R88  - Left Mixer Control */
112	{ 0x980B, 0x980B, 0xFFFF }, /* R89  - Right Mixer Control */
113	{ 0x0000, 0x0000, 0x0000 }, /* R90 */
114	{ 0x0000, 0x0000, 0x0000 }, /* R91 */
115	{ 0x8909, 0x8909, 0xFFFF }, /* R92  - OUT3 Mixer Control */
116	{ 0x9E07, 0x9E07, 0xFFFF }, /* R93  - OUT4 Mixer Control */
117	{ 0x0000, 0x0000, 0x0000 }, /* R94 */
118	{ 0x0000, 0x0000, 0x0000 }, /* R95 */
119	{ 0x0EEE, 0x0EEE, 0x0000 }, /* R96  - Output Left Mixer Volume */
120	{ 0xE0EE, 0xE0EE, 0x0000 }, /* R97  - Output Right Mixer Volume */
121	{ 0x0E0F, 0x0E0F, 0x0000 }, /* R98  - Input Mixer Volume L */
122	{ 0xE0E1, 0xE0E1, 0x0000 }, /* R99  - Input Mixer Volume R */
123	{ 0x800E, 0x800E, 0x0000 }, /* R100 - Input Mixer Volume */
124	{ 0x0000, 0x0000, 0x0000 }, /* R101 */
125	{ 0x0000, 0x0000, 0x0000 }, /* R102 */
126	{ 0x0000, 0x0000, 0x0000 }, /* R103 */
127	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R104 - LOUT1 Volume */
128	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R105 - ROUT1 Volume */
129	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R106 - LOUT2 Volume */
130	{ 0xE7FC, 0xE7FC, 0xFFFF }, /* R107 - ROUT2 Volume */
131	{ 0x0000, 0x0000, 0x0000 }, /* R108 */
132	{ 0x0000, 0x0000, 0x0000 }, /* R109 */
133	{ 0x0000, 0x0000, 0x0000 }, /* R110 */
134	{ 0x80E0, 0x80E0, 0xFFFF }, /* R111 - BEEP Volume */
135	{ 0xBF00, 0xBF00, 0x0000 }, /* R112 - AI Formating */
136	{ 0x00F1, 0x00F1, 0x0000 }, /* R113 - ADC DAC COMP */
137	{ 0x00F8, 0x00F8, 0x0000 }, /* R114 - AI ADC Control */
138	{ 0x40FB, 0x40FB, 0x0000 }, /* R115 - AI DAC Control */
139	{ 0x7C30, 0x7C30, 0x0000 }, /* R116 - AIF Test */
140	{ 0x0000, 0x0000, 0x0000 }, /* R117 */
141	{ 0x0000, 0x0000, 0x0000 }, /* R118 */
142	{ 0x0000, 0x0000, 0x0000 }, /* R119 */
143	{ 0x0000, 0x0000, 0x0000 }, /* R120 */
144	{ 0x0000, 0x0000, 0x0000 }, /* R121 */
145	{ 0x0000, 0x0000, 0x0000 }, /* R122 */
146	{ 0x0000, 0x0000, 0x0000 }, /* R123 */
147	{ 0x0000, 0x0000, 0x0000 }, /* R124 */
148	{ 0x0000, 0x0000, 0x0000 }, /* R125 */
149	{ 0x0000, 0x0000, 0x0000 }, /* R126 */
150	{ 0x0000, 0x0000, 0x0000 }, /* R127 */
151	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R128 - GPIO Debounce */
152	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R129 - GPIO Pin pull up Control */
153	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R130 - GPIO Pull down Control */
154	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R131 - GPIO Interrupt Mode */
155	{ 0x0000, 0x0000, 0x0000 }, /* R132 */
156	{ 0x00C0, 0x00C0, 0x0000 }, /* R133 - GPIO Control */
157	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R134 - GPIO Configuration (i/o) */
158	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R135 - GPIO Pin Polarity / Type */
159	{ 0x0000, 0x0000, 0x0000 }, /* R136 */
160	{ 0x0000, 0x0000, 0x0000 }, /* R137 */
161	{ 0x0000, 0x0000, 0x0000 }, /* R138 */
162	{ 0x0000, 0x0000, 0x0000 }, /* R139 */
163	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R140 - GPIO Function Select 1 */
164	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R141 - GPIO Function Select 2 */
165	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R142 - GPIO Function Select 3 */
166	{ 0x000F, 0x000F, 0x0000 }, /* R143 - GPIO Function Select 4 */
167	{ 0xF0FF, 0xF0FF, 0xA000 }, /* R144 - Digitiser Control (1) */
168	{ 0x3707, 0x3707, 0x0000 }, /* R145 - Digitiser Control (2) */
169	{ 0x0000, 0x0000, 0x0000 }, /* R146 */
170	{ 0x0000, 0x0000, 0x0000 }, /* R147 */
171	{ 0x0000, 0x0000, 0x0000 }, /* R148 */
172	{ 0x0000, 0x0000, 0x0000 }, /* R149 */
173	{ 0x0000, 0x0000, 0x0000 }, /* R150 */
174	{ 0x0000, 0x0000, 0x0000 }, /* R151 */
175	{ 0x7FFF, 0x7000, 0xFFFF }, /* R152 - AUX1 Readback */
176	{ 0x7FFF, 0x7000, 0xFFFF }, /* R153 - AUX2 Readback */
177	{ 0x7FFF, 0x7000, 0xFFFF }, /* R154 - AUX3 Readback */
178	{ 0x7FFF, 0x7000, 0xFFFF }, /* R155 - AUX4 Readback */
179	{ 0x0FFF, 0x0000, 0xFFFF }, /* R156 - USB Voltage Readback */
180	{ 0x0FFF, 0x0000, 0xFFFF }, /* R157 - LINE Voltage Readback */
181	{ 0x0FFF, 0x0000, 0xFFFF }, /* R158 - BATT Voltage Readback */
182	{ 0x0FFF, 0x0000, 0xFFFF }, /* R159 - Chip Temp Readback */
183	{ 0x0000, 0x0000, 0x0000 }, /* R160 */
184	{ 0x0000, 0x0000, 0x0000 }, /* R161 */
185	{ 0x0000, 0x0000, 0x0000 }, /* R162 */
186	{ 0x000F, 0x000F, 0x0000 }, /* R163 - Generic Comparator Control */
187	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R164 - Generic comparator 1 */
188	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R165 - Generic comparator 2 */
189	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R166 - Generic comparator 3 */
190	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R167 - Generic comparator 4 */
191	{ 0xBFFF, 0xBFFF, 0x8000 }, /* R168 - Battery Charger Control 1 */
192	{ 0xFFFF, 0x4FFF, 0xB000 }, /* R169 - Battery Charger Control 2 */
193	{ 0x007F, 0x007F, 0x0000 }, /* R170 - Battery Charger Control 3 */
194	{ 0x0000, 0x0000, 0x0000 }, /* R171 */
195	{ 0x903F, 0x903F, 0xFFFF }, /* R172 - Current Sink Driver A */
196	{ 0xE333, 0xE333, 0xFFFF }, /* R173 - CSA Flash control */
197	{ 0x903F, 0x903F, 0xFFFF }, /* R174 - Current Sink Driver B */
198	{ 0xE333, 0xE333, 0xFFFF }, /* R175 - CSB Flash control */
199	{ 0x8F3F, 0x8F3F, 0xFFFF }, /* R176 - DCDC/LDO requested */
200	{ 0x332D, 0x332D, 0x0000 }, /* R177 - DCDC Active options */
201	{ 0x002D, 0x002D, 0x0000 }, /* R178 - DCDC Sleep options */
202	{ 0x5177, 0x5177, 0x8000 }, /* R179 - Power-check comparator */
203	{ 0x047F, 0x047F, 0x0000 }, /* R180 - DCDC1 Control */
204	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R181 - DCDC1 Timeouts */
205	{ 0x737F, 0x737F, 0x0000 }, /* R182 - DCDC1 Low Power */
206	{ 0x535B, 0x535B, 0x0000 }, /* R183 - DCDC2 Control */
207	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R184 - DCDC2 Timeouts */
208	{ 0x0000, 0x0000, 0x0000 }, /* R185 */
209	{ 0x047F, 0x047F, 0x0000 }, /* R186 - DCDC3 Control */
210	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R187 - DCDC3 Timeouts */
211	{ 0x737F, 0x737F, 0x0000 }, /* R188 - DCDC3 Low Power */
212	{ 0x047F, 0x047F, 0x0000 }, /* R189 - DCDC4 Control */
213	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R190 - DCDC4 Timeouts */
214	{ 0x737F, 0x737F, 0x0000 }, /* R191 - DCDC4 Low Power */
215	{ 0x535B, 0x535B, 0x0000 }, /* R192 - DCDC5 Control */
216	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R193 - DCDC5 Timeouts */
217	{ 0x0000, 0x0000, 0x0000 }, /* R194 */
218	{ 0x047F, 0x047F, 0x0000 }, /* R195 - DCDC6 Control */
219	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R196 - DCDC6 Timeouts */
220	{ 0x737F, 0x737F, 0x0000 }, /* R197 - DCDC6 Low Power */
221	{ 0x0000, 0x0000, 0x0000 }, /* R198 */
222	{ 0xFFD3, 0xFFD3, 0x0000 }, /* R199 - Limit Switch Control */
223	{ 0x441F, 0x441F, 0x0000 }, /* R200 - LDO1 Control */
224	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R201 - LDO1 Timeouts */
225	{ 0x331F, 0x331F, 0x0000 }, /* R202 - LDO1 Low Power */
226	{ 0x441F, 0x441F, 0x0000 }, /* R203 - LDO2 Control */
227	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R204 - LDO2 Timeouts */
228	{ 0x331F, 0x331F, 0x0000 }, /* R205 - LDO2 Low Power */
229	{ 0x441F, 0x441F, 0x0000 }, /* R206 - LDO3 Control */
230	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R207 - LDO3 Timeouts */
231	{ 0x331F, 0x331F, 0x0000 }, /* R208 - LDO3 Low Power */
232	{ 0x441F, 0x441F, 0x0000 }, /* R209 - LDO4 Control */
233	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R210 - LDO4 Timeouts */
234	{ 0x331F, 0x331F, 0x0000 }, /* R211 - LDO4 Low Power */
235	{ 0x0000, 0x0000, 0x0000 }, /* R212 */
236	{ 0x0000, 0x0000, 0x0000 }, /* R213 */
237	{ 0x0000, 0x0000, 0x0000 }, /* R214 */
238	{ 0x8F3F, 0x8F3F, 0x0000 }, /* R215 - VCC_FAULT Masks */
239	{ 0xFF3F, 0xE03F, 0x0000 }, /* R216 - Main Bandgap Control */
240	{ 0xEF2F, 0xE02F, 0x0000 }, /* R217 - OSC Control */
241	{ 0xF3FF, 0xB3FF, 0xc000 }, /* R218 - RTC Tick Control */
242	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R219 - Security */
243	{ 0x09FF, 0x01FF, 0x0000 }, /* R220 - RAM BIST 1 */
244	{ 0x0000, 0x0000, 0x0000 }, /* R221 */
245	{ 0xFFFF, 0xFFFF, 0xFFFF }, /* R222 */
246	{ 0xFFFF, 0xFFFF, 0xFFFF }, /* R223 */
247	{ 0x0000, 0x0000, 0x0000 }, /* R224 */
248	{ 0x8F3F, 0x0000, 0xFFFF }, /* R225 - DCDC/LDO status */
249	{ 0x0000, 0x0000, 0xFFFF }, /* R226 - Charger status */
250	{ 0x34FE, 0x0000, 0xFFFF }, /* R227 */
251	{ 0x0000, 0x0000, 0x0000 }, /* R228 */
252	{ 0x0000, 0x0000, 0x0000 }, /* R229 */
253	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R230 - GPIO Pin Status */
254	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R231 */
255	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R232 */
256	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R233 */
257	{ 0x0000, 0x0000, 0x0000 }, /* R234 */
258	{ 0x0000, 0x0000, 0x0000 }, /* R235 */
259	{ 0x0000, 0x0000, 0x0000 }, /* R236 */
260	{ 0x0000, 0x0000, 0x0000 }, /* R237 */
261	{ 0x0000, 0x0000, 0x0000 }, /* R238 */
262	{ 0x0000, 0x0000, 0x0000 }, /* R239 */
263	{ 0x0000, 0x0000, 0x0000 }, /* R240 */
264	{ 0x0000, 0x0000, 0x0000 }, /* R241 */
265	{ 0x0000, 0x0000, 0x0000 }, /* R242 */
266	{ 0x0000, 0x0000, 0x0000 }, /* R243 */
267	{ 0x0000, 0x0000, 0x0000 }, /* R244 */
268	{ 0x0000, 0x0000, 0x0000 }, /* R245 */
269	{ 0x0000, 0x0000, 0x0000 }, /* R246 */
270	{ 0x0000, 0x0000, 0x0000 }, /* R247 */
271	{ 0xFFFF, 0x0010, 0xFFFF }, /* R248 */
272	{ 0x0000, 0x0000, 0x0000 }, /* R249 */
273	{ 0xFFFF, 0x0010, 0xFFFF }, /* R250 */
274	{ 0xFFFF, 0x0010, 0xFFFF }, /* R251 */
275	{ 0x0000, 0x0000, 0x0000 }, /* R252 */
276	{ 0xFFFF, 0x0010, 0xFFFF }, /* R253 */
277	{ 0x0000, 0x0000, 0x0000 }, /* R254 */
278	{ 0x0000, 0x0000, 0x0000 }, /* R255 */
279};
280
281static bool wm8350_readable(struct device *dev, unsigned int reg)
282{
283	return wm8350_reg_io_map[reg].readable;
284}
285
286static bool wm8350_writeable(struct device *dev, unsigned int reg)
287{
288	struct wm8350 *wm8350 = dev_get_drvdata(dev);
289
290	if (!wm8350->unlocked) {
291		if ((reg >= WM8350_GPIO_FUNCTION_SELECT_1 &&
292		     reg <= WM8350_GPIO_FUNCTION_SELECT_4) ||
293		    (reg >= WM8350_BATTERY_CHARGER_CONTROL_1 &&
294		     reg <= WM8350_BATTERY_CHARGER_CONTROL_3))
295			return false;
296	}
297
298	return wm8350_reg_io_map[reg].writable;
299}
300
301static bool wm8350_volatile(struct device *dev, unsigned int reg)
302{
303	return wm8350_reg_io_map[reg].vol;
304}
305
306static bool wm8350_precious(struct device *dev, unsigned int reg)
307{
308	switch (reg) {
309	case WM8350_SYSTEM_INTERRUPTS:
310	case WM8350_INT_STATUS_1:
311	case WM8350_INT_STATUS_2:
312	case WM8350_POWER_UP_INT_STATUS:
313	case WM8350_UNDER_VOLTAGE_INT_STATUS:
314	case WM8350_OVER_CURRENT_INT_STATUS:
315	case WM8350_GPIO_INT_STATUS:
316	case WM8350_COMPARATOR_INT_STATUS:
317		return true;
318
319	default:
320		return false;
321	}
322}
323
324const struct regmap_config wm8350_regmap = {
325	.reg_bits = 8,
326	.val_bits = 16,
327
328	.cache_type = REGCACHE_RBTREE,
329
330	.max_register = WM8350_MAX_REGISTER,
331	.readable_reg = wm8350_readable,
332	.writeable_reg = wm8350_writeable,
333	.volatile_reg = wm8350_volatile,
334	.precious_reg = wm8350_precious,
335};