xref: /openbmc/linux/drivers/mfd/wm8350-regmap.c (revision a39a021f)
189b4012bSMark Brown /*
289b4012bSMark Brown  * wm8350-regmap.c  --  Wolfson Microelectronics WM8350 register map
389b4012bSMark Brown  *
489b4012bSMark Brown  * This file splits out the tables describing the defaults and access
589b4012bSMark Brown  * status of the WM8350 registers since they are rather large.
689b4012bSMark Brown  *
789b4012bSMark Brown  * Copyright 2007, 2008 Wolfson Microelectronics PLC.
889b4012bSMark Brown  *
989b4012bSMark Brown  *  This program is free software; you can redistribute  it and/or modify it
1089b4012bSMark Brown  *  under  the terms of  the GNU General  Public License as published by the
1189b4012bSMark Brown  *  Free Software Foundation;  either version 2 of the  License, or (at your
1289b4012bSMark Brown  *  option) any later version.
1389b4012bSMark Brown  */
1489b4012bSMark Brown 
1589b4012bSMark Brown #include <linux/mfd/wm8350/core.h>
1689b4012bSMark Brown 
1789b4012bSMark Brown #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_0
1889b4012bSMark Brown 
1989b4012bSMark Brown #undef WM8350_HAVE_CONFIG_MODE
2089b4012bSMark Brown #define WM8350_HAVE_CONFIG_MODE
2189b4012bSMark Brown 
2289b4012bSMark Brown const u16 wm8350_mode0_defaults[] = {
2389b4012bSMark Brown 	0x17FF,     /* R0   - Reset/ID */
2489b4012bSMark Brown 	0x1000,     /* R1   - ID */
2589b4012bSMark Brown 	0x0000,     /* R2 */
2689b4012bSMark Brown 	0x1002,     /* R3   - System Control 1 */
2789b4012bSMark Brown 	0x0004,     /* R4   - System Control 2 */
2889b4012bSMark Brown 	0x0000,     /* R5   - System Hibernate */
2989b4012bSMark Brown 	0x8A00,     /* R6   - Interface Control */
3089b4012bSMark Brown 	0x0000,     /* R7 */
3189b4012bSMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
3289b4012bSMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
3389b4012bSMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
3489b4012bSMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
3589b4012bSMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
3689b4012bSMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
3789b4012bSMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
3889b4012bSMark Brown 	0x0000,     /* R15 */
3989b4012bSMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
4089b4012bSMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
4189b4012bSMark Brown 	0x0101,     /* R18  - RTC Date/Month */
4289b4012bSMark Brown 	0x1400,     /* R19  - RTC Year */
4389b4012bSMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
4489b4012bSMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
4589b4012bSMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
4689b4012bSMark Brown 	0x0320,     /* R23  - RTC Time Control */
4789b4012bSMark Brown 	0x0000,     /* R24  - System Interrupts */
4889b4012bSMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
4989b4012bSMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
5089b4012bSMark Brown 	0x0000,     /* R27  - Power Up Interrupt Status */
5189b4012bSMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
5289b4012bSMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
5389b4012bSMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
5489b4012bSMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
5589b4012bSMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
5689b4012bSMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
5789b4012bSMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
5889b4012bSMark Brown 	0x0000,     /* R35  - Power Up Interrupt Status Mask */
5989b4012bSMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
6089b4012bSMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
6189b4012bSMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
6289b4012bSMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
6389b4012bSMark Brown 	0x0040,     /* R40  - Clock Control 1 */
6489b4012bSMark Brown 	0x0000,     /* R41  - Clock Control 2 */
6589b4012bSMark Brown 	0x3B00,     /* R42  - FLL Control 1 */
6689b4012bSMark Brown 	0x7086,     /* R43  - FLL Control 2 */
6789b4012bSMark Brown 	0xC226,     /* R44  - FLL Control 3 */
6889b4012bSMark Brown 	0x0000,     /* R45  - FLL Control 4 */
6989b4012bSMark Brown 	0x0000,     /* R46 */
7089b4012bSMark Brown 	0x0000,     /* R47 */
7189b4012bSMark Brown 	0x0000,     /* R48  - DAC Control */
7289b4012bSMark Brown 	0x0000,     /* R49 */
7389b4012bSMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
7489b4012bSMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
7589b4012bSMark Brown 	0x0000,     /* R52 */
7689b4012bSMark Brown 	0x0040,     /* R53  - DAC LR Rate */
7789b4012bSMark Brown 	0x0000,     /* R54  - DAC Clock Control */
7889b4012bSMark Brown 	0x0000,     /* R55 */
7989b4012bSMark Brown 	0x0000,     /* R56 */
8089b4012bSMark Brown 	0x0000,     /* R57 */
8189b4012bSMark Brown 	0x4000,     /* R58  - DAC Mute */
8289b4012bSMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
8389b4012bSMark Brown 	0x0000,     /* R60  - DAC Side */
8489b4012bSMark Brown 	0x0000,     /* R61 */
8589b4012bSMark Brown 	0x0000,     /* R62 */
8689b4012bSMark Brown 	0x0000,     /* R63 */
8789b4012bSMark Brown 	0x8000,     /* R64  - ADC Control */
8889b4012bSMark Brown 	0x0000,     /* R65 */
8989b4012bSMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
9089b4012bSMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
9189b4012bSMark Brown 	0x0000,     /* R68  - ADC Divider */
9289b4012bSMark Brown 	0x0000,     /* R69 */
9389b4012bSMark Brown 	0x0040,     /* R70  - ADC LR Rate */
9489b4012bSMark Brown 	0x0000,     /* R71 */
9589b4012bSMark Brown 	0x0303,     /* R72  - Input Control */
9689b4012bSMark Brown 	0x0000,     /* R73  - IN3 Input Control */
9789b4012bSMark Brown 	0x0000,     /* R74  - Mic Bias Control */
9889b4012bSMark Brown 	0x0000,     /* R75 */
9989b4012bSMark Brown 	0x0000,     /* R76  - Output Control */
10089b4012bSMark Brown 	0x0000,     /* R77  - Jack Detect */
10189b4012bSMark Brown 	0x0000,     /* R78  - Anti Pop Control */
10289b4012bSMark Brown 	0x0000,     /* R79 */
10389b4012bSMark Brown 	0x0040,     /* R80  - Left Input Volume */
10489b4012bSMark Brown 	0x0040,     /* R81  - Right Input Volume */
10589b4012bSMark Brown 	0x0000,     /* R82 */
10689b4012bSMark Brown 	0x0000,     /* R83 */
10789b4012bSMark Brown 	0x0000,     /* R84 */
10889b4012bSMark Brown 	0x0000,     /* R85 */
10989b4012bSMark Brown 	0x0000,     /* R86 */
11089b4012bSMark Brown 	0x0000,     /* R87 */
11189b4012bSMark Brown 	0x0800,     /* R88  - Left Mixer Control */
11289b4012bSMark Brown 	0x1000,     /* R89  - Right Mixer Control */
11389b4012bSMark Brown 	0x0000,     /* R90 */
11489b4012bSMark Brown 	0x0000,     /* R91 */
11589b4012bSMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
11689b4012bSMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
11789b4012bSMark Brown 	0x0000,     /* R94 */
11889b4012bSMark Brown 	0x0000,     /* R95 */
11989b4012bSMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
12089b4012bSMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
12189b4012bSMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
12289b4012bSMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
12389b4012bSMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
12489b4012bSMark Brown 	0x0000,     /* R101 */
12589b4012bSMark Brown 	0x0000,     /* R102 */
12689b4012bSMark Brown 	0x0000,     /* R103 */
12789b4012bSMark Brown 	0x00E4,     /* R104 - LOUT1 Volume */
12889b4012bSMark Brown 	0x00E4,     /* R105 - ROUT1 Volume */
12989b4012bSMark Brown 	0x00E4,     /* R106 - LOUT2 Volume */
13089b4012bSMark Brown 	0x02E4,     /* R107 - ROUT2 Volume */
13189b4012bSMark Brown 	0x0000,     /* R108 */
13289b4012bSMark Brown 	0x0000,     /* R109 */
13389b4012bSMark Brown 	0x0000,     /* R110 */
13489b4012bSMark Brown 	0x0000,     /* R111 - BEEP Volume */
13589b4012bSMark Brown 	0x0A00,     /* R112 - AI Formating */
13689b4012bSMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
13789b4012bSMark Brown 	0x0020,     /* R114 - AI ADC Control */
13889b4012bSMark Brown 	0x0020,     /* R115 - AI DAC Control */
13989b4012bSMark Brown 	0x0000,     /* R116 - AIF Test */
14089b4012bSMark Brown 	0x0000,     /* R117 */
14189b4012bSMark Brown 	0x0000,     /* R118 */
14289b4012bSMark Brown 	0x0000,     /* R119 */
14389b4012bSMark Brown 	0x0000,     /* R120 */
14489b4012bSMark Brown 	0x0000,     /* R121 */
14589b4012bSMark Brown 	0x0000,     /* R122 */
14689b4012bSMark Brown 	0x0000,     /* R123 */
14789b4012bSMark Brown 	0x0000,     /* R124 */
14889b4012bSMark Brown 	0x0000,     /* R125 */
14989b4012bSMark Brown 	0x0000,     /* R126 */
15089b4012bSMark Brown 	0x0000,     /* R127 */
15189b4012bSMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
15289b4012bSMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
15389b4012bSMark Brown 	0x03FC,     /* R130 - GPIO Pull down Control */
15489b4012bSMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
15589b4012bSMark Brown 	0x0000,     /* R132 */
15689b4012bSMark Brown 	0x0000,     /* R133 - GPIO Control */
15789b4012bSMark Brown 	0x0FFC,     /* R134 - GPIO Configuration (i/o) */
15889b4012bSMark Brown 	0x0FFC,     /* R135 - GPIO Pin Polarity / Type */
15989b4012bSMark Brown 	0x0000,     /* R136 */
16089b4012bSMark Brown 	0x0000,     /* R137 */
16189b4012bSMark Brown 	0x0000,     /* R138 */
16289b4012bSMark Brown 	0x0000,     /* R139 */
16389b4012bSMark Brown 	0x0013,     /* R140 - GPIO Function Select 1 */
16489b4012bSMark Brown 	0x0000,     /* R141 - GPIO Function Select 2 */
16589b4012bSMark Brown 	0x0000,     /* R142 - GPIO Function Select 3 */
16689b4012bSMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
16789b4012bSMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
16889b4012bSMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
16989b4012bSMark Brown 	0x0000,     /* R146 */
17089b4012bSMark Brown 	0x0000,     /* R147 */
17189b4012bSMark Brown 	0x0000,     /* R148 */
17289b4012bSMark Brown 	0x0000,     /* R149 */
17389b4012bSMark Brown 	0x0000,     /* R150 */
17489b4012bSMark Brown 	0x0000,     /* R151 */
17589b4012bSMark Brown 	0x7000,     /* R152 - AUX1 Readback */
17689b4012bSMark Brown 	0x7000,     /* R153 - AUX2 Readback */
17789b4012bSMark Brown 	0x7000,     /* R154 - AUX3 Readback */
17889b4012bSMark Brown 	0x7000,     /* R155 - AUX4 Readback */
17989b4012bSMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
18089b4012bSMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
18189b4012bSMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
18289b4012bSMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
18389b4012bSMark Brown 	0x0000,     /* R160 */
18489b4012bSMark Brown 	0x0000,     /* R161 */
18589b4012bSMark Brown 	0x0000,     /* R162 */
18689b4012bSMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
18789b4012bSMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
18889b4012bSMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
18989b4012bSMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
19089b4012bSMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
19189b4012bSMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
19289b4012bSMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
19389b4012bSMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
19489b4012bSMark Brown 	0x0000,     /* R171 */
19589b4012bSMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
19689b4012bSMark Brown 	0x0000,     /* R173 - CSA Flash control */
19789b4012bSMark Brown 	0x0000,     /* R174 - Current Sink Driver B */
19889b4012bSMark Brown 	0x0000,     /* R175 - CSB Flash control */
19989b4012bSMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
20089b4012bSMark Brown 	0x002D,     /* R177 - DCDC Active options */
20189b4012bSMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
20289b4012bSMark Brown 	0x0025,     /* R179 - Power-check comparator */
20389b4012bSMark Brown 	0x000E,     /* R180 - DCDC1 Control */
20489b4012bSMark Brown 	0x0000,     /* R181 - DCDC1 Timeouts */
20589b4012bSMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
20689b4012bSMark Brown 	0x0018,     /* R183 - DCDC2 Control */
20789b4012bSMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
20889b4012bSMark Brown 	0x0000,     /* R185 */
20989b4012bSMark Brown 	0x0000,     /* R186 - DCDC3 Control */
21089b4012bSMark Brown 	0x0000,     /* R187 - DCDC3 Timeouts */
21189b4012bSMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
21289b4012bSMark Brown 	0x0000,     /* R189 - DCDC4 Control */
21389b4012bSMark Brown 	0x0000,     /* R190 - DCDC4 Timeouts */
21489b4012bSMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
21589b4012bSMark Brown 	0x0008,     /* R192 - DCDC5 Control */
21689b4012bSMark Brown 	0x0000,     /* R193 - DCDC5 Timeouts */
21789b4012bSMark Brown 	0x0000,     /* R194 */
21889b4012bSMark Brown 	0x0000,     /* R195 - DCDC6 Control */
21989b4012bSMark Brown 	0x0000,     /* R196 - DCDC6 Timeouts */
22089b4012bSMark Brown 	0x0006,     /* R197 - DCDC6 Low Power */
22189b4012bSMark Brown 	0x0000,     /* R198 */
22289b4012bSMark Brown 	0x0003,     /* R199 - Limit Switch Control */
22389b4012bSMark Brown 	0x001C,     /* R200 - LDO1 Control */
22489b4012bSMark Brown 	0x0000,     /* R201 - LDO1 Timeouts */
22589b4012bSMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
22689b4012bSMark Brown 	0x001B,     /* R203 - LDO2 Control */
22789b4012bSMark Brown 	0x0000,     /* R204 - LDO2 Timeouts */
22889b4012bSMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
22989b4012bSMark Brown 	0x001B,     /* R206 - LDO3 Control */
23089b4012bSMark Brown 	0x0000,     /* R207 - LDO3 Timeouts */
23189b4012bSMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
23289b4012bSMark Brown 	0x001B,     /* R209 - LDO4 Control */
23389b4012bSMark Brown 	0x0000,     /* R210 - LDO4 Timeouts */
23489b4012bSMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
23589b4012bSMark Brown 	0x0000,     /* R212 */
23689b4012bSMark Brown 	0x0000,     /* R213 */
23789b4012bSMark Brown 	0x0000,     /* R214 */
23889b4012bSMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
23989b4012bSMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
24089b4012bSMark Brown 	0x0000,     /* R217 - OSC Control */
24189b4012bSMark Brown 	0x9000,     /* R218 - RTC Tick Control */
24289b4012bSMark Brown 	0x0000,     /* R219 */
24389b4012bSMark Brown 	0x4000,     /* R220 - RAM BIST 1 */
24489b4012bSMark Brown 	0x0000,     /* R221 */
24589b4012bSMark Brown 	0x0000,     /* R222 */
24689b4012bSMark Brown 	0x0000,     /* R223 */
24789b4012bSMark Brown 	0x0000,     /* R224 */
24889b4012bSMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
24989b4012bSMark Brown 	0x0000,     /* R226 */
25089b4012bSMark Brown 	0x0000,     /* R227 */
25189b4012bSMark Brown 	0x0000,     /* R228 */
25289b4012bSMark Brown 	0x0000,     /* R229 */
25389b4012bSMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
25489b4012bSMark Brown 	0x0000,     /* R231 */
25589b4012bSMark Brown 	0x0000,     /* R232 */
25689b4012bSMark Brown 	0x0000,     /* R233 */
25789b4012bSMark Brown 	0x0000,     /* R234 */
25889b4012bSMark Brown 	0x0000,     /* R235 */
25989b4012bSMark Brown 	0x0000,     /* R236 */
26089b4012bSMark Brown 	0x0000,     /* R237 */
26189b4012bSMark Brown 	0x0000,     /* R238 */
26289b4012bSMark Brown 	0x0000,     /* R239 */
26389b4012bSMark Brown 	0x0000,     /* R240 */
26489b4012bSMark Brown 	0x0000,     /* R241 */
26589b4012bSMark Brown 	0x0000,     /* R242 */
26689b4012bSMark Brown 	0x0000,     /* R243 */
26789b4012bSMark Brown 	0x0000,     /* R244 */
26889b4012bSMark Brown 	0x0000,     /* R245 */
26989b4012bSMark Brown 	0x0000,     /* R246 */
27089b4012bSMark Brown 	0x0000,     /* R247 */
27189b4012bSMark Brown 	0x0000,     /* R248 */
27289b4012bSMark Brown 	0x0000,     /* R249 */
27389b4012bSMark Brown 	0x0000,     /* R250 */
27489b4012bSMark Brown 	0x0000,     /* R251 */
27589b4012bSMark Brown 	0x0000,     /* R252 */
27689b4012bSMark Brown 	0x0000,     /* R253 */
27789b4012bSMark Brown 	0x0000,     /* R254 */
27889b4012bSMark Brown 	0x0000,     /* R255 */
27989b4012bSMark Brown };
28089b4012bSMark Brown #endif
28189b4012bSMark Brown 
28289b4012bSMark Brown #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_1
28389b4012bSMark Brown 
28489b4012bSMark Brown #undef WM8350_HAVE_CONFIG_MODE
28589b4012bSMark Brown #define WM8350_HAVE_CONFIG_MODE
28689b4012bSMark Brown 
28789b4012bSMark Brown const u16 wm8350_mode1_defaults[] = {
28889b4012bSMark Brown 	0x17FF,     /* R0   - Reset/ID */
28989b4012bSMark Brown 	0x1000,     /* R1   - ID */
29089b4012bSMark Brown 	0x0000,     /* R2 */
29189b4012bSMark Brown 	0x1002,     /* R3   - System Control 1 */
29289b4012bSMark Brown 	0x0014,     /* R4   - System Control 2 */
29389b4012bSMark Brown 	0x0000,     /* R5   - System Hibernate */
29489b4012bSMark Brown 	0x8A00,     /* R6   - Interface Control */
29589b4012bSMark Brown 	0x0000,     /* R7 */
29689b4012bSMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
29789b4012bSMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
29889b4012bSMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
29989b4012bSMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
30089b4012bSMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
30189b4012bSMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
30289b4012bSMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
30389b4012bSMark Brown 	0x0000,     /* R15 */
30489b4012bSMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
30589b4012bSMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
30689b4012bSMark Brown 	0x0101,     /* R18  - RTC Date/Month */
30789b4012bSMark Brown 	0x1400,     /* R19  - RTC Year */
30889b4012bSMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
30989b4012bSMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
31089b4012bSMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
31189b4012bSMark Brown 	0x0320,     /* R23  - RTC Time Control */
31289b4012bSMark Brown 	0x0000,     /* R24  - System Interrupts */
31389b4012bSMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
31489b4012bSMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
31589b4012bSMark Brown 	0x0000,     /* R27  - Power Up Interrupt Status */
31689b4012bSMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
31789b4012bSMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
31889b4012bSMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
31989b4012bSMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
32089b4012bSMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
32189b4012bSMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
32289b4012bSMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
32389b4012bSMark Brown 	0x0000,     /* R35  - Power Up Interrupt Status Mask */
32489b4012bSMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
32589b4012bSMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
32689b4012bSMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
32789b4012bSMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
32889b4012bSMark Brown 	0x0040,     /* R40  - Clock Control 1 */
32989b4012bSMark Brown 	0x0000,     /* R41  - Clock Control 2 */
33089b4012bSMark Brown 	0x3B00,     /* R42  - FLL Control 1 */
33189b4012bSMark Brown 	0x7086,     /* R43  - FLL Control 2 */
33289b4012bSMark Brown 	0xC226,     /* R44  - FLL Control 3 */
33389b4012bSMark Brown 	0x0000,     /* R45  - FLL Control 4 */
33489b4012bSMark Brown 	0x0000,     /* R46 */
33589b4012bSMark Brown 	0x0000,     /* R47 */
33689b4012bSMark Brown 	0x0000,     /* R48  - DAC Control */
33789b4012bSMark Brown 	0x0000,     /* R49 */
33889b4012bSMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
33989b4012bSMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
34089b4012bSMark Brown 	0x0000,     /* R52 */
34189b4012bSMark Brown 	0x0040,     /* R53  - DAC LR Rate */
34289b4012bSMark Brown 	0x0000,     /* R54  - DAC Clock Control */
34389b4012bSMark Brown 	0x0000,     /* R55 */
34489b4012bSMark Brown 	0x0000,     /* R56 */
34589b4012bSMark Brown 	0x0000,     /* R57 */
34689b4012bSMark Brown 	0x4000,     /* R58  - DAC Mute */
34789b4012bSMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
34889b4012bSMark Brown 	0x0000,     /* R60  - DAC Side */
34989b4012bSMark Brown 	0x0000,     /* R61 */
35089b4012bSMark Brown 	0x0000,     /* R62 */
35189b4012bSMark Brown 	0x0000,     /* R63 */
35289b4012bSMark Brown 	0x8000,     /* R64  - ADC Control */
35389b4012bSMark Brown 	0x0000,     /* R65 */
35489b4012bSMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
35589b4012bSMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
35689b4012bSMark Brown 	0x0000,     /* R68  - ADC Divider */
35789b4012bSMark Brown 	0x0000,     /* R69 */
35889b4012bSMark Brown 	0x0040,     /* R70  - ADC LR Rate */
35989b4012bSMark Brown 	0x0000,     /* R71 */
36089b4012bSMark Brown 	0x0303,     /* R72  - Input Control */
36189b4012bSMark Brown 	0x0000,     /* R73  - IN3 Input Control */
36289b4012bSMark Brown 	0x0000,     /* R74  - Mic Bias Control */
36389b4012bSMark Brown 	0x0000,     /* R75 */
36489b4012bSMark Brown 	0x0000,     /* R76  - Output Control */
36589b4012bSMark Brown 	0x0000,     /* R77  - Jack Detect */
36689b4012bSMark Brown 	0x0000,     /* R78  - Anti Pop Control */
36789b4012bSMark Brown 	0x0000,     /* R79 */
36889b4012bSMark Brown 	0x0040,     /* R80  - Left Input Volume */
36989b4012bSMark Brown 	0x0040,     /* R81  - Right Input Volume */
37089b4012bSMark Brown 	0x0000,     /* R82 */
37189b4012bSMark Brown 	0x0000,     /* R83 */
37289b4012bSMark Brown 	0x0000,     /* R84 */
37389b4012bSMark Brown 	0x0000,     /* R85 */
37489b4012bSMark Brown 	0x0000,     /* R86 */
37589b4012bSMark Brown 	0x0000,     /* R87 */
37689b4012bSMark Brown 	0x0800,     /* R88  - Left Mixer Control */
37789b4012bSMark Brown 	0x1000,     /* R89  - Right Mixer Control */
37889b4012bSMark Brown 	0x0000,     /* R90 */
37989b4012bSMark Brown 	0x0000,     /* R91 */
38089b4012bSMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
38189b4012bSMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
38289b4012bSMark Brown 	0x0000,     /* R94 */
38389b4012bSMark Brown 	0x0000,     /* R95 */
38489b4012bSMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
38589b4012bSMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
38689b4012bSMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
38789b4012bSMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
38889b4012bSMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
38989b4012bSMark Brown 	0x0000,     /* R101 */
39089b4012bSMark Brown 	0x0000,     /* R102 */
39189b4012bSMark Brown 	0x0000,     /* R103 */
39289b4012bSMark Brown 	0x00E4,     /* R104 - LOUT1 Volume */
39389b4012bSMark Brown 	0x00E4,     /* R105 - ROUT1 Volume */
39489b4012bSMark Brown 	0x00E4,     /* R106 - LOUT2 Volume */
39589b4012bSMark Brown 	0x02E4,     /* R107 - ROUT2 Volume */
39689b4012bSMark Brown 	0x0000,     /* R108 */
39789b4012bSMark Brown 	0x0000,     /* R109 */
39889b4012bSMark Brown 	0x0000,     /* R110 */
39989b4012bSMark Brown 	0x0000,     /* R111 - BEEP Volume */
40089b4012bSMark Brown 	0x0A00,     /* R112 - AI Formating */
40189b4012bSMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
40289b4012bSMark Brown 	0x0020,     /* R114 - AI ADC Control */
40389b4012bSMark Brown 	0x0020,     /* R115 - AI DAC Control */
40489b4012bSMark Brown 	0x0000,     /* R116 - AIF Test */
40589b4012bSMark Brown 	0x0000,     /* R117 */
40689b4012bSMark Brown 	0x0000,     /* R118 */
40789b4012bSMark Brown 	0x0000,     /* R119 */
40889b4012bSMark Brown 	0x0000,     /* R120 */
40989b4012bSMark Brown 	0x0000,     /* R121 */
41089b4012bSMark Brown 	0x0000,     /* R122 */
41189b4012bSMark Brown 	0x0000,     /* R123 */
41289b4012bSMark Brown 	0x0000,     /* R124 */
41389b4012bSMark Brown 	0x0000,     /* R125 */
41489b4012bSMark Brown 	0x0000,     /* R126 */
41589b4012bSMark Brown 	0x0000,     /* R127 */
41689b4012bSMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
41789b4012bSMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
41889b4012bSMark Brown 	0x03FC,     /* R130 - GPIO Pull down Control */
41989b4012bSMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
42089b4012bSMark Brown 	0x0000,     /* R132 */
42189b4012bSMark Brown 	0x0000,     /* R133 - GPIO Control */
42289b4012bSMark Brown 	0x00FB,     /* R134 - GPIO Configuration (i/o) */
42389b4012bSMark Brown 	0x04FE,     /* R135 - GPIO Pin Polarity / Type */
42489b4012bSMark Brown 	0x0000,     /* R136 */
42589b4012bSMark Brown 	0x0000,     /* R137 */
42689b4012bSMark Brown 	0x0000,     /* R138 */
42789b4012bSMark Brown 	0x0000,     /* R139 */
42889b4012bSMark Brown 	0x0312,     /* R140 - GPIO Function Select 1 */
42989b4012bSMark Brown 	0x1003,     /* R141 - GPIO Function Select 2 */
43089b4012bSMark Brown 	0x1331,     /* R142 - GPIO Function Select 3 */
43189b4012bSMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
43289b4012bSMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
43389b4012bSMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
43489b4012bSMark Brown 	0x0000,     /* R146 */
43589b4012bSMark Brown 	0x0000,     /* R147 */
43689b4012bSMark Brown 	0x0000,     /* R148 */
43789b4012bSMark Brown 	0x0000,     /* R149 */
43889b4012bSMark Brown 	0x0000,     /* R150 */
43989b4012bSMark Brown 	0x0000,     /* R151 */
44089b4012bSMark Brown 	0x7000,     /* R152 - AUX1 Readback */
44189b4012bSMark Brown 	0x7000,     /* R153 - AUX2 Readback */
44289b4012bSMark Brown 	0x7000,     /* R154 - AUX3 Readback */
44389b4012bSMark Brown 	0x7000,     /* R155 - AUX4 Readback */
44489b4012bSMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
44589b4012bSMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
44689b4012bSMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
44789b4012bSMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
44889b4012bSMark Brown 	0x0000,     /* R160 */
44989b4012bSMark Brown 	0x0000,     /* R161 */
45089b4012bSMark Brown 	0x0000,     /* R162 */
45189b4012bSMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
45289b4012bSMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
45389b4012bSMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
45489b4012bSMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
45589b4012bSMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
45689b4012bSMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
45789b4012bSMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
45889b4012bSMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
45989b4012bSMark Brown 	0x0000,     /* R171 */
46089b4012bSMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
46189b4012bSMark Brown 	0x0000,     /* R173 - CSA Flash control */
46289b4012bSMark Brown 	0x0000,     /* R174 - Current Sink Driver B */
46389b4012bSMark Brown 	0x0000,     /* R175 - CSB Flash control */
46489b4012bSMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
46589b4012bSMark Brown 	0x002D,     /* R177 - DCDC Active options */
46689b4012bSMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
46789b4012bSMark Brown 	0x0025,     /* R179 - Power-check comparator */
46889b4012bSMark Brown 	0x0062,     /* R180 - DCDC1 Control */
46989b4012bSMark Brown 	0x0400,     /* R181 - DCDC1 Timeouts */
47089b4012bSMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
47189b4012bSMark Brown 	0x0018,     /* R183 - DCDC2 Control */
47289b4012bSMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
47389b4012bSMark Brown 	0x0000,     /* R185 */
47489b4012bSMark Brown 	0x0026,     /* R186 - DCDC3 Control */
47589b4012bSMark Brown 	0x0400,     /* R187 - DCDC3 Timeouts */
47689b4012bSMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
47789b4012bSMark Brown 	0x0062,     /* R189 - DCDC4 Control */
47889b4012bSMark Brown 	0x0400,     /* R190 - DCDC4 Timeouts */
47989b4012bSMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
48089b4012bSMark Brown 	0x0008,     /* R192 - DCDC5 Control */
48189b4012bSMark Brown 	0x0000,     /* R193 - DCDC5 Timeouts */
48289b4012bSMark Brown 	0x0000,     /* R194 */
48389b4012bSMark Brown 	0x0026,     /* R195 - DCDC6 Control */
48489b4012bSMark Brown 	0x0800,     /* R196 - DCDC6 Timeouts */
48589b4012bSMark Brown 	0x0006,     /* R197 - DCDC6 Low Power */
48689b4012bSMark Brown 	0x0000,     /* R198 */
48789b4012bSMark Brown 	0x0003,     /* R199 - Limit Switch Control */
48889b4012bSMark Brown 	0x0006,     /* R200 - LDO1 Control */
48989b4012bSMark Brown 	0x0400,     /* R201 - LDO1 Timeouts */
49089b4012bSMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
49189b4012bSMark Brown 	0x0006,     /* R203 - LDO2 Control */
49289b4012bSMark Brown 	0x0400,     /* R204 - LDO2 Timeouts */
49389b4012bSMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
49489b4012bSMark Brown 	0x001B,     /* R206 - LDO3 Control */
49589b4012bSMark Brown 	0x0000,     /* R207 - LDO3 Timeouts */
49689b4012bSMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
49789b4012bSMark Brown 	0x001B,     /* R209 - LDO4 Control */
49889b4012bSMark Brown 	0x0000,     /* R210 - LDO4 Timeouts */
49989b4012bSMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
50089b4012bSMark Brown 	0x0000,     /* R212 */
50189b4012bSMark Brown 	0x0000,     /* R213 */
50289b4012bSMark Brown 	0x0000,     /* R214 */
50389b4012bSMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
50489b4012bSMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
50589b4012bSMark Brown 	0x0000,     /* R217 - OSC Control */
50689b4012bSMark Brown 	0x9000,     /* R218 - RTC Tick Control */
50789b4012bSMark Brown 	0x0000,     /* R219 */
50889b4012bSMark Brown 	0x4000,     /* R220 - RAM BIST 1 */
50989b4012bSMark Brown 	0x0000,     /* R221 */
51089b4012bSMark Brown 	0x0000,     /* R222 */
51189b4012bSMark Brown 	0x0000,     /* R223 */
51289b4012bSMark Brown 	0x0000,     /* R224 */
51389b4012bSMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
51489b4012bSMark Brown 	0x0000,     /* R226 */
51589b4012bSMark Brown 	0x0000,     /* R227 */
51689b4012bSMark Brown 	0x0000,     /* R228 */
51789b4012bSMark Brown 	0x0000,     /* R229 */
51889b4012bSMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
51989b4012bSMark Brown 	0x0000,     /* R231 */
52089b4012bSMark Brown 	0x0000,     /* R232 */
52189b4012bSMark Brown 	0x0000,     /* R233 */
52289b4012bSMark Brown 	0x0000,     /* R234 */
52389b4012bSMark Brown 	0x0000,     /* R235 */
52489b4012bSMark Brown 	0x0000,     /* R236 */
52589b4012bSMark Brown 	0x0000,     /* R237 */
52689b4012bSMark Brown 	0x0000,     /* R238 */
52789b4012bSMark Brown 	0x0000,     /* R239 */
52889b4012bSMark Brown 	0x0000,     /* R240 */
52989b4012bSMark Brown 	0x0000,     /* R241 */
53089b4012bSMark Brown 	0x0000,     /* R242 */
53189b4012bSMark Brown 	0x0000,     /* R243 */
53289b4012bSMark Brown 	0x0000,     /* R244 */
53389b4012bSMark Brown 	0x0000,     /* R245 */
53489b4012bSMark Brown 	0x0000,     /* R246 */
53589b4012bSMark Brown 	0x0000,     /* R247 */
53689b4012bSMark Brown 	0x0000,     /* R248 */
53789b4012bSMark Brown 	0x0000,     /* R249 */
53889b4012bSMark Brown 	0x0000,     /* R250 */
53989b4012bSMark Brown 	0x0000,     /* R251 */
54089b4012bSMark Brown 	0x0000,     /* R252 */
54189b4012bSMark Brown 	0x0000,     /* R253 */
54289b4012bSMark Brown 	0x0000,     /* R254 */
54389b4012bSMark Brown 	0x0000,     /* R255 */
54489b4012bSMark Brown };
54589b4012bSMark Brown #endif
54689b4012bSMark Brown 
54789b4012bSMark Brown #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_2
54889b4012bSMark Brown 
54989b4012bSMark Brown #undef WM8350_HAVE_CONFIG_MODE
55089b4012bSMark Brown #define WM8350_HAVE_CONFIG_MODE
55189b4012bSMark Brown 
55289b4012bSMark Brown const u16 wm8350_mode2_defaults[] = {
55389b4012bSMark Brown 	0x17FF,     /* R0   - Reset/ID */
55489b4012bSMark Brown 	0x1000,     /* R1   - ID */
55589b4012bSMark Brown 	0x0000,     /* R2 */
55689b4012bSMark Brown 	0x1002,     /* R3   - System Control 1 */
55789b4012bSMark Brown 	0x0014,     /* R4   - System Control 2 */
55889b4012bSMark Brown 	0x0000,     /* R5   - System Hibernate */
55989b4012bSMark Brown 	0x8A00,     /* R6   - Interface Control */
56089b4012bSMark Brown 	0x0000,     /* R7 */
56189b4012bSMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
56289b4012bSMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
56389b4012bSMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
56489b4012bSMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
56589b4012bSMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
56689b4012bSMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
56789b4012bSMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
56889b4012bSMark Brown 	0x0000,     /* R15 */
56989b4012bSMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
57089b4012bSMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
57189b4012bSMark Brown 	0x0101,     /* R18  - RTC Date/Month */
57289b4012bSMark Brown 	0x1400,     /* R19  - RTC Year */
57389b4012bSMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
57489b4012bSMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
57589b4012bSMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
57689b4012bSMark Brown 	0x0320,     /* R23  - RTC Time Control */
57789b4012bSMark Brown 	0x0000,     /* R24  - System Interrupts */
57889b4012bSMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
57989b4012bSMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
58089b4012bSMark Brown 	0x0000,     /* R27  - Power Up Interrupt Status */
58189b4012bSMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
58289b4012bSMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
58389b4012bSMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
58489b4012bSMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
58589b4012bSMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
58689b4012bSMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
58789b4012bSMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
58889b4012bSMark Brown 	0x0000,     /* R35  - Power Up Interrupt Status Mask */
58989b4012bSMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
59089b4012bSMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
59189b4012bSMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
59289b4012bSMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
59389b4012bSMark Brown 	0x0040,     /* R40  - Clock Control 1 */
59489b4012bSMark Brown 	0x0000,     /* R41  - Clock Control 2 */
59589b4012bSMark Brown 	0x3B00,     /* R42  - FLL Control 1 */
59689b4012bSMark Brown 	0x7086,     /* R43  - FLL Control 2 */
59789b4012bSMark Brown 	0xC226,     /* R44  - FLL Control 3 */
59889b4012bSMark Brown 	0x0000,     /* R45  - FLL Control 4 */
59989b4012bSMark Brown 	0x0000,     /* R46 */
60089b4012bSMark Brown 	0x0000,     /* R47 */
60189b4012bSMark Brown 	0x0000,     /* R48  - DAC Control */
60289b4012bSMark Brown 	0x0000,     /* R49 */
60389b4012bSMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
60489b4012bSMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
60589b4012bSMark Brown 	0x0000,     /* R52 */
60689b4012bSMark Brown 	0x0040,     /* R53  - DAC LR Rate */
60789b4012bSMark Brown 	0x0000,     /* R54  - DAC Clock Control */
60889b4012bSMark Brown 	0x0000,     /* R55 */
60989b4012bSMark Brown 	0x0000,     /* R56 */
61089b4012bSMark Brown 	0x0000,     /* R57 */
61189b4012bSMark Brown 	0x4000,     /* R58  - DAC Mute */
61289b4012bSMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
61389b4012bSMark Brown 	0x0000,     /* R60  - DAC Side */
61489b4012bSMark Brown 	0x0000,     /* R61 */
61589b4012bSMark Brown 	0x0000,     /* R62 */
61689b4012bSMark Brown 	0x0000,     /* R63 */
61789b4012bSMark Brown 	0x8000,     /* R64  - ADC Control */
61889b4012bSMark Brown 	0x0000,     /* R65 */
61989b4012bSMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
62089b4012bSMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
62189b4012bSMark Brown 	0x0000,     /* R68  - ADC Divider */
62289b4012bSMark Brown 	0x0000,     /* R69 */
62389b4012bSMark Brown 	0x0040,     /* R70  - ADC LR Rate */
62489b4012bSMark Brown 	0x0000,     /* R71 */
62589b4012bSMark Brown 	0x0303,     /* R72  - Input Control */
62689b4012bSMark Brown 	0x0000,     /* R73  - IN3 Input Control */
62789b4012bSMark Brown 	0x0000,     /* R74  - Mic Bias Control */
62889b4012bSMark Brown 	0x0000,     /* R75 */
62989b4012bSMark Brown 	0x0000,     /* R76  - Output Control */
63089b4012bSMark Brown 	0x0000,     /* R77  - Jack Detect */
63189b4012bSMark Brown 	0x0000,     /* R78  - Anti Pop Control */
63289b4012bSMark Brown 	0x0000,     /* R79 */
63389b4012bSMark Brown 	0x0040,     /* R80  - Left Input Volume */
63489b4012bSMark Brown 	0x0040,     /* R81  - Right Input Volume */
63589b4012bSMark Brown 	0x0000,     /* R82 */
63689b4012bSMark Brown 	0x0000,     /* R83 */
63789b4012bSMark Brown 	0x0000,     /* R84 */
63889b4012bSMark Brown 	0x0000,     /* R85 */
63989b4012bSMark Brown 	0x0000,     /* R86 */
64089b4012bSMark Brown 	0x0000,     /* R87 */
64189b4012bSMark Brown 	0x0800,     /* R88  - Left Mixer Control */
64289b4012bSMark Brown 	0x1000,     /* R89  - Right Mixer Control */
64389b4012bSMark Brown 	0x0000,     /* R90 */
64489b4012bSMark Brown 	0x0000,     /* R91 */
64589b4012bSMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
64689b4012bSMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
64789b4012bSMark Brown 	0x0000,     /* R94 */
64889b4012bSMark Brown 	0x0000,     /* R95 */
64989b4012bSMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
65089b4012bSMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
65189b4012bSMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
65289b4012bSMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
65389b4012bSMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
65489b4012bSMark Brown 	0x0000,     /* R101 */
65589b4012bSMark Brown 	0x0000,     /* R102 */
65689b4012bSMark Brown 	0x0000,     /* R103 */
65789b4012bSMark Brown 	0x00E4,     /* R104 - LOUT1 Volume */
65889b4012bSMark Brown 	0x00E4,     /* R105 - ROUT1 Volume */
65989b4012bSMark Brown 	0x00E4,     /* R106 - LOUT2 Volume */
66089b4012bSMark Brown 	0x02E4,     /* R107 - ROUT2 Volume */
66189b4012bSMark Brown 	0x0000,     /* R108 */
66289b4012bSMark Brown 	0x0000,     /* R109 */
66389b4012bSMark Brown 	0x0000,     /* R110 */
66489b4012bSMark Brown 	0x0000,     /* R111 - BEEP Volume */
66589b4012bSMark Brown 	0x0A00,     /* R112 - AI Formating */
66689b4012bSMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
66789b4012bSMark Brown 	0x0020,     /* R114 - AI ADC Control */
66889b4012bSMark Brown 	0x0020,     /* R115 - AI DAC Control */
66989b4012bSMark Brown 	0x0000,     /* R116 - AIF Test */
67089b4012bSMark Brown 	0x0000,     /* R117 */
67189b4012bSMark Brown 	0x0000,     /* R118 */
67289b4012bSMark Brown 	0x0000,     /* R119 */
67389b4012bSMark Brown 	0x0000,     /* R120 */
67489b4012bSMark Brown 	0x0000,     /* R121 */
67589b4012bSMark Brown 	0x0000,     /* R122 */
67689b4012bSMark Brown 	0x0000,     /* R123 */
67789b4012bSMark Brown 	0x0000,     /* R124 */
67889b4012bSMark Brown 	0x0000,     /* R125 */
67989b4012bSMark Brown 	0x0000,     /* R126 */
68089b4012bSMark Brown 	0x0000,     /* R127 */
68189b4012bSMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
68289b4012bSMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
68389b4012bSMark Brown 	0x03FC,     /* R130 - GPIO Pull down Control */
68489b4012bSMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
68589b4012bSMark Brown 	0x0000,     /* R132 */
68689b4012bSMark Brown 	0x0000,     /* R133 - GPIO Control */
68789b4012bSMark Brown 	0x08FB,     /* R134 - GPIO Configuration (i/o) */
68889b4012bSMark Brown 	0x0CFE,     /* R135 - GPIO Pin Polarity / Type */
68989b4012bSMark Brown 	0x0000,     /* R136 */
69089b4012bSMark Brown 	0x0000,     /* R137 */
69189b4012bSMark Brown 	0x0000,     /* R138 */
69289b4012bSMark Brown 	0x0000,     /* R139 */
69389b4012bSMark Brown 	0x0312,     /* R140 - GPIO Function Select 1 */
69489b4012bSMark Brown 	0x0003,     /* R141 - GPIO Function Select 2 */
69589b4012bSMark Brown 	0x2331,     /* R142 - GPIO Function Select 3 */
69689b4012bSMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
69789b4012bSMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
69889b4012bSMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
69989b4012bSMark Brown 	0x0000,     /* R146 */
70089b4012bSMark Brown 	0x0000,     /* R147 */
70189b4012bSMark Brown 	0x0000,     /* R148 */
70289b4012bSMark Brown 	0x0000,     /* R149 */
70389b4012bSMark Brown 	0x0000,     /* R150 */
70489b4012bSMark Brown 	0x0000,     /* R151 */
70589b4012bSMark Brown 	0x7000,     /* R152 - AUX1 Readback */
70689b4012bSMark Brown 	0x7000,     /* R153 - AUX2 Readback */
70789b4012bSMark Brown 	0x7000,     /* R154 - AUX3 Readback */
70889b4012bSMark Brown 	0x7000,     /* R155 - AUX4 Readback */
70989b4012bSMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
71089b4012bSMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
71189b4012bSMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
71289b4012bSMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
71389b4012bSMark Brown 	0x0000,     /* R160 */
71489b4012bSMark Brown 	0x0000,     /* R161 */
71589b4012bSMark Brown 	0x0000,     /* R162 */
71689b4012bSMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
71789b4012bSMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
71889b4012bSMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
71989b4012bSMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
72089b4012bSMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
72189b4012bSMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
72289b4012bSMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
72389b4012bSMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
72489b4012bSMark Brown 	0x0000,     /* R171 */
72589b4012bSMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
72689b4012bSMark Brown 	0x0000,     /* R173 - CSA Flash control */
72789b4012bSMark Brown 	0x0000,     /* R174 - Current Sink Driver B */
72889b4012bSMark Brown 	0x0000,     /* R175 - CSB Flash control */
72989b4012bSMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
73089b4012bSMark Brown 	0x002D,     /* R177 - DCDC Active options */
73189b4012bSMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
73289b4012bSMark Brown 	0x0025,     /* R179 - Power-check comparator */
73389b4012bSMark Brown 	0x000E,     /* R180 - DCDC1 Control */
73489b4012bSMark Brown 	0x0400,     /* R181 - DCDC1 Timeouts */
73589b4012bSMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
73689b4012bSMark Brown 	0x0018,     /* R183 - DCDC2 Control */
73789b4012bSMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
73889b4012bSMark Brown 	0x0000,     /* R185 */
73989b4012bSMark Brown 	0x002E,     /* R186 - DCDC3 Control */
74089b4012bSMark Brown 	0x0800,     /* R187 - DCDC3 Timeouts */
74189b4012bSMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
74289b4012bSMark Brown 	0x000E,     /* R189 - DCDC4 Control */
74389b4012bSMark Brown 	0x0800,     /* R190 - DCDC4 Timeouts */
74489b4012bSMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
74589b4012bSMark Brown 	0x0008,     /* R192 - DCDC5 Control */
74689b4012bSMark Brown 	0x0000,     /* R193 - DCDC5 Timeouts */
74789b4012bSMark Brown 	0x0000,     /* R194 */
74889b4012bSMark Brown 	0x0026,     /* R195 - DCDC6 Control */
74989b4012bSMark Brown 	0x0C00,     /* R196 - DCDC6 Timeouts */
75089b4012bSMark Brown 	0x0006,     /* R197 - DCDC6 Low Power */
75189b4012bSMark Brown 	0x0000,     /* R198 */
75289b4012bSMark Brown 	0x0003,     /* R199 - Limit Switch Control */
75389b4012bSMark Brown 	0x001A,     /* R200 - LDO1 Control */
75489b4012bSMark Brown 	0x0800,     /* R201 - LDO1 Timeouts */
75589b4012bSMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
75689b4012bSMark Brown 	0x0010,     /* R203 - LDO2 Control */
75789b4012bSMark Brown 	0x0800,     /* R204 - LDO2 Timeouts */
75889b4012bSMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
75989b4012bSMark Brown 	0x000A,     /* R206 - LDO3 Control */
76089b4012bSMark Brown 	0x0C00,     /* R207 - LDO3 Timeouts */
76189b4012bSMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
76289b4012bSMark Brown 	0x001A,     /* R209 - LDO4 Control */
76389b4012bSMark Brown 	0x0800,     /* R210 - LDO4 Timeouts */
76489b4012bSMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
76589b4012bSMark Brown 	0x0000,     /* R212 */
76689b4012bSMark Brown 	0x0000,     /* R213 */
76789b4012bSMark Brown 	0x0000,     /* R214 */
76889b4012bSMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
76989b4012bSMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
77089b4012bSMark Brown 	0x0000,     /* R217 - OSC Control */
77189b4012bSMark Brown 	0x9000,     /* R218 - RTC Tick Control */
77289b4012bSMark Brown 	0x0000,     /* R219 */
77389b4012bSMark Brown 	0x4000,     /* R220 - RAM BIST 1 */
77489b4012bSMark Brown 	0x0000,     /* R221 */
77589b4012bSMark Brown 	0x0000,     /* R222 */
77689b4012bSMark Brown 	0x0000,     /* R223 */
77789b4012bSMark Brown 	0x0000,     /* R224 */
77889b4012bSMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
77989b4012bSMark Brown 	0x0000,     /* R226 */
78089b4012bSMark Brown 	0x0000,     /* R227 */
78189b4012bSMark Brown 	0x0000,     /* R228 */
78289b4012bSMark Brown 	0x0000,     /* R229 */
78389b4012bSMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
78489b4012bSMark Brown 	0x0000,     /* R231 */
78589b4012bSMark Brown 	0x0000,     /* R232 */
78689b4012bSMark Brown 	0x0000,     /* R233 */
78789b4012bSMark Brown 	0x0000,     /* R234 */
78889b4012bSMark Brown 	0x0000,     /* R235 */
78989b4012bSMark Brown 	0x0000,     /* R236 */
79089b4012bSMark Brown 	0x0000,     /* R237 */
79189b4012bSMark Brown 	0x0000,     /* R238 */
79289b4012bSMark Brown 	0x0000,     /* R239 */
79389b4012bSMark Brown 	0x0000,     /* R240 */
79489b4012bSMark Brown 	0x0000,     /* R241 */
79589b4012bSMark Brown 	0x0000,     /* R242 */
79689b4012bSMark Brown 	0x0000,     /* R243 */
79789b4012bSMark Brown 	0x0000,     /* R244 */
79889b4012bSMark Brown 	0x0000,     /* R245 */
79989b4012bSMark Brown 	0x0000,     /* R246 */
80089b4012bSMark Brown 	0x0000,     /* R247 */
80189b4012bSMark Brown 	0x0000,     /* R248 */
80289b4012bSMark Brown 	0x0000,     /* R249 */
80389b4012bSMark Brown 	0x0000,     /* R250 */
80489b4012bSMark Brown 	0x0000,     /* R251 */
80589b4012bSMark Brown 	0x0000,     /* R252 */
80689b4012bSMark Brown 	0x0000,     /* R253 */
80789b4012bSMark Brown 	0x0000,     /* R254 */
80889b4012bSMark Brown 	0x0000,     /* R255 */
80989b4012bSMark Brown };
81089b4012bSMark Brown #endif
81189b4012bSMark Brown 
81289b4012bSMark Brown #ifdef CONFIG_MFD_WM8350_CONFIG_MODE_3
81389b4012bSMark Brown 
81489b4012bSMark Brown #undef WM8350_HAVE_CONFIG_MODE
81589b4012bSMark Brown #define WM8350_HAVE_CONFIG_MODE
81689b4012bSMark Brown 
81789b4012bSMark Brown const u16 wm8350_mode3_defaults[] = {
81889b4012bSMark Brown 	0x17FF,     /* R0   - Reset/ID */
81989b4012bSMark Brown 	0x1000,     /* R1   - ID */
82089b4012bSMark Brown 	0x0000,     /* R2 */
82189b4012bSMark Brown 	0x1000,     /* R3   - System Control 1 */
82289b4012bSMark Brown 	0x0004,     /* R4   - System Control 2 */
82389b4012bSMark Brown 	0x0000,     /* R5   - System Hibernate */
82489b4012bSMark Brown 	0x8A00,     /* R6   - Interface Control */
82589b4012bSMark Brown 	0x0000,     /* R7 */
82689b4012bSMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
82789b4012bSMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
82889b4012bSMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
82989b4012bSMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
83089b4012bSMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
83189b4012bSMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
83289b4012bSMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
83389b4012bSMark Brown 	0x0000,     /* R15 */
83489b4012bSMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
83589b4012bSMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
83689b4012bSMark Brown 	0x0101,     /* R18  - RTC Date/Month */
83789b4012bSMark Brown 	0x1400,     /* R19  - RTC Year */
83889b4012bSMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
83989b4012bSMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
84089b4012bSMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
84189b4012bSMark Brown 	0x0320,     /* R23  - RTC Time Control */
84289b4012bSMark Brown 	0x0000,     /* R24  - System Interrupts */
84389b4012bSMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
84489b4012bSMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
84589b4012bSMark Brown 	0x0000,     /* R27  - Power Up Interrupt Status */
84689b4012bSMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
84789b4012bSMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
84889b4012bSMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
84989b4012bSMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
85089b4012bSMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
85189b4012bSMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
85289b4012bSMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
85389b4012bSMark Brown 	0x0000,     /* R35  - Power Up Interrupt Status Mask */
85489b4012bSMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
85589b4012bSMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
85689b4012bSMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
85789b4012bSMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
85889b4012bSMark Brown 	0x0040,     /* R40  - Clock Control 1 */
85989b4012bSMark Brown 	0x0000,     /* R41  - Clock Control 2 */
86089b4012bSMark Brown 	0x3B00,     /* R42  - FLL Control 1 */
86189b4012bSMark Brown 	0x7086,     /* R43  - FLL Control 2 */
86289b4012bSMark Brown 	0xC226,     /* R44  - FLL Control 3 */
86389b4012bSMark Brown 	0x0000,     /* R45  - FLL Control 4 */
86489b4012bSMark Brown 	0x0000,     /* R46 */
86589b4012bSMark Brown 	0x0000,     /* R47 */
86689b4012bSMark Brown 	0x0000,     /* R48  - DAC Control */
86789b4012bSMark Brown 	0x0000,     /* R49 */
86889b4012bSMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
86989b4012bSMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
87089b4012bSMark Brown 	0x0000,     /* R52 */
87189b4012bSMark Brown 	0x0040,     /* R53  - DAC LR Rate */
87289b4012bSMark Brown 	0x0000,     /* R54  - DAC Clock Control */
87389b4012bSMark Brown 	0x0000,     /* R55 */
87489b4012bSMark Brown 	0x0000,     /* R56 */
87589b4012bSMark Brown 	0x0000,     /* R57 */
87689b4012bSMark Brown 	0x4000,     /* R58  - DAC Mute */
87789b4012bSMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
87889b4012bSMark Brown 	0x0000,     /* R60  - DAC Side */
87989b4012bSMark Brown 	0x0000,     /* R61 */
88089b4012bSMark Brown 	0x0000,     /* R62 */
88189b4012bSMark Brown 	0x0000,     /* R63 */
88289b4012bSMark Brown 	0x8000,     /* R64  - ADC Control */
88389b4012bSMark Brown 	0x0000,     /* R65 */
88489b4012bSMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
88589b4012bSMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
88689b4012bSMark Brown 	0x0000,     /* R68  - ADC Divider */
88789b4012bSMark Brown 	0x0000,     /* R69 */
88889b4012bSMark Brown 	0x0040,     /* R70  - ADC LR Rate */
88989b4012bSMark Brown 	0x0000,     /* R71 */
89089b4012bSMark Brown 	0x0303,     /* R72  - Input Control */
89189b4012bSMark Brown 	0x0000,     /* R73  - IN3 Input Control */
89289b4012bSMark Brown 	0x0000,     /* R74  - Mic Bias Control */
89389b4012bSMark Brown 	0x0000,     /* R75 */
89489b4012bSMark Brown 	0x0000,     /* R76  - Output Control */
89589b4012bSMark Brown 	0x0000,     /* R77  - Jack Detect */
89689b4012bSMark Brown 	0x0000,     /* R78  - Anti Pop Control */
89789b4012bSMark Brown 	0x0000,     /* R79 */
89889b4012bSMark Brown 	0x0040,     /* R80  - Left Input Volume */
89989b4012bSMark Brown 	0x0040,     /* R81  - Right Input Volume */
90089b4012bSMark Brown 	0x0000,     /* R82 */
90189b4012bSMark Brown 	0x0000,     /* R83 */
90289b4012bSMark Brown 	0x0000,     /* R84 */
90389b4012bSMark Brown 	0x0000,     /* R85 */
90489b4012bSMark Brown 	0x0000,     /* R86 */
90589b4012bSMark Brown 	0x0000,     /* R87 */
90689b4012bSMark Brown 	0x0800,     /* R88  - Left Mixer Control */
90789b4012bSMark Brown 	0x1000,     /* R89  - Right Mixer Control */
90889b4012bSMark Brown 	0x0000,     /* R90 */
90989b4012bSMark Brown 	0x0000,     /* R91 */
91089b4012bSMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
91189b4012bSMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
91289b4012bSMark Brown 	0x0000,     /* R94 */
91389b4012bSMark Brown 	0x0000,     /* R95 */
91489b4012bSMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
91589b4012bSMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
91689b4012bSMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
91789b4012bSMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
91889b4012bSMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
91989b4012bSMark Brown 	0x0000,     /* R101 */
92089b4012bSMark Brown 	0x0000,     /* R102 */
92189b4012bSMark Brown 	0x0000,     /* R103 */
92289b4012bSMark Brown 	0x00E4,     /* R104 - LOUT1 Volume */
92389b4012bSMark Brown 	0x00E4,     /* R105 - ROUT1 Volume */
92489b4012bSMark Brown 	0x00E4,     /* R106 - LOUT2 Volume */
92589b4012bSMark Brown 	0x02E4,     /* R107 - ROUT2 Volume */
92689b4012bSMark Brown 	0x0000,     /* R108 */
92789b4012bSMark Brown 	0x0000,     /* R109 */
92889b4012bSMark Brown 	0x0000,     /* R110 */
92989b4012bSMark Brown 	0x0000,     /* R111 - BEEP Volume */
93089b4012bSMark Brown 	0x0A00,     /* R112 - AI Formating */
93189b4012bSMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
93289b4012bSMark Brown 	0x0020,     /* R114 - AI ADC Control */
93389b4012bSMark Brown 	0x0020,     /* R115 - AI DAC Control */
93489b4012bSMark Brown 	0x0000,     /* R116 - AIF Test */
93589b4012bSMark Brown 	0x0000,     /* R117 */
93689b4012bSMark Brown 	0x0000,     /* R118 */
93789b4012bSMark Brown 	0x0000,     /* R119 */
93889b4012bSMark Brown 	0x0000,     /* R120 */
93989b4012bSMark Brown 	0x0000,     /* R121 */
94089b4012bSMark Brown 	0x0000,     /* R122 */
94189b4012bSMark Brown 	0x0000,     /* R123 */
94289b4012bSMark Brown 	0x0000,     /* R124 */
94389b4012bSMark Brown 	0x0000,     /* R125 */
94489b4012bSMark Brown 	0x0000,     /* R126 */
94589b4012bSMark Brown 	0x0000,     /* R127 */
94689b4012bSMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
94789b4012bSMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
94889b4012bSMark Brown 	0x03FC,     /* R130 - GPIO Pull down Control */
94989b4012bSMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
95089b4012bSMark Brown 	0x0000,     /* R132 */
95189b4012bSMark Brown 	0x0000,     /* R133 - GPIO Control */
95289b4012bSMark Brown 	0x0A7B,     /* R134 - GPIO Configuration (i/o) */
95389b4012bSMark Brown 	0x06FE,     /* R135 - GPIO Pin Polarity / Type */
95489b4012bSMark Brown 	0x0000,     /* R136 */
95589b4012bSMark Brown 	0x0000,     /* R137 */
95689b4012bSMark Brown 	0x0000,     /* R138 */
95789b4012bSMark Brown 	0x0000,     /* R139 */
95889b4012bSMark Brown 	0x1312,     /* R140 - GPIO Function Select 1 */
95989b4012bSMark Brown 	0x1030,     /* R141 - GPIO Function Select 2 */
96089b4012bSMark Brown 	0x2231,     /* R142 - GPIO Function Select 3 */
96189b4012bSMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
96289b4012bSMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
96389b4012bSMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
96489b4012bSMark Brown 	0x0000,     /* R146 */
96589b4012bSMark Brown 	0x0000,     /* R147 */
96689b4012bSMark Brown 	0x0000,     /* R148 */
96789b4012bSMark Brown 	0x0000,     /* R149 */
96889b4012bSMark Brown 	0x0000,     /* R150 */
96989b4012bSMark Brown 	0x0000,     /* R151 */
97089b4012bSMark Brown 	0x7000,     /* R152 - AUX1 Readback */
97189b4012bSMark Brown 	0x7000,     /* R153 - AUX2 Readback */
97289b4012bSMark Brown 	0x7000,     /* R154 - AUX3 Readback */
97389b4012bSMark Brown 	0x7000,     /* R155 - AUX4 Readback */
97489b4012bSMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
97589b4012bSMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
97689b4012bSMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
97789b4012bSMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
97889b4012bSMark Brown 	0x0000,     /* R160 */
97989b4012bSMark Brown 	0x0000,     /* R161 */
98089b4012bSMark Brown 	0x0000,     /* R162 */
98189b4012bSMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
98289b4012bSMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
98389b4012bSMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
98489b4012bSMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
98589b4012bSMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
98689b4012bSMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
98789b4012bSMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
98889b4012bSMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
98989b4012bSMark Brown 	0x0000,     /* R171 */
99089b4012bSMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
99189b4012bSMark Brown 	0x0000,     /* R173 - CSA Flash control */
99289b4012bSMark Brown 	0x0000,     /* R174 - Current Sink Driver B */
99389b4012bSMark Brown 	0x0000,     /* R175 - CSB Flash control */
99489b4012bSMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
99589b4012bSMark Brown 	0x002D,     /* R177 - DCDC Active options */
99689b4012bSMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
99789b4012bSMark Brown 	0x0025,     /* R179 - Power-check comparator */
99889b4012bSMark Brown 	0x000E,     /* R180 - DCDC1 Control */
99989b4012bSMark Brown 	0x0400,     /* R181 - DCDC1 Timeouts */
100089b4012bSMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
100189b4012bSMark Brown 	0x0018,     /* R183 - DCDC2 Control */
100289b4012bSMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
100389b4012bSMark Brown 	0x0000,     /* R185 */
100489b4012bSMark Brown 	0x000E,     /* R186 - DCDC3 Control */
100589b4012bSMark Brown 	0x0400,     /* R187 - DCDC3 Timeouts */
100689b4012bSMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
100789b4012bSMark Brown 	0x0026,     /* R189 - DCDC4 Control */
100889b4012bSMark Brown 	0x0400,     /* R190 - DCDC4 Timeouts */
100989b4012bSMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
101089b4012bSMark Brown 	0x0008,     /* R192 - DCDC5 Control */
101189b4012bSMark Brown 	0x0000,     /* R193 - DCDC5 Timeouts */
101289b4012bSMark Brown 	0x0000,     /* R194 */
101389b4012bSMark Brown 	0x0026,     /* R195 - DCDC6 Control */
101489b4012bSMark Brown 	0x0400,     /* R196 - DCDC6 Timeouts */
101589b4012bSMark Brown 	0x0006,     /* R197 - DCDC6 Low Power */
101689b4012bSMark Brown 	0x0000,     /* R198 */
101789b4012bSMark Brown 	0x0003,     /* R199 - Limit Switch Control */
101889b4012bSMark Brown 	0x001C,     /* R200 - LDO1 Control */
101989b4012bSMark Brown 	0x0000,     /* R201 - LDO1 Timeouts */
102089b4012bSMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
102189b4012bSMark Brown 	0x001C,     /* R203 - LDO2 Control */
102289b4012bSMark Brown 	0x0400,     /* R204 - LDO2 Timeouts */
102389b4012bSMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
102489b4012bSMark Brown 	0x001C,     /* R206 - LDO3 Control */
102589b4012bSMark Brown 	0x0400,     /* R207 - LDO3 Timeouts */
102689b4012bSMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
102789b4012bSMark Brown 	0x001F,     /* R209 - LDO4 Control */
102889b4012bSMark Brown 	0x0400,     /* R210 - LDO4 Timeouts */
102989b4012bSMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
103089b4012bSMark Brown 	0x0000,     /* R212 */
103189b4012bSMark Brown 	0x0000,     /* R213 */
103289b4012bSMark Brown 	0x0000,     /* R214 */
103389b4012bSMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
103489b4012bSMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
103589b4012bSMark Brown 	0x0000,     /* R217 - OSC Control */
103689b4012bSMark Brown 	0x9000,     /* R218 - RTC Tick Control */
103789b4012bSMark Brown 	0x0000,     /* R219 */
103889b4012bSMark Brown 	0x4000,     /* R220 - RAM BIST 1 */
103989b4012bSMark Brown 	0x0000,     /* R221 */
104089b4012bSMark Brown 	0x0000,     /* R222 */
104189b4012bSMark Brown 	0x0000,     /* R223 */
104289b4012bSMark Brown 	0x0000,     /* R224 */
104389b4012bSMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
104489b4012bSMark Brown 	0x0000,     /* R226 */
104589b4012bSMark Brown 	0x0000,     /* R227 */
104689b4012bSMark Brown 	0x0000,     /* R228 */
104789b4012bSMark Brown 	0x0000,     /* R229 */
104889b4012bSMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
104989b4012bSMark Brown 	0x0000,     /* R231 */
105089b4012bSMark Brown 	0x0000,     /* R232 */
105189b4012bSMark Brown 	0x0000,     /* R233 */
105289b4012bSMark Brown 	0x0000,     /* R234 */
105389b4012bSMark Brown 	0x0000,     /* R235 */
105489b4012bSMark Brown 	0x0000,     /* R236 */
105589b4012bSMark Brown 	0x0000,     /* R237 */
105689b4012bSMark Brown 	0x0000,     /* R238 */
105789b4012bSMark Brown 	0x0000,     /* R239 */
105889b4012bSMark Brown 	0x0000,     /* R240 */
105989b4012bSMark Brown 	0x0000,     /* R241 */
106089b4012bSMark Brown 	0x0000,     /* R242 */
106189b4012bSMark Brown 	0x0000,     /* R243 */
106289b4012bSMark Brown 	0x0000,     /* R244 */
106389b4012bSMark Brown 	0x0000,     /* R245 */
106489b4012bSMark Brown 	0x0000,     /* R246 */
106589b4012bSMark Brown 	0x0000,     /* R247 */
106689b4012bSMark Brown 	0x0000,     /* R248 */
106789b4012bSMark Brown 	0x0000,     /* R249 */
106889b4012bSMark Brown 	0x0000,     /* R250 */
106989b4012bSMark Brown 	0x0000,     /* R251 */
107089b4012bSMark Brown 	0x0000,     /* R252 */
107189b4012bSMark Brown 	0x0000,     /* R253 */
107289b4012bSMark Brown 	0x0000,     /* R254 */
107389b4012bSMark Brown 	0x0000,     /* R255 */
107489b4012bSMark Brown };
107589b4012bSMark Brown #endif
107689b4012bSMark Brown 
1077ca23f8c1SMark Brown #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_0
1078ca23f8c1SMark Brown 
1079ca23f8c1SMark Brown #undef WM8350_HAVE_CONFIG_MODE
1080ca23f8c1SMark Brown #define WM8350_HAVE_CONFIG_MODE
1081ca23f8c1SMark Brown 
1082ca23f8c1SMark Brown const u16 wm8351_mode0_defaults[] = {
1083ca23f8c1SMark Brown 	0x6143,     /* R0   - Reset/ID */
1084ca23f8c1SMark Brown 	0x0000,     /* R1   - ID */
1085ca23f8c1SMark Brown 	0x0001,     /* R2   - Revision */
1086ca23f8c1SMark Brown 	0x1C02,     /* R3   - System Control 1 */
1087ca23f8c1SMark Brown 	0x0004,     /* R4   - System Control 2 */
1088ca23f8c1SMark Brown 	0x0000,     /* R5   - System Hibernate */
1089ca23f8c1SMark Brown 	0x8A00,     /* R6   - Interface Control */
1090ca23f8c1SMark Brown 	0x0000,     /* R7 */
1091ca23f8c1SMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
1092ca23f8c1SMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
1093ca23f8c1SMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
1094ca23f8c1SMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
1095ca23f8c1SMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
1096ca23f8c1SMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
1097ca23f8c1SMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
1098ca23f8c1SMark Brown 	0x0000,     /* R15 */
1099ca23f8c1SMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
1100ca23f8c1SMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
1101ca23f8c1SMark Brown 	0x0101,     /* R18  - RTC Date/Month */
1102ca23f8c1SMark Brown 	0x1400,     /* R19  - RTC Year */
1103ca23f8c1SMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
1104ca23f8c1SMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
1105ca23f8c1SMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
1106ca23f8c1SMark Brown 	0x0320,     /* R23  - RTC Time Control */
1107ca23f8c1SMark Brown 	0x0000,     /* R24  - System Interrupts */
1108ca23f8c1SMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
1109ca23f8c1SMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
1110ca23f8c1SMark Brown 	0x0000,     /* R27 */
1111ca23f8c1SMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
1112ca23f8c1SMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
1113ca23f8c1SMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
1114ca23f8c1SMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
1115ca23f8c1SMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
1116ca23f8c1SMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
1117ca23f8c1SMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
1118ca23f8c1SMark Brown 	0x0000,     /* R35 */
1119ca23f8c1SMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
1120ca23f8c1SMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
1121ca23f8c1SMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
1122ca23f8c1SMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
1123ca23f8c1SMark Brown 	0x0040,     /* R40  - Clock Control 1 */
1124ca23f8c1SMark Brown 	0x0000,     /* R41  - Clock Control 2 */
1125ca23f8c1SMark Brown 	0x3A00,     /* R42  - FLL Control 1 */
1126ca23f8c1SMark Brown 	0x7086,     /* R43  - FLL Control 2 */
1127ca23f8c1SMark Brown 	0xC226,     /* R44  - FLL Control 3 */
1128ca23f8c1SMark Brown 	0x0000,     /* R45  - FLL Control 4 */
1129ca23f8c1SMark Brown 	0x0000,     /* R46 */
1130ca23f8c1SMark Brown 	0x0000,     /* R47 */
1131ca23f8c1SMark Brown 	0x0000,     /* R48  - DAC Control */
1132ca23f8c1SMark Brown 	0x0000,     /* R49 */
1133ca23f8c1SMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
1134ca23f8c1SMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
1135ca23f8c1SMark Brown 	0x0000,     /* R52 */
1136ca23f8c1SMark Brown 	0x0040,     /* R53  - DAC LR Rate */
1137ca23f8c1SMark Brown 	0x0000,     /* R54  - DAC Clock Control */
1138ca23f8c1SMark Brown 	0x0000,     /* R55 */
1139ca23f8c1SMark Brown 	0x0000,     /* R56 */
1140ca23f8c1SMark Brown 	0x0000,     /* R57 */
1141ca23f8c1SMark Brown 	0x4000,     /* R58  - DAC Mute */
1142ca23f8c1SMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
1143ca23f8c1SMark Brown 	0x0000,     /* R60  - DAC Side */
1144ca23f8c1SMark Brown 	0x0000,     /* R61 */
1145ca23f8c1SMark Brown 	0x0000,     /* R62 */
1146ca23f8c1SMark Brown 	0x0000,     /* R63 */
1147ca23f8c1SMark Brown 	0x8000,     /* R64  - ADC Control */
1148ca23f8c1SMark Brown 	0x0000,     /* R65 */
1149ca23f8c1SMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
1150ca23f8c1SMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
1151ca23f8c1SMark Brown 	0x0000,     /* R68  - ADC Divider */
1152ca23f8c1SMark Brown 	0x0000,     /* R69 */
1153ca23f8c1SMark Brown 	0x0040,     /* R70  - ADC LR Rate */
1154ca23f8c1SMark Brown 	0x0000,     /* R71 */
1155ca23f8c1SMark Brown 	0x0303,     /* R72  - Input Control */
1156ca23f8c1SMark Brown 	0x0000,     /* R73  - IN3 Input Control */
1157ca23f8c1SMark Brown 	0x0000,     /* R74  - Mic Bias Control */
1158ca23f8c1SMark Brown 	0x0000,     /* R75 */
1159ca23f8c1SMark Brown 	0x0000,     /* R76  - Output Control */
1160ca23f8c1SMark Brown 	0x0000,     /* R77  - Jack Detect */
1161ca23f8c1SMark Brown 	0x0000,     /* R78  - Anti Pop Control */
1162ca23f8c1SMark Brown 	0x0000,     /* R79 */
1163ca23f8c1SMark Brown 	0x0040,     /* R80  - Left Input Volume */
1164ca23f8c1SMark Brown 	0x0040,     /* R81  - Right Input Volume */
1165ca23f8c1SMark Brown 	0x0000,     /* R82 */
1166ca23f8c1SMark Brown 	0x0000,     /* R83 */
1167ca23f8c1SMark Brown 	0x0000,     /* R84 */
1168ca23f8c1SMark Brown 	0x0000,     /* R85 */
1169ca23f8c1SMark Brown 	0x0000,     /* R86 */
1170ca23f8c1SMark Brown 	0x0000,     /* R87 */
1171ca23f8c1SMark Brown 	0x0800,     /* R88  - Left Mixer Control */
1172ca23f8c1SMark Brown 	0x1000,     /* R89  - Right Mixer Control */
1173ca23f8c1SMark Brown 	0x0000,     /* R90 */
1174ca23f8c1SMark Brown 	0x0000,     /* R91 */
1175ca23f8c1SMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
1176ca23f8c1SMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
1177ca23f8c1SMark Brown 	0x0000,     /* R94 */
1178ca23f8c1SMark Brown 	0x0000,     /* R95 */
1179ca23f8c1SMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
1180ca23f8c1SMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
1181ca23f8c1SMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
1182ca23f8c1SMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
1183ca23f8c1SMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
1184ca23f8c1SMark Brown 	0x0000,     /* R101 */
1185ca23f8c1SMark Brown 	0x0000,     /* R102 */
1186ca23f8c1SMark Brown 	0x0000,     /* R103 */
1187ca23f8c1SMark Brown 	0x00E4,     /* R104 - OUT1L Volume */
1188ca23f8c1SMark Brown 	0x00E4,     /* R105 - OUT1R Volume */
1189ca23f8c1SMark Brown 	0x00E4,     /* R106 - OUT2L Volume */
1190ca23f8c1SMark Brown 	0x02E4,     /* R107 - OUT2R Volume */
1191ca23f8c1SMark Brown 	0x0000,     /* R108 */
1192ca23f8c1SMark Brown 	0x0000,     /* R109 */
1193ca23f8c1SMark Brown 	0x0000,     /* R110 */
1194ca23f8c1SMark Brown 	0x0000,     /* R111 - BEEP Volume */
1195ca23f8c1SMark Brown 	0x0A00,     /* R112 - AI Formating */
1196ca23f8c1SMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
1197ca23f8c1SMark Brown 	0x0020,     /* R114 - AI ADC Control */
1198ca23f8c1SMark Brown 	0x0020,     /* R115 - AI DAC Control */
1199ca23f8c1SMark Brown 	0x0000,     /* R116 */
1200ca23f8c1SMark Brown 	0x0000,     /* R117 */
1201ca23f8c1SMark Brown 	0x0000,     /* R118 */
1202ca23f8c1SMark Brown 	0x0000,     /* R119 */
1203ca23f8c1SMark Brown 	0x0000,     /* R120 */
1204ca23f8c1SMark Brown 	0x0000,     /* R121 */
1205ca23f8c1SMark Brown 	0x0000,     /* R122 */
1206ca23f8c1SMark Brown 	0x0000,     /* R123 */
1207ca23f8c1SMark Brown 	0x0000,     /* R124 */
1208ca23f8c1SMark Brown 	0x0000,     /* R125 */
1209ca23f8c1SMark Brown 	0x0000,     /* R126 */
1210ca23f8c1SMark Brown 	0x0000,     /* R127 */
1211ca23f8c1SMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
1212ca23f8c1SMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
1213ca23f8c1SMark Brown 	0x0000,     /* R130 - GPIO Pull down Control */
1214ca23f8c1SMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
1215ca23f8c1SMark Brown 	0x0000,     /* R132 */
1216ca23f8c1SMark Brown 	0x0000,     /* R133 - GPIO Control */
1217ca23f8c1SMark Brown 	0x0FFC,     /* R134 - GPIO Configuration (i/o) */
1218ca23f8c1SMark Brown 	0x0FFC,     /* R135 - GPIO Pin Polarity / Type */
1219ca23f8c1SMark Brown 	0x0000,     /* R136 */
1220ca23f8c1SMark Brown 	0x0000,     /* R137 */
1221ca23f8c1SMark Brown 	0x0000,     /* R138 */
1222ca23f8c1SMark Brown 	0x0000,     /* R139 */
1223ca23f8c1SMark Brown 	0x0013,     /* R140 - GPIO Function Select 1 */
1224ca23f8c1SMark Brown 	0x0000,     /* R141 - GPIO Function Select 2 */
1225ca23f8c1SMark Brown 	0x0000,     /* R142 - GPIO Function Select 3 */
1226ca23f8c1SMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
1227ca23f8c1SMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
1228ca23f8c1SMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
1229ca23f8c1SMark Brown 	0x0000,     /* R146 */
1230ca23f8c1SMark Brown 	0x0000,     /* R147 */
1231ca23f8c1SMark Brown 	0x0000,     /* R148 */
1232ca23f8c1SMark Brown 	0x0000,     /* R149 */
1233ca23f8c1SMark Brown 	0x0000,     /* R150 */
1234ca23f8c1SMark Brown 	0x0000,     /* R151 */
1235ca23f8c1SMark Brown 	0x7000,     /* R152 - AUX1 Readback */
1236ca23f8c1SMark Brown 	0x7000,     /* R153 - AUX2 Readback */
1237ca23f8c1SMark Brown 	0x7000,     /* R154 - AUX3 Readback */
1238ca23f8c1SMark Brown 	0x7000,     /* R155 - AUX4 Readback */
1239ca23f8c1SMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
1240ca23f8c1SMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
1241ca23f8c1SMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
1242ca23f8c1SMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
1243ca23f8c1SMark Brown 	0x0000,     /* R160 */
1244ca23f8c1SMark Brown 	0x0000,     /* R161 */
1245ca23f8c1SMark Brown 	0x0000,     /* R162 */
1246ca23f8c1SMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
1247ca23f8c1SMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
1248ca23f8c1SMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
1249ca23f8c1SMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
1250ca23f8c1SMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
1251ca23f8c1SMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
1252ca23f8c1SMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
1253ca23f8c1SMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
1254ca23f8c1SMark Brown 	0x0000,     /* R171 */
1255ca23f8c1SMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
1256ca23f8c1SMark Brown 	0x0000,     /* R173 - CSA Flash control */
1257ca23f8c1SMark Brown 	0x0000,     /* R174 */
1258ca23f8c1SMark Brown 	0x0000,     /* R175 */
1259ca23f8c1SMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
1260ca23f8c1SMark Brown 	0x032D,     /* R177 - DCDC Active options */
1261ca23f8c1SMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
1262ca23f8c1SMark Brown 	0x0025,     /* R179 - Power-check comparator */
1263ca23f8c1SMark Brown 	0x000E,     /* R180 - DCDC1 Control */
1264ca23f8c1SMark Brown 	0x0000,     /* R181 - DCDC1 Timeouts */
1265ca23f8c1SMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
1266ca23f8c1SMark Brown 	0x0018,     /* R183 - DCDC2 Control */
1267ca23f8c1SMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
1268ca23f8c1SMark Brown 	0x0000,     /* R185 */
1269ca23f8c1SMark Brown 	0x0000,     /* R186 - DCDC3 Control */
1270ca23f8c1SMark Brown 	0x0000,     /* R187 - DCDC3 Timeouts */
1271ca23f8c1SMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
1272ca23f8c1SMark Brown 	0x0000,     /* R189 - DCDC4 Control */
1273ca23f8c1SMark Brown 	0x0000,     /* R190 - DCDC4 Timeouts */
1274ca23f8c1SMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
1275ca23f8c1SMark Brown 	0x0008,     /* R192 */
1276ca23f8c1SMark Brown 	0x0000,     /* R193 */
1277ca23f8c1SMark Brown 	0x0000,     /* R194 */
1278ca23f8c1SMark Brown 	0x0000,     /* R195 */
1279ca23f8c1SMark Brown 	0x0000,     /* R196 */
1280ca23f8c1SMark Brown 	0x0006,     /* R197 */
1281ca23f8c1SMark Brown 	0x0000,     /* R198 */
1282ca23f8c1SMark Brown 	0x0003,     /* R199 - Limit Switch Control */
1283ca23f8c1SMark Brown 	0x001C,     /* R200 - LDO1 Control */
1284ca23f8c1SMark Brown 	0x0000,     /* R201 - LDO1 Timeouts */
1285ca23f8c1SMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
1286ca23f8c1SMark Brown 	0x001B,     /* R203 - LDO2 Control */
1287ca23f8c1SMark Brown 	0x0000,     /* R204 - LDO2 Timeouts */
1288ca23f8c1SMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
1289ca23f8c1SMark Brown 	0x001B,     /* R206 - LDO3 Control */
1290ca23f8c1SMark Brown 	0x0000,     /* R207 - LDO3 Timeouts */
1291ca23f8c1SMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
1292ca23f8c1SMark Brown 	0x001B,     /* R209 - LDO4 Control */
1293ca23f8c1SMark Brown 	0x0000,     /* R210 - LDO4 Timeouts */
1294ca23f8c1SMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
1295ca23f8c1SMark Brown 	0x0000,     /* R212 */
1296ca23f8c1SMark Brown 	0x0000,     /* R213 */
1297ca23f8c1SMark Brown 	0x0000,     /* R214 */
1298ca23f8c1SMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
1299ca23f8c1SMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
1300ca23f8c1SMark Brown 	0x0000,     /* R217 - OSC Control */
1301ca23f8c1SMark Brown 	0x9000,     /* R218 - RTC Tick Control */
1302ca23f8c1SMark Brown 	0x0000,     /* R219 - Security1 */
1303ca23f8c1SMark Brown 	0x4000,     /* R220 */
1304ca23f8c1SMark Brown 	0x0000,     /* R221 */
1305ca23f8c1SMark Brown 	0x0000,     /* R222 */
1306ca23f8c1SMark Brown 	0x0000,     /* R223 */
1307ca23f8c1SMark Brown 	0x0000,     /* R224 - Signal overrides */
1308ca23f8c1SMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
1309ca23f8c1SMark Brown 	0x0000,     /* R226 - Charger Overides/status */
1310ca23f8c1SMark Brown 	0x0000,     /* R227 - misc overrides */
1311ca23f8c1SMark Brown 	0x0000,     /* R228 - Supply overrides/status 1 */
1312ca23f8c1SMark Brown 	0x0000,     /* R229 - Supply overrides/status 2 */
1313ca23f8c1SMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
1314ca23f8c1SMark Brown 	0x0000,     /* R231 - comparotor overrides */
1315ca23f8c1SMark Brown 	0x0000,     /* R232 */
1316ca23f8c1SMark Brown 	0x0000,     /* R233 - State Machine status */
1317ca23f8c1SMark Brown 	0x1200,     /* R234 - FLL Test 1 */
1318ca23f8c1SMark Brown 	0x0000,     /* R235 */
1319ca23f8c1SMark Brown 	0x8000,     /* R236 */
1320ca23f8c1SMark Brown 	0x0000,     /* R237 */
1321ca23f8c1SMark Brown 	0x0000,     /* R238 */
1322ca23f8c1SMark Brown 	0x0000,     /* R239 */
1323ca23f8c1SMark Brown 	0x0003,     /* R240 */
1324ca23f8c1SMark Brown 	0x0000,     /* R241 */
1325ca23f8c1SMark Brown 	0x0000,     /* R242 */
1326ca23f8c1SMark Brown 	0x0004,     /* R243 */
1327ca23f8c1SMark Brown 	0x0300,     /* R244 */
1328ca23f8c1SMark Brown 	0x0000,     /* R245 */
1329ca23f8c1SMark Brown 	0x0200,     /* R246 */
1330ca23f8c1SMark Brown 	0x0000,     /* R247 */
1331ca23f8c1SMark Brown 	0x1000,     /* R248 - DCDC1 Test Controls */
1332ca23f8c1SMark Brown 	0x1000,     /* R249 */
1333ca23f8c1SMark Brown 	0x1000,     /* R250 - DCDC3 Test Controls */
1334ca23f8c1SMark Brown 	0x1000,     /* R251 - DCDC4 Test Controls */
1335ca23f8c1SMark Brown };
1336ca23f8c1SMark Brown #endif
1337ca23f8c1SMark Brown 
1338ca23f8c1SMark Brown #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_1
1339ca23f8c1SMark Brown 
1340ca23f8c1SMark Brown #undef WM8350_HAVE_CONFIG_MODE
1341ca23f8c1SMark Brown #define WM8350_HAVE_CONFIG_MODE
1342ca23f8c1SMark Brown 
1343ca23f8c1SMark Brown const u16 wm8351_mode1_defaults[] = {
1344ca23f8c1SMark Brown 	0x6143,     /* R0   - Reset/ID */
1345ca23f8c1SMark Brown 	0x0000,     /* R1   - ID */
1346ca23f8c1SMark Brown 	0x0001,     /* R2   - Revision */
1347ca23f8c1SMark Brown 	0x1C02,     /* R3   - System Control 1 */
1348ca23f8c1SMark Brown 	0x0204,     /* R4   - System Control 2 */
1349ca23f8c1SMark Brown 	0x0000,     /* R5   - System Hibernate */
1350ca23f8c1SMark Brown 	0x8A00,     /* R6   - Interface Control */
1351ca23f8c1SMark Brown 	0x0000,     /* R7 */
1352ca23f8c1SMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
1353ca23f8c1SMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
1354ca23f8c1SMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
1355ca23f8c1SMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
1356ca23f8c1SMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
1357ca23f8c1SMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
1358ca23f8c1SMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
1359ca23f8c1SMark Brown 	0x0000,     /* R15 */
1360ca23f8c1SMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
1361ca23f8c1SMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
1362ca23f8c1SMark Brown 	0x0101,     /* R18  - RTC Date/Month */
1363ca23f8c1SMark Brown 	0x1400,     /* R19  - RTC Year */
1364ca23f8c1SMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
1365ca23f8c1SMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
1366ca23f8c1SMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
1367ca23f8c1SMark Brown 	0x0320,     /* R23  - RTC Time Control */
1368ca23f8c1SMark Brown 	0x0000,     /* R24  - System Interrupts */
1369ca23f8c1SMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
1370ca23f8c1SMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
1371ca23f8c1SMark Brown 	0x0000,     /* R27 */
1372ca23f8c1SMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
1373ca23f8c1SMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
1374ca23f8c1SMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
1375ca23f8c1SMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
1376ca23f8c1SMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
1377ca23f8c1SMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
1378ca23f8c1SMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
1379ca23f8c1SMark Brown 	0x0000,     /* R35 */
1380ca23f8c1SMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
1381ca23f8c1SMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
1382ca23f8c1SMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
1383ca23f8c1SMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
1384ca23f8c1SMark Brown 	0x0040,     /* R40  - Clock Control 1 */
1385ca23f8c1SMark Brown 	0x0000,     /* R41  - Clock Control 2 */
1386ca23f8c1SMark Brown 	0x3A00,     /* R42  - FLL Control 1 */
1387ca23f8c1SMark Brown 	0x7086,     /* R43  - FLL Control 2 */
1388ca23f8c1SMark Brown 	0xC226,     /* R44  - FLL Control 3 */
1389ca23f8c1SMark Brown 	0x0000,     /* R45  - FLL Control 4 */
1390ca23f8c1SMark Brown 	0x0000,     /* R46 */
1391ca23f8c1SMark Brown 	0x0000,     /* R47 */
1392ca23f8c1SMark Brown 	0x0000,     /* R48  - DAC Control */
1393ca23f8c1SMark Brown 	0x0000,     /* R49 */
1394ca23f8c1SMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
1395ca23f8c1SMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
1396ca23f8c1SMark Brown 	0x0000,     /* R52 */
1397ca23f8c1SMark Brown 	0x0040,     /* R53  - DAC LR Rate */
1398ca23f8c1SMark Brown 	0x0000,     /* R54  - DAC Clock Control */
1399ca23f8c1SMark Brown 	0x0000,     /* R55 */
1400ca23f8c1SMark Brown 	0x0000,     /* R56 */
1401ca23f8c1SMark Brown 	0x0000,     /* R57 */
1402ca23f8c1SMark Brown 	0x4000,     /* R58  - DAC Mute */
1403ca23f8c1SMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
1404ca23f8c1SMark Brown 	0x0000,     /* R60  - DAC Side */
1405ca23f8c1SMark Brown 	0x0000,     /* R61 */
1406ca23f8c1SMark Brown 	0x0000,     /* R62 */
1407ca23f8c1SMark Brown 	0x0000,     /* R63 */
1408ca23f8c1SMark Brown 	0x8000,     /* R64  - ADC Control */
1409ca23f8c1SMark Brown 	0x0000,     /* R65 */
1410ca23f8c1SMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
1411ca23f8c1SMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
1412ca23f8c1SMark Brown 	0x0000,     /* R68  - ADC Divider */
1413ca23f8c1SMark Brown 	0x0000,     /* R69 */
1414ca23f8c1SMark Brown 	0x0040,     /* R70  - ADC LR Rate */
1415ca23f8c1SMark Brown 	0x0000,     /* R71 */
1416ca23f8c1SMark Brown 	0x0303,     /* R72  - Input Control */
1417ca23f8c1SMark Brown 	0x0000,     /* R73  - IN3 Input Control */
1418ca23f8c1SMark Brown 	0x0000,     /* R74  - Mic Bias Control */
1419ca23f8c1SMark Brown 	0x0000,     /* R75 */
1420ca23f8c1SMark Brown 	0x0000,     /* R76  - Output Control */
1421ca23f8c1SMark Brown 	0x0000,     /* R77  - Jack Detect */
1422ca23f8c1SMark Brown 	0x0000,     /* R78  - Anti Pop Control */
1423ca23f8c1SMark Brown 	0x0000,     /* R79 */
1424ca23f8c1SMark Brown 	0x0040,     /* R80  - Left Input Volume */
1425ca23f8c1SMark Brown 	0x0040,     /* R81  - Right Input Volume */
1426ca23f8c1SMark Brown 	0x0000,     /* R82 */
1427ca23f8c1SMark Brown 	0x0000,     /* R83 */
1428ca23f8c1SMark Brown 	0x0000,     /* R84 */
1429ca23f8c1SMark Brown 	0x0000,     /* R85 */
1430ca23f8c1SMark Brown 	0x0000,     /* R86 */
1431ca23f8c1SMark Brown 	0x0000,     /* R87 */
1432ca23f8c1SMark Brown 	0x0800,     /* R88  - Left Mixer Control */
1433ca23f8c1SMark Brown 	0x1000,     /* R89  - Right Mixer Control */
1434ca23f8c1SMark Brown 	0x0000,     /* R90 */
1435ca23f8c1SMark Brown 	0x0000,     /* R91 */
1436ca23f8c1SMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
1437ca23f8c1SMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
1438ca23f8c1SMark Brown 	0x0000,     /* R94 */
1439ca23f8c1SMark Brown 	0x0000,     /* R95 */
1440ca23f8c1SMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
1441ca23f8c1SMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
1442ca23f8c1SMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
1443ca23f8c1SMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
1444ca23f8c1SMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
1445ca23f8c1SMark Brown 	0x0000,     /* R101 */
1446ca23f8c1SMark Brown 	0x0000,     /* R102 */
1447ca23f8c1SMark Brown 	0x0000,     /* R103 */
1448ca23f8c1SMark Brown 	0x00E4,     /* R104 - OUT1L Volume */
1449ca23f8c1SMark Brown 	0x00E4,     /* R105 - OUT1R Volume */
1450ca23f8c1SMark Brown 	0x00E4,     /* R106 - OUT2L Volume */
1451ca23f8c1SMark Brown 	0x02E4,     /* R107 - OUT2R Volume */
1452ca23f8c1SMark Brown 	0x0000,     /* R108 */
1453ca23f8c1SMark Brown 	0x0000,     /* R109 */
1454ca23f8c1SMark Brown 	0x0000,     /* R110 */
1455ca23f8c1SMark Brown 	0x0000,     /* R111 - BEEP Volume */
1456ca23f8c1SMark Brown 	0x0A00,     /* R112 - AI Formating */
1457ca23f8c1SMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
1458ca23f8c1SMark Brown 	0x0020,     /* R114 - AI ADC Control */
1459ca23f8c1SMark Brown 	0x0020,     /* R115 - AI DAC Control */
1460ca23f8c1SMark Brown 	0x0000,     /* R116 */
1461ca23f8c1SMark Brown 	0x0000,     /* R117 */
1462ca23f8c1SMark Brown 	0x0000,     /* R118 */
1463ca23f8c1SMark Brown 	0x0000,     /* R119 */
1464ca23f8c1SMark Brown 	0x0000,     /* R120 */
1465ca23f8c1SMark Brown 	0x0000,     /* R121 */
1466ca23f8c1SMark Brown 	0x0000,     /* R122 */
1467ca23f8c1SMark Brown 	0x0000,     /* R123 */
1468ca23f8c1SMark Brown 	0x0000,     /* R124 */
1469ca23f8c1SMark Brown 	0x0000,     /* R125 */
1470ca23f8c1SMark Brown 	0x0000,     /* R126 */
1471ca23f8c1SMark Brown 	0x0000,     /* R127 */
1472ca23f8c1SMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
1473ca23f8c1SMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
1474ca23f8c1SMark Brown 	0x0000,     /* R130 - GPIO Pull down Control */
1475ca23f8c1SMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
1476ca23f8c1SMark Brown 	0x0000,     /* R132 */
1477ca23f8c1SMark Brown 	0x0000,     /* R133 - GPIO Control */
1478ca23f8c1SMark Brown 	0x0CFB,     /* R134 - GPIO Configuration (i/o) */
1479ca23f8c1SMark Brown 	0x0C1F,     /* R135 - GPIO Pin Polarity / Type */
1480ca23f8c1SMark Brown 	0x0000,     /* R136 */
1481ca23f8c1SMark Brown 	0x0000,     /* R137 */
1482ca23f8c1SMark Brown 	0x0000,     /* R138 */
1483ca23f8c1SMark Brown 	0x0000,     /* R139 */
1484ca23f8c1SMark Brown 	0x0300,     /* R140 - GPIO Function Select 1 */
1485ca23f8c1SMark Brown 	0x1110,     /* R141 - GPIO Function Select 2 */
1486ca23f8c1SMark Brown 	0x0013,     /* R142 - GPIO Function Select 3 */
1487ca23f8c1SMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
1488ca23f8c1SMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
1489ca23f8c1SMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
1490ca23f8c1SMark Brown 	0x0000,     /* R146 */
1491ca23f8c1SMark Brown 	0x0000,     /* R147 */
1492ca23f8c1SMark Brown 	0x0000,     /* R148 */
1493ca23f8c1SMark Brown 	0x0000,     /* R149 */
1494ca23f8c1SMark Brown 	0x0000,     /* R150 */
1495ca23f8c1SMark Brown 	0x0000,     /* R151 */
1496ca23f8c1SMark Brown 	0x7000,     /* R152 - AUX1 Readback */
1497ca23f8c1SMark Brown 	0x7000,     /* R153 - AUX2 Readback */
1498ca23f8c1SMark Brown 	0x7000,     /* R154 - AUX3 Readback */
1499ca23f8c1SMark Brown 	0x7000,     /* R155 - AUX4 Readback */
1500ca23f8c1SMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
1501ca23f8c1SMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
1502ca23f8c1SMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
1503ca23f8c1SMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
1504ca23f8c1SMark Brown 	0x0000,     /* R160 */
1505ca23f8c1SMark Brown 	0x0000,     /* R161 */
1506ca23f8c1SMark Brown 	0x0000,     /* R162 */
1507ca23f8c1SMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
1508ca23f8c1SMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
1509ca23f8c1SMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
1510ca23f8c1SMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
1511ca23f8c1SMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
1512ca23f8c1SMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
1513ca23f8c1SMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
1514ca23f8c1SMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
1515ca23f8c1SMark Brown 	0x0000,     /* R171 */
1516ca23f8c1SMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
1517ca23f8c1SMark Brown 	0x0000,     /* R173 - CSA Flash control */
1518ca23f8c1SMark Brown 	0x0000,     /* R174 */
1519ca23f8c1SMark Brown 	0x0000,     /* R175 */
1520ca23f8c1SMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
1521ca23f8c1SMark Brown 	0x032D,     /* R177 - DCDC Active options */
1522ca23f8c1SMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
1523ca23f8c1SMark Brown 	0x0025,     /* R179 - Power-check comparator */
1524ca23f8c1SMark Brown 	0x000E,     /* R180 - DCDC1 Control */
1525ca23f8c1SMark Brown 	0x0C00,     /* R181 - DCDC1 Timeouts */
1526ca23f8c1SMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
1527ca23f8c1SMark Brown 	0x0018,     /* R183 - DCDC2 Control */
1528ca23f8c1SMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
1529ca23f8c1SMark Brown 	0x0000,     /* R185 */
1530ca23f8c1SMark Brown 	0x0026,     /* R186 - DCDC3 Control */
1531ca23f8c1SMark Brown 	0x0400,     /* R187 - DCDC3 Timeouts */
1532ca23f8c1SMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
1533ca23f8c1SMark Brown 	0x0062,     /* R189 - DCDC4 Control */
1534ca23f8c1SMark Brown 	0x0800,     /* R190 - DCDC4 Timeouts */
1535ca23f8c1SMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
1536ca23f8c1SMark Brown 	0x0008,     /* R192 */
1537ca23f8c1SMark Brown 	0x0000,     /* R193 */
1538ca23f8c1SMark Brown 	0x0000,     /* R194 */
1539ca23f8c1SMark Brown 	0x000A,     /* R195 */
1540ca23f8c1SMark Brown 	0x1000,     /* R196 */
1541ca23f8c1SMark Brown 	0x0006,     /* R197 */
1542ca23f8c1SMark Brown 	0x0000,     /* R198 */
1543ca23f8c1SMark Brown 	0x0003,     /* R199 - Limit Switch Control */
1544ca23f8c1SMark Brown 	0x0006,     /* R200 - LDO1 Control */
1545ca23f8c1SMark Brown 	0x0000,     /* R201 - LDO1 Timeouts */
1546ca23f8c1SMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
1547ca23f8c1SMark Brown 	0x0010,     /* R203 - LDO2 Control */
1548ca23f8c1SMark Brown 	0x0C00,     /* R204 - LDO2 Timeouts */
1549ca23f8c1SMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
1550ca23f8c1SMark Brown 	0x001F,     /* R206 - LDO3 Control */
1551ca23f8c1SMark Brown 	0x0800,     /* R207 - LDO3 Timeouts */
1552ca23f8c1SMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
1553ca23f8c1SMark Brown 	0x000A,     /* R209 - LDO4 Control */
1554ca23f8c1SMark Brown 	0x0800,     /* R210 - LDO4 Timeouts */
1555ca23f8c1SMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
1556ca23f8c1SMark Brown 	0x0000,     /* R212 */
1557ca23f8c1SMark Brown 	0x0000,     /* R213 */
1558ca23f8c1SMark Brown 	0x0000,     /* R214 */
1559ca23f8c1SMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
1560ca23f8c1SMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
1561ca23f8c1SMark Brown 	0x0000,     /* R217 - OSC Control */
1562ca23f8c1SMark Brown 	0x9000,     /* R218 - RTC Tick Control */
1563ca23f8c1SMark Brown 	0x0000,     /* R219 - Security1 */
1564ca23f8c1SMark Brown 	0x4000,     /* R220 */
1565ca23f8c1SMark Brown 	0x0000,     /* R221 */
1566ca23f8c1SMark Brown 	0x0000,     /* R222 */
1567ca23f8c1SMark Brown 	0x0000,     /* R223 */
1568ca23f8c1SMark Brown 	0x0000,     /* R224 - Signal overrides */
1569ca23f8c1SMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
1570ca23f8c1SMark Brown 	0x0000,     /* R226 - Charger Overides/status */
1571ca23f8c1SMark Brown 	0x0000,     /* R227 - misc overrides */
1572ca23f8c1SMark Brown 	0x0000,     /* R228 - Supply overrides/status 1 */
1573ca23f8c1SMark Brown 	0x0000,     /* R229 - Supply overrides/status 2 */
1574ca23f8c1SMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
1575ca23f8c1SMark Brown 	0x0000,     /* R231 - comparotor overrides */
1576ca23f8c1SMark Brown 	0x0000,     /* R232 */
1577ca23f8c1SMark Brown 	0x0000,     /* R233 - State Machine status */
1578ca23f8c1SMark Brown 	0x1200,     /* R234 - FLL Test 1 */
1579ca23f8c1SMark Brown 	0x0000,     /* R235 */
1580ca23f8c1SMark Brown 	0x8000,     /* R236 */
1581ca23f8c1SMark Brown 	0x0000,     /* R237 */
1582ca23f8c1SMark Brown 	0x0000,     /* R238 */
1583ca23f8c1SMark Brown 	0x0000,     /* R239 */
1584ca23f8c1SMark Brown 	0x0003,     /* R240 */
1585ca23f8c1SMark Brown 	0x0000,     /* R241 */
1586ca23f8c1SMark Brown 	0x0000,     /* R242 */
1587ca23f8c1SMark Brown 	0x0004,     /* R243 */
1588ca23f8c1SMark Brown 	0x0300,     /* R244 */
1589ca23f8c1SMark Brown 	0x0000,     /* R245 */
1590ca23f8c1SMark Brown 	0x0200,     /* R246 */
1591ca23f8c1SMark Brown 	0x1000,     /* R247 */
1592ca23f8c1SMark Brown 	0x1000,     /* R248 - DCDC1 Test Controls */
1593ca23f8c1SMark Brown 	0x1000,     /* R249 */
1594ca23f8c1SMark Brown 	0x1000,     /* R250 - DCDC3 Test Controls */
1595ca23f8c1SMark Brown 	0x1000,     /* R251 - DCDC4 Test Controls */
1596ca23f8c1SMark Brown };
1597ca23f8c1SMark Brown #endif
1598ca23f8c1SMark Brown 
1599ca23f8c1SMark Brown #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_2
1600ca23f8c1SMark Brown 
1601ca23f8c1SMark Brown #undef WM8350_HAVE_CONFIG_MODE
1602ca23f8c1SMark Brown #define WM8350_HAVE_CONFIG_MODE
1603ca23f8c1SMark Brown 
1604ca23f8c1SMark Brown const u16 wm8351_mode2_defaults[] = {
1605ca23f8c1SMark Brown 	0x6143,     /* R0   - Reset/ID */
1606ca23f8c1SMark Brown 	0x0000,     /* R1   - ID */
1607ca23f8c1SMark Brown 	0x0001,     /* R2   - Revision */
1608ca23f8c1SMark Brown 	0x1C02,     /* R3   - System Control 1 */
1609ca23f8c1SMark Brown 	0x0214,     /* R4   - System Control 2 */
1610ca23f8c1SMark Brown 	0x0000,     /* R5   - System Hibernate */
1611ca23f8c1SMark Brown 	0x8A00,     /* R6   - Interface Control */
1612ca23f8c1SMark Brown 	0x0000,     /* R7 */
1613ca23f8c1SMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
1614ca23f8c1SMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
1615ca23f8c1SMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
1616ca23f8c1SMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
1617ca23f8c1SMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
1618ca23f8c1SMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
1619ca23f8c1SMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
1620ca23f8c1SMark Brown 	0x0000,     /* R15 */
1621ca23f8c1SMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
1622ca23f8c1SMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
1623ca23f8c1SMark Brown 	0x0101,     /* R18  - RTC Date/Month */
1624ca23f8c1SMark Brown 	0x1400,     /* R19  - RTC Year */
1625ca23f8c1SMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
1626ca23f8c1SMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
1627ca23f8c1SMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
1628ca23f8c1SMark Brown 	0x0320,     /* R23  - RTC Time Control */
1629ca23f8c1SMark Brown 	0x0000,     /* R24  - System Interrupts */
1630ca23f8c1SMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
1631ca23f8c1SMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
1632ca23f8c1SMark Brown 	0x0000,     /* R27 */
1633ca23f8c1SMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
1634ca23f8c1SMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
1635ca23f8c1SMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
1636ca23f8c1SMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
1637ca23f8c1SMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
1638ca23f8c1SMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
1639ca23f8c1SMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
1640ca23f8c1SMark Brown 	0x0000,     /* R35 */
1641ca23f8c1SMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
1642ca23f8c1SMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
1643ca23f8c1SMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
1644ca23f8c1SMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
1645ca23f8c1SMark Brown 	0x0040,     /* R40  - Clock Control 1 */
1646ca23f8c1SMark Brown 	0x0000,     /* R41  - Clock Control 2 */
1647ca23f8c1SMark Brown 	0x3A00,     /* R42  - FLL Control 1 */
1648ca23f8c1SMark Brown 	0x7086,     /* R43  - FLL Control 2 */
1649ca23f8c1SMark Brown 	0xC226,     /* R44  - FLL Control 3 */
1650ca23f8c1SMark Brown 	0x0000,     /* R45  - FLL Control 4 */
1651ca23f8c1SMark Brown 	0x0000,     /* R46 */
1652ca23f8c1SMark Brown 	0x0000,     /* R47 */
1653ca23f8c1SMark Brown 	0x0000,     /* R48  - DAC Control */
1654ca23f8c1SMark Brown 	0x0000,     /* R49 */
1655ca23f8c1SMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
1656ca23f8c1SMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
1657ca23f8c1SMark Brown 	0x0000,     /* R52 */
1658ca23f8c1SMark Brown 	0x0040,     /* R53  - DAC LR Rate */
1659ca23f8c1SMark Brown 	0x0000,     /* R54  - DAC Clock Control */
1660ca23f8c1SMark Brown 	0x0000,     /* R55 */
1661ca23f8c1SMark Brown 	0x0000,     /* R56 */
1662ca23f8c1SMark Brown 	0x0000,     /* R57 */
1663ca23f8c1SMark Brown 	0x4000,     /* R58  - DAC Mute */
1664ca23f8c1SMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
1665ca23f8c1SMark Brown 	0x0000,     /* R60  - DAC Side */
1666ca23f8c1SMark Brown 	0x0000,     /* R61 */
1667ca23f8c1SMark Brown 	0x0000,     /* R62 */
1668ca23f8c1SMark Brown 	0x0000,     /* R63 */
1669ca23f8c1SMark Brown 	0x8000,     /* R64  - ADC Control */
1670ca23f8c1SMark Brown 	0x0000,     /* R65 */
1671ca23f8c1SMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
1672ca23f8c1SMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
1673ca23f8c1SMark Brown 	0x0000,     /* R68  - ADC Divider */
1674ca23f8c1SMark Brown 	0x0000,     /* R69 */
1675ca23f8c1SMark Brown 	0x0040,     /* R70  - ADC LR Rate */
1676ca23f8c1SMark Brown 	0x0000,     /* R71 */
1677ca23f8c1SMark Brown 	0x0303,     /* R72  - Input Control */
1678ca23f8c1SMark Brown 	0x0000,     /* R73  - IN3 Input Control */
1679ca23f8c1SMark Brown 	0x0000,     /* R74  - Mic Bias Control */
1680ca23f8c1SMark Brown 	0x0000,     /* R75 */
1681ca23f8c1SMark Brown 	0x0000,     /* R76  - Output Control */
1682ca23f8c1SMark Brown 	0x0000,     /* R77  - Jack Detect */
1683ca23f8c1SMark Brown 	0x0000,     /* R78  - Anti Pop Control */
1684ca23f8c1SMark Brown 	0x0000,     /* R79 */
1685ca23f8c1SMark Brown 	0x0040,     /* R80  - Left Input Volume */
1686ca23f8c1SMark Brown 	0x0040,     /* R81  - Right Input Volume */
1687ca23f8c1SMark Brown 	0x0000,     /* R82 */
1688ca23f8c1SMark Brown 	0x0000,     /* R83 */
1689ca23f8c1SMark Brown 	0x0000,     /* R84 */
1690ca23f8c1SMark Brown 	0x0000,     /* R85 */
1691ca23f8c1SMark Brown 	0x0000,     /* R86 */
1692ca23f8c1SMark Brown 	0x0000,     /* R87 */
1693ca23f8c1SMark Brown 	0x0800,     /* R88  - Left Mixer Control */
1694ca23f8c1SMark Brown 	0x1000,     /* R89  - Right Mixer Control */
1695ca23f8c1SMark Brown 	0x0000,     /* R90 */
1696ca23f8c1SMark Brown 	0x0000,     /* R91 */
1697ca23f8c1SMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
1698ca23f8c1SMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
1699ca23f8c1SMark Brown 	0x0000,     /* R94 */
1700ca23f8c1SMark Brown 	0x0000,     /* R95 */
1701ca23f8c1SMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
1702ca23f8c1SMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
1703ca23f8c1SMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
1704ca23f8c1SMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
1705ca23f8c1SMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
1706ca23f8c1SMark Brown 	0x0000,     /* R101 */
1707ca23f8c1SMark Brown 	0x0000,     /* R102 */
1708ca23f8c1SMark Brown 	0x0000,     /* R103 */
1709ca23f8c1SMark Brown 	0x00E4,     /* R104 - OUT1L Volume */
1710ca23f8c1SMark Brown 	0x00E4,     /* R105 - OUT1R Volume */
1711ca23f8c1SMark Brown 	0x00E4,     /* R106 - OUT2L Volume */
1712ca23f8c1SMark Brown 	0x02E4,     /* R107 - OUT2R Volume */
1713ca23f8c1SMark Brown 	0x0000,     /* R108 */
1714ca23f8c1SMark Brown 	0x0000,     /* R109 */
1715ca23f8c1SMark Brown 	0x0000,     /* R110 */
1716ca23f8c1SMark Brown 	0x0000,     /* R111 - BEEP Volume */
1717ca23f8c1SMark Brown 	0x0A00,     /* R112 - AI Formating */
1718ca23f8c1SMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
1719ca23f8c1SMark Brown 	0x0020,     /* R114 - AI ADC Control */
1720ca23f8c1SMark Brown 	0x0020,     /* R115 - AI DAC Control */
1721ca23f8c1SMark Brown 	0x0000,     /* R116 */
1722ca23f8c1SMark Brown 	0x0000,     /* R117 */
1723ca23f8c1SMark Brown 	0x0000,     /* R118 */
1724ca23f8c1SMark Brown 	0x0000,     /* R119 */
1725ca23f8c1SMark Brown 	0x0000,     /* R120 */
1726ca23f8c1SMark Brown 	0x0000,     /* R121 */
1727ca23f8c1SMark Brown 	0x0000,     /* R122 */
1728ca23f8c1SMark Brown 	0x0000,     /* R123 */
1729ca23f8c1SMark Brown 	0x0000,     /* R124 */
1730ca23f8c1SMark Brown 	0x0000,     /* R125 */
1731ca23f8c1SMark Brown 	0x0000,     /* R126 */
1732ca23f8c1SMark Brown 	0x0000,     /* R127 */
1733ca23f8c1SMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
1734ca23f8c1SMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
1735ca23f8c1SMark Brown 	0x0110,     /* R130 - GPIO Pull down Control */
1736ca23f8c1SMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
1737ca23f8c1SMark Brown 	0x0000,     /* R132 */
1738ca23f8c1SMark Brown 	0x0000,     /* R133 - GPIO Control */
1739ca23f8c1SMark Brown 	0x09FA,     /* R134 - GPIO Configuration (i/o) */
1740ca23f8c1SMark Brown 	0x0DF6,     /* R135 - GPIO Pin Polarity / Type */
1741ca23f8c1SMark Brown 	0x0000,     /* R136 */
1742ca23f8c1SMark Brown 	0x0000,     /* R137 */
1743ca23f8c1SMark Brown 	0x0000,     /* R138 */
1744ca23f8c1SMark Brown 	0x0000,     /* R139 */
1745ca23f8c1SMark Brown 	0x1310,     /* R140 - GPIO Function Select 1 */
1746ca23f8c1SMark Brown 	0x0003,     /* R141 - GPIO Function Select 2 */
1747ca23f8c1SMark Brown 	0x2000,     /* R142 - GPIO Function Select 3 */
1748ca23f8c1SMark Brown 	0x0000,     /* R143 - GPIO Function Select 4 */
1749ca23f8c1SMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
1750ca23f8c1SMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
1751ca23f8c1SMark Brown 	0x0000,     /* R146 */
1752ca23f8c1SMark Brown 	0x0000,     /* R147 */
1753ca23f8c1SMark Brown 	0x0000,     /* R148 */
1754ca23f8c1SMark Brown 	0x0000,     /* R149 */
1755ca23f8c1SMark Brown 	0x0000,     /* R150 */
1756ca23f8c1SMark Brown 	0x0000,     /* R151 */
1757ca23f8c1SMark Brown 	0x7000,     /* R152 - AUX1 Readback */
1758ca23f8c1SMark Brown 	0x7000,     /* R153 - AUX2 Readback */
1759ca23f8c1SMark Brown 	0x7000,     /* R154 - AUX3 Readback */
1760ca23f8c1SMark Brown 	0x7000,     /* R155 - AUX4 Readback */
1761ca23f8c1SMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
1762ca23f8c1SMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
1763ca23f8c1SMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
1764ca23f8c1SMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
1765ca23f8c1SMark Brown 	0x0000,     /* R160 */
1766ca23f8c1SMark Brown 	0x0000,     /* R161 */
1767ca23f8c1SMark Brown 	0x0000,     /* R162 */
1768ca23f8c1SMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
1769ca23f8c1SMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
1770ca23f8c1SMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
1771ca23f8c1SMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
1772ca23f8c1SMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
1773ca23f8c1SMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
1774ca23f8c1SMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
1775ca23f8c1SMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
1776ca23f8c1SMark Brown 	0x0000,     /* R171 */
1777ca23f8c1SMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
1778ca23f8c1SMark Brown 	0x0000,     /* R173 - CSA Flash control */
1779ca23f8c1SMark Brown 	0x0000,     /* R174 */
1780ca23f8c1SMark Brown 	0x0000,     /* R175 */
1781ca23f8c1SMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
1782ca23f8c1SMark Brown 	0x032D,     /* R177 - DCDC Active options */
1783ca23f8c1SMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
1784ca23f8c1SMark Brown 	0x0025,     /* R179 - Power-check comparator */
1785ca23f8c1SMark Brown 	0x001A,     /* R180 - DCDC1 Control */
1786ca23f8c1SMark Brown 	0x0800,     /* R181 - DCDC1 Timeouts */
1787ca23f8c1SMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
1788ca23f8c1SMark Brown 	0x0018,     /* R183 - DCDC2 Control */
1789ca23f8c1SMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
1790ca23f8c1SMark Brown 	0x0000,     /* R185 */
1791ca23f8c1SMark Brown 	0x0056,     /* R186 - DCDC3 Control */
1792ca23f8c1SMark Brown 	0x0400,     /* R187 - DCDC3 Timeouts */
1793ca23f8c1SMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
1794ca23f8c1SMark Brown 	0x0026,     /* R189 - DCDC4 Control */
1795ca23f8c1SMark Brown 	0x0C00,     /* R190 - DCDC4 Timeouts */
1796ca23f8c1SMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
1797ca23f8c1SMark Brown 	0x0008,     /* R192 */
1798ca23f8c1SMark Brown 	0x0000,     /* R193 */
1799ca23f8c1SMark Brown 	0x0000,     /* R194 */
1800ca23f8c1SMark Brown 	0x0026,     /* R195 */
1801ca23f8c1SMark Brown 	0x0C00,     /* R196 */
1802ca23f8c1SMark Brown 	0x0006,     /* R197 */
1803ca23f8c1SMark Brown 	0x0000,     /* R198 */
1804ca23f8c1SMark Brown 	0x0003,     /* R199 - Limit Switch Control */
1805ca23f8c1SMark Brown 	0x001C,     /* R200 - LDO1 Control */
1806ca23f8c1SMark Brown 	0x0400,     /* R201 - LDO1 Timeouts */
1807ca23f8c1SMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
1808ca23f8c1SMark Brown 	0x0010,     /* R203 - LDO2 Control */
1809ca23f8c1SMark Brown 	0x0C00,     /* R204 - LDO2 Timeouts */
1810ca23f8c1SMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
1811ca23f8c1SMark Brown 	0x0015,     /* R206 - LDO3 Control */
1812ca23f8c1SMark Brown 	0x0000,     /* R207 - LDO3 Timeouts */
1813ca23f8c1SMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
1814ca23f8c1SMark Brown 	0x001A,     /* R209 - LDO4 Control */
1815ca23f8c1SMark Brown 	0x0000,     /* R210 - LDO4 Timeouts */
1816ca23f8c1SMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
1817ca23f8c1SMark Brown 	0x0000,     /* R212 */
1818ca23f8c1SMark Brown 	0x0000,     /* R213 */
1819ca23f8c1SMark Brown 	0x0000,     /* R214 */
1820ca23f8c1SMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
1821ca23f8c1SMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
1822ca23f8c1SMark Brown 	0x0000,     /* R217 - OSC Control */
1823ca23f8c1SMark Brown 	0x9000,     /* R218 - RTC Tick Control */
1824ca23f8c1SMark Brown 	0x0000,     /* R219 - Security1 */
1825ca23f8c1SMark Brown 	0x4000,     /* R220 */
1826ca23f8c1SMark Brown 	0x0000,     /* R221 */
1827ca23f8c1SMark Brown 	0x0000,     /* R222 */
1828ca23f8c1SMark Brown 	0x0000,     /* R223 */
1829ca23f8c1SMark Brown 	0x0000,     /* R224 - Signal overrides */
1830ca23f8c1SMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
1831ca23f8c1SMark Brown 	0x0000,     /* R226 - Charger Overides/status */
1832ca23f8c1SMark Brown 	0x0000,     /* R227 - misc overrides */
1833ca23f8c1SMark Brown 	0x0000,     /* R228 - Supply overrides/status 1 */
1834ca23f8c1SMark Brown 	0x0000,     /* R229 - Supply overrides/status 2 */
1835ca23f8c1SMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
1836ca23f8c1SMark Brown 	0x0000,     /* R231 - comparotor overrides */
1837ca23f8c1SMark Brown 	0x0000,     /* R232 */
1838ca23f8c1SMark Brown 	0x0000,     /* R233 - State Machine status */
1839ca23f8c1SMark Brown 	0x1200,     /* R234 - FLL Test 1 */
1840ca23f8c1SMark Brown 	0x0000,     /* R235 */
1841ca23f8c1SMark Brown 	0x8000,     /* R236 */
1842ca23f8c1SMark Brown 	0x0000,     /* R237 */
1843ca23f8c1SMark Brown 	0x0000,     /* R238 */
1844ca23f8c1SMark Brown 	0x0000,     /* R239 */
1845ca23f8c1SMark Brown 	0x0003,     /* R240 */
1846ca23f8c1SMark Brown 	0x0000,     /* R241 */
1847ca23f8c1SMark Brown 	0x0000,     /* R242 */
1848ca23f8c1SMark Brown 	0x0004,     /* R243 */
1849ca23f8c1SMark Brown 	0x0300,     /* R244 */
1850ca23f8c1SMark Brown 	0x0000,     /* R245 */
1851ca23f8c1SMark Brown 	0x0200,     /* R246 */
1852ca23f8c1SMark Brown 	0x0000,     /* R247 */
1853ca23f8c1SMark Brown 	0x1000,     /* R248 - DCDC1 Test Controls */
1854ca23f8c1SMark Brown 	0x1000,     /* R249 */
1855ca23f8c1SMark Brown 	0x1000,     /* R250 - DCDC3 Test Controls */
1856ca23f8c1SMark Brown 	0x1000,     /* R251 - DCDC4 Test Controls */
1857ca23f8c1SMark Brown };
1858ca23f8c1SMark Brown #endif
1859ca23f8c1SMark Brown 
1860ca23f8c1SMark Brown #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_3
1861ca23f8c1SMark Brown 
1862ca23f8c1SMark Brown #undef WM8350_HAVE_CONFIG_MODE
1863ca23f8c1SMark Brown #define WM8350_HAVE_CONFIG_MODE
1864ca23f8c1SMark Brown 
1865ca23f8c1SMark Brown const u16 wm8351_mode3_defaults[] = {
1866ca23f8c1SMark Brown 	0x6143,     /* R0   - Reset/ID */
1867ca23f8c1SMark Brown 	0x0000,     /* R1   - ID */
1868ca23f8c1SMark Brown 	0x0001,     /* R2   - Revision */
1869ca23f8c1SMark Brown 	0x1C02,     /* R3   - System Control 1 */
1870ca23f8c1SMark Brown 	0x0204,     /* R4   - System Control 2 */
1871ca23f8c1SMark Brown 	0x0000,     /* R5   - System Hibernate */
1872ca23f8c1SMark Brown 	0x8A00,     /* R6   - Interface Control */
1873ca23f8c1SMark Brown 	0x0000,     /* R7 */
1874ca23f8c1SMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
1875ca23f8c1SMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
1876ca23f8c1SMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
1877ca23f8c1SMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
1878ca23f8c1SMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
1879ca23f8c1SMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
1880ca23f8c1SMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
1881ca23f8c1SMark Brown 	0x0000,     /* R15 */
1882ca23f8c1SMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
1883ca23f8c1SMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
1884ca23f8c1SMark Brown 	0x0101,     /* R18  - RTC Date/Month */
1885ca23f8c1SMark Brown 	0x1400,     /* R19  - RTC Year */
1886ca23f8c1SMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
1887ca23f8c1SMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
1888ca23f8c1SMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
1889ca23f8c1SMark Brown 	0x0320,     /* R23  - RTC Time Control */
1890ca23f8c1SMark Brown 	0x0000,     /* R24  - System Interrupts */
1891ca23f8c1SMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
1892ca23f8c1SMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
1893ca23f8c1SMark Brown 	0x0000,     /* R27 */
1894ca23f8c1SMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
1895ca23f8c1SMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
1896ca23f8c1SMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
1897ca23f8c1SMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
1898ca23f8c1SMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
1899ca23f8c1SMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
1900ca23f8c1SMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
1901ca23f8c1SMark Brown 	0x0000,     /* R35 */
1902ca23f8c1SMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
1903ca23f8c1SMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
1904ca23f8c1SMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
1905ca23f8c1SMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
1906ca23f8c1SMark Brown 	0x0040,     /* R40  - Clock Control 1 */
1907ca23f8c1SMark Brown 	0x0000,     /* R41  - Clock Control 2 */
1908ca23f8c1SMark Brown 	0x3A00,     /* R42  - FLL Control 1 */
1909ca23f8c1SMark Brown 	0x7086,     /* R43  - FLL Control 2 */
1910ca23f8c1SMark Brown 	0xC226,     /* R44  - FLL Control 3 */
1911ca23f8c1SMark Brown 	0x0000,     /* R45  - FLL Control 4 */
1912ca23f8c1SMark Brown 	0x0000,     /* R46 */
1913ca23f8c1SMark Brown 	0x0000,     /* R47 */
1914ca23f8c1SMark Brown 	0x0000,     /* R48  - DAC Control */
1915ca23f8c1SMark Brown 	0x0000,     /* R49 */
1916ca23f8c1SMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
1917ca23f8c1SMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
1918ca23f8c1SMark Brown 	0x0000,     /* R52 */
1919ca23f8c1SMark Brown 	0x0040,     /* R53  - DAC LR Rate */
1920ca23f8c1SMark Brown 	0x0000,     /* R54  - DAC Clock Control */
1921ca23f8c1SMark Brown 	0x0000,     /* R55 */
1922ca23f8c1SMark Brown 	0x0000,     /* R56 */
1923ca23f8c1SMark Brown 	0x0000,     /* R57 */
1924ca23f8c1SMark Brown 	0x4000,     /* R58  - DAC Mute */
1925ca23f8c1SMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
1926ca23f8c1SMark Brown 	0x0000,     /* R60  - DAC Side */
1927ca23f8c1SMark Brown 	0x0000,     /* R61 */
1928ca23f8c1SMark Brown 	0x0000,     /* R62 */
1929ca23f8c1SMark Brown 	0x0000,     /* R63 */
1930ca23f8c1SMark Brown 	0x8000,     /* R64  - ADC Control */
1931ca23f8c1SMark Brown 	0x0000,     /* R65 */
1932ca23f8c1SMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
1933ca23f8c1SMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
1934ca23f8c1SMark Brown 	0x0000,     /* R68  - ADC Divider */
1935ca23f8c1SMark Brown 	0x0000,     /* R69 */
1936ca23f8c1SMark Brown 	0x0040,     /* R70  - ADC LR Rate */
1937ca23f8c1SMark Brown 	0x0000,     /* R71 */
1938ca23f8c1SMark Brown 	0x0303,     /* R72  - Input Control */
1939ca23f8c1SMark Brown 	0x0000,     /* R73  - IN3 Input Control */
1940ca23f8c1SMark Brown 	0x0000,     /* R74  - Mic Bias Control */
1941ca23f8c1SMark Brown 	0x0000,     /* R75 */
1942ca23f8c1SMark Brown 	0x0000,     /* R76  - Output Control */
1943ca23f8c1SMark Brown 	0x0000,     /* R77  - Jack Detect */
1944ca23f8c1SMark Brown 	0x0000,     /* R78  - Anti Pop Control */
1945ca23f8c1SMark Brown 	0x0000,     /* R79 */
1946ca23f8c1SMark Brown 	0x0040,     /* R80  - Left Input Volume */
1947ca23f8c1SMark Brown 	0x0040,     /* R81  - Right Input Volume */
1948ca23f8c1SMark Brown 	0x0000,     /* R82 */
1949ca23f8c1SMark Brown 	0x0000,     /* R83 */
1950ca23f8c1SMark Brown 	0x0000,     /* R84 */
1951ca23f8c1SMark Brown 	0x0000,     /* R85 */
1952ca23f8c1SMark Brown 	0x0000,     /* R86 */
1953ca23f8c1SMark Brown 	0x0000,     /* R87 */
1954ca23f8c1SMark Brown 	0x0800,     /* R88  - Left Mixer Control */
1955ca23f8c1SMark Brown 	0x1000,     /* R89  - Right Mixer Control */
1956ca23f8c1SMark Brown 	0x0000,     /* R90 */
1957ca23f8c1SMark Brown 	0x0000,     /* R91 */
1958ca23f8c1SMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
1959ca23f8c1SMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
1960ca23f8c1SMark Brown 	0x0000,     /* R94 */
1961ca23f8c1SMark Brown 	0x0000,     /* R95 */
1962ca23f8c1SMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
1963ca23f8c1SMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
1964ca23f8c1SMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
1965ca23f8c1SMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
1966ca23f8c1SMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
1967ca23f8c1SMark Brown 	0x0000,     /* R101 */
1968ca23f8c1SMark Brown 	0x0000,     /* R102 */
1969ca23f8c1SMark Brown 	0x0000,     /* R103 */
1970ca23f8c1SMark Brown 	0x00E4,     /* R104 - OUT1L Volume */
1971ca23f8c1SMark Brown 	0x00E4,     /* R105 - OUT1R Volume */
1972ca23f8c1SMark Brown 	0x00E4,     /* R106 - OUT2L Volume */
1973ca23f8c1SMark Brown 	0x02E4,     /* R107 - OUT2R Volume */
1974ca23f8c1SMark Brown 	0x0000,     /* R108 */
1975ca23f8c1SMark Brown 	0x0000,     /* R109 */
1976ca23f8c1SMark Brown 	0x0000,     /* R110 */
1977ca23f8c1SMark Brown 	0x0000,     /* R111 - BEEP Volume */
1978ca23f8c1SMark Brown 	0x0A00,     /* R112 - AI Formating */
1979ca23f8c1SMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
1980ca23f8c1SMark Brown 	0x0020,     /* R114 - AI ADC Control */
1981ca23f8c1SMark Brown 	0x0020,     /* R115 - AI DAC Control */
1982ca23f8c1SMark Brown 	0x0000,     /* R116 */
1983ca23f8c1SMark Brown 	0x0000,     /* R117 */
1984ca23f8c1SMark Brown 	0x0000,     /* R118 */
1985ca23f8c1SMark Brown 	0x0000,     /* R119 */
1986ca23f8c1SMark Brown 	0x0000,     /* R120 */
1987ca23f8c1SMark Brown 	0x0000,     /* R121 */
1988ca23f8c1SMark Brown 	0x0000,     /* R122 */
1989ca23f8c1SMark Brown 	0x0000,     /* R123 */
1990ca23f8c1SMark Brown 	0x0000,     /* R124 */
1991ca23f8c1SMark Brown 	0x0000,     /* R125 */
1992ca23f8c1SMark Brown 	0x0000,     /* R126 */
1993ca23f8c1SMark Brown 	0x0000,     /* R127 */
1994ca23f8c1SMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
1995ca23f8c1SMark Brown 	0x0010,     /* R129 - GPIO Pin pull up Control */
1996ca23f8c1SMark Brown 	0x0000,     /* R130 - GPIO Pull down Control */
1997ca23f8c1SMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
1998ca23f8c1SMark Brown 	0x0000,     /* R132 */
1999ca23f8c1SMark Brown 	0x0000,     /* R133 - GPIO Control */
2000ca23f8c1SMark Brown 	0x0BFB,     /* R134 - GPIO Configuration (i/o) */
2001ca23f8c1SMark Brown 	0x0FFD,     /* R135 - GPIO Pin Polarity / Type */
2002ca23f8c1SMark Brown 	0x0000,     /* R136 */
2003ca23f8c1SMark Brown 	0x0000,     /* R137 */
2004ca23f8c1SMark Brown 	0x0000,     /* R138 */
2005ca23f8c1SMark Brown 	0x0000,     /* R139 */
2006ca23f8c1SMark Brown 	0x0310,     /* R140 - GPIO Function Select 1 */
2007ca23f8c1SMark Brown 	0x0001,     /* R141 - GPIO Function Select 2 */
2008ca23f8c1SMark Brown 	0x2300,     /* R142 - GPIO Function Select 3 */
2009ca23f8c1SMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
2010ca23f8c1SMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
2011ca23f8c1SMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
2012ca23f8c1SMark Brown 	0x0000,     /* R146 */
2013ca23f8c1SMark Brown 	0x0000,     /* R147 */
2014ca23f8c1SMark Brown 	0x0000,     /* R148 */
2015ca23f8c1SMark Brown 	0x0000,     /* R149 */
2016ca23f8c1SMark Brown 	0x0000,     /* R150 */
2017ca23f8c1SMark Brown 	0x0000,     /* R151 */
2018ca23f8c1SMark Brown 	0x7000,     /* R152 - AUX1 Readback */
2019ca23f8c1SMark Brown 	0x7000,     /* R153 - AUX2 Readback */
2020ca23f8c1SMark Brown 	0x7000,     /* R154 - AUX3 Readback */
2021ca23f8c1SMark Brown 	0x7000,     /* R155 - AUX4 Readback */
2022ca23f8c1SMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
2023ca23f8c1SMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
2024ca23f8c1SMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
2025ca23f8c1SMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
2026ca23f8c1SMark Brown 	0x0000,     /* R160 */
2027ca23f8c1SMark Brown 	0x0000,     /* R161 */
2028ca23f8c1SMark Brown 	0x0000,     /* R162 */
2029ca23f8c1SMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
2030ca23f8c1SMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
2031ca23f8c1SMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
2032ca23f8c1SMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
2033ca23f8c1SMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
2034ca23f8c1SMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
2035ca23f8c1SMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
2036ca23f8c1SMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
2037ca23f8c1SMark Brown 	0x0000,     /* R171 */
2038ca23f8c1SMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
2039ca23f8c1SMark Brown 	0x0000,     /* R173 - CSA Flash control */
2040ca23f8c1SMark Brown 	0x0000,     /* R174 */
2041ca23f8c1SMark Brown 	0x0000,     /* R175 */
2042ca23f8c1SMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
2043ca23f8c1SMark Brown 	0x032D,     /* R177 - DCDC Active options */
2044ca23f8c1SMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
2045ca23f8c1SMark Brown 	0x0025,     /* R179 - Power-check comparator */
2046ca23f8c1SMark Brown 	0x000E,     /* R180 - DCDC1 Control */
2047ca23f8c1SMark Brown 	0x0400,     /* R181 - DCDC1 Timeouts */
2048ca23f8c1SMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
2049ca23f8c1SMark Brown 	0x0018,     /* R183 - DCDC2 Control */
2050ca23f8c1SMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
2051ca23f8c1SMark Brown 	0x0000,     /* R185 */
2052ca23f8c1SMark Brown 	0x0026,     /* R186 - DCDC3 Control */
2053ca23f8c1SMark Brown 	0x0800,     /* R187 - DCDC3 Timeouts */
2054ca23f8c1SMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
2055ca23f8c1SMark Brown 	0x0062,     /* R189 - DCDC4 Control */
2056ca23f8c1SMark Brown 	0x1400,     /* R190 - DCDC4 Timeouts */
2057ca23f8c1SMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
2058ca23f8c1SMark Brown 	0x0008,     /* R192 */
2059ca23f8c1SMark Brown 	0x0000,     /* R193 */
2060ca23f8c1SMark Brown 	0x0000,     /* R194 */
2061ca23f8c1SMark Brown 	0x0026,     /* R195 */
2062ca23f8c1SMark Brown 	0x0400,     /* R196 */
2063ca23f8c1SMark Brown 	0x0006,     /* R197 */
2064ca23f8c1SMark Brown 	0x0000,     /* R198 */
2065ca23f8c1SMark Brown 	0x0003,     /* R199 - Limit Switch Control */
2066ca23f8c1SMark Brown 	0x0006,     /* R200 - LDO1 Control */
2067ca23f8c1SMark Brown 	0x0C00,     /* R201 - LDO1 Timeouts */
2068ca23f8c1SMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
2069ca23f8c1SMark Brown 	0x0016,     /* R203 - LDO2 Control */
2070ca23f8c1SMark Brown 	0x0000,     /* R204 - LDO2 Timeouts */
2071ca23f8c1SMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
2072ca23f8c1SMark Brown 	0x0019,     /* R206 - LDO3 Control */
2073ca23f8c1SMark Brown 	0x0000,     /* R207 - LDO3 Timeouts */
2074ca23f8c1SMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
2075ca23f8c1SMark Brown 	0x001A,     /* R209 - LDO4 Control */
2076ca23f8c1SMark Brown 	0x1000,     /* R210 - LDO4 Timeouts */
2077ca23f8c1SMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
2078ca23f8c1SMark Brown 	0x0000,     /* R212 */
2079ca23f8c1SMark Brown 	0x0000,     /* R213 */
2080ca23f8c1SMark Brown 	0x0000,     /* R214 */
2081ca23f8c1SMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
2082ca23f8c1SMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
2083ca23f8c1SMark Brown 	0x0000,     /* R217 - OSC Control */
2084ca23f8c1SMark Brown 	0x9000,     /* R218 - RTC Tick Control */
2085ca23f8c1SMark Brown 	0x0000,     /* R219 - Security1 */
2086ca23f8c1SMark Brown 	0x4000,     /* R220 */
2087ca23f8c1SMark Brown 	0x0000,     /* R221 */
2088ca23f8c1SMark Brown 	0x0000,     /* R222 */
2089ca23f8c1SMark Brown 	0x0000,     /* R223 */
2090ca23f8c1SMark Brown 	0x0000,     /* R224 - Signal overrides */
2091ca23f8c1SMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
2092ca23f8c1SMark Brown 	0x0000,     /* R226 - Charger Overides/status */
2093ca23f8c1SMark Brown 	0x0000,     /* R227 - misc overrides */
2094ca23f8c1SMark Brown 	0x0000,     /* R228 - Supply overrides/status 1 */
2095ca23f8c1SMark Brown 	0x0000,     /* R229 - Supply overrides/status 2 */
2096ca23f8c1SMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
2097ca23f8c1SMark Brown 	0x0000,     /* R231 - comparotor overrides */
2098ca23f8c1SMark Brown 	0x0000,     /* R232 */
2099ca23f8c1SMark Brown 	0x0000,     /* R233 - State Machine status */
2100ca23f8c1SMark Brown 	0x1200,     /* R234 - FLL Test 1 */
2101ca23f8c1SMark Brown 	0x0000,     /* R235 */
2102ca23f8c1SMark Brown 	0x8000,     /* R236 */
2103ca23f8c1SMark Brown 	0x0000,     /* R237 */
2104ca23f8c1SMark Brown 	0x0000,     /* R238 */
2105ca23f8c1SMark Brown 	0x0000,     /* R239 */
2106ca23f8c1SMark Brown 	0x0003,     /* R240 */
2107ca23f8c1SMark Brown 	0x0000,     /* R241 */
2108ca23f8c1SMark Brown 	0x0000,     /* R242 */
2109ca23f8c1SMark Brown 	0x0004,     /* R243 */
2110ca23f8c1SMark Brown 	0x0300,     /* R244 */
2111ca23f8c1SMark Brown 	0x0000,     /* R245 */
2112ca23f8c1SMark Brown 	0x0200,     /* R246 */
2113ca23f8c1SMark Brown 	0x0000,     /* R247 */
2114ca23f8c1SMark Brown 	0x1000,     /* R248 - DCDC1 Test Controls */
2115ca23f8c1SMark Brown 	0x1000,     /* R249 */
2116ca23f8c1SMark Brown 	0x1000,     /* R250 - DCDC3 Test Controls */
2117ca23f8c1SMark Brown 	0x1000,     /* R251 - DCDC4 Test Controls */
2118ca23f8c1SMark Brown };
2119ca23f8c1SMark Brown #endif
2120ca23f8c1SMark Brown 
212196920630SMark Brown #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_0
212296920630SMark Brown 
212396920630SMark Brown #undef WM8350_HAVE_CONFIG_MODE
212496920630SMark Brown #define WM8350_HAVE_CONFIG_MODE
212596920630SMark Brown 
212696920630SMark Brown const u16 wm8352_mode0_defaults[] = {
212796920630SMark Brown 	0x6143,     /* R0   - Reset/ID */
212896920630SMark Brown 	0x0000,     /* R1   - ID */
212996920630SMark Brown 	0x0002,     /* R2   - Revision */
213096920630SMark Brown 	0x1C02,     /* R3   - System Control 1 */
213196920630SMark Brown 	0x0004,     /* R4   - System Control 2 */
213296920630SMark Brown 	0x0000,     /* R5   - System Hibernate */
213396920630SMark Brown 	0x8A00,     /* R6   - Interface Control */
213496920630SMark Brown 	0x0000,     /* R7 */
213596920630SMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
213696920630SMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
213796920630SMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
213896920630SMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
213996920630SMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
214096920630SMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
214196920630SMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
214296920630SMark Brown 	0x0000,     /* R15 */
214396920630SMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
214496920630SMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
214596920630SMark Brown 	0x0101,     /* R18  - RTC Date/Month */
214696920630SMark Brown 	0x1400,     /* R19  - RTC Year */
214796920630SMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
214896920630SMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
214996920630SMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
215096920630SMark Brown 	0x0320,     /* R23  - RTC Time Control */
215196920630SMark Brown 	0x0000,     /* R24  - System Interrupts */
215296920630SMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
215396920630SMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
215496920630SMark Brown 	0x0000,     /* R27 */
215596920630SMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
215696920630SMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
215796920630SMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
215896920630SMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
215996920630SMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
216096920630SMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
216196920630SMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
216296920630SMark Brown 	0x0000,     /* R35 */
216396920630SMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
216496920630SMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
216596920630SMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
216696920630SMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
216796920630SMark Brown 	0x0040,     /* R40  - Clock Control 1 */
216896920630SMark Brown 	0x0000,     /* R41  - Clock Control 2 */
216996920630SMark Brown 	0x3A00,     /* R42  - FLL Control 1 */
217096920630SMark Brown 	0x7086,     /* R43  - FLL Control 2 */
217196920630SMark Brown 	0xC226,     /* R44  - FLL Control 3 */
217296920630SMark Brown 	0x0000,     /* R45  - FLL Control 4 */
217396920630SMark Brown 	0x0000,     /* R46 */
217496920630SMark Brown 	0x0000,     /* R47 */
217596920630SMark Brown 	0x0000,     /* R48  - DAC Control */
217696920630SMark Brown 	0x0000,     /* R49 */
217796920630SMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
217896920630SMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
217996920630SMark Brown 	0x0000,     /* R52 */
218096920630SMark Brown 	0x0040,     /* R53  - DAC LR Rate */
218196920630SMark Brown 	0x0000,     /* R54  - DAC Clock Control */
218296920630SMark Brown 	0x0000,     /* R55 */
218396920630SMark Brown 	0x0000,     /* R56 */
218496920630SMark Brown 	0x0000,     /* R57 */
218596920630SMark Brown 	0x4000,     /* R58  - DAC Mute */
218696920630SMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
218796920630SMark Brown 	0x0000,     /* R60  - DAC Side */
218896920630SMark Brown 	0x0000,     /* R61 */
218996920630SMark Brown 	0x0000,     /* R62 */
219096920630SMark Brown 	0x0000,     /* R63 */
219196920630SMark Brown 	0x8000,     /* R64  - ADC Control */
219296920630SMark Brown 	0x0000,     /* R65 */
219396920630SMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
219496920630SMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
219596920630SMark Brown 	0x0000,     /* R68  - ADC Divider */
219696920630SMark Brown 	0x0000,     /* R69 */
219796920630SMark Brown 	0x0040,     /* R70  - ADC LR Rate */
219896920630SMark Brown 	0x0000,     /* R71 */
219996920630SMark Brown 	0x0303,     /* R72  - Input Control */
220096920630SMark Brown 	0x0000,     /* R73  - IN3 Input Control */
220196920630SMark Brown 	0x0000,     /* R74  - Mic Bias Control */
220296920630SMark Brown 	0x0000,     /* R75 */
220396920630SMark Brown 	0x0000,     /* R76  - Output Control */
220496920630SMark Brown 	0x0000,     /* R77  - Jack Detect */
220596920630SMark Brown 	0x0000,     /* R78  - Anti Pop Control */
220696920630SMark Brown 	0x0000,     /* R79 */
220796920630SMark Brown 	0x0040,     /* R80  - Left Input Volume */
220896920630SMark Brown 	0x0040,     /* R81  - Right Input Volume */
220996920630SMark Brown 	0x0000,     /* R82 */
221096920630SMark Brown 	0x0000,     /* R83 */
221196920630SMark Brown 	0x0000,     /* R84 */
221296920630SMark Brown 	0x0000,     /* R85 */
221396920630SMark Brown 	0x0000,     /* R86 */
221496920630SMark Brown 	0x0000,     /* R87 */
221596920630SMark Brown 	0x0800,     /* R88  - Left Mixer Control */
221696920630SMark Brown 	0x1000,     /* R89  - Right Mixer Control */
221796920630SMark Brown 	0x0000,     /* R90 */
221896920630SMark Brown 	0x0000,     /* R91 */
221996920630SMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
222096920630SMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
222196920630SMark Brown 	0x0000,     /* R94 */
222296920630SMark Brown 	0x0000,     /* R95 */
222396920630SMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
222496920630SMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
222596920630SMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
222696920630SMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
222796920630SMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
222896920630SMark Brown 	0x0000,     /* R101 */
222996920630SMark Brown 	0x0000,     /* R102 */
223096920630SMark Brown 	0x0000,     /* R103 */
223196920630SMark Brown 	0x00E4,     /* R104 - OUT1L Volume */
223296920630SMark Brown 	0x00E4,     /* R105 - OUT1R Volume */
223396920630SMark Brown 	0x00E4,     /* R106 - OUT2L Volume */
223496920630SMark Brown 	0x02E4,     /* R107 - OUT2R Volume */
223596920630SMark Brown 	0x0000,     /* R108 */
223696920630SMark Brown 	0x0000,     /* R109 */
223796920630SMark Brown 	0x0000,     /* R110 */
223896920630SMark Brown 	0x0000,     /* R111 - BEEP Volume */
223996920630SMark Brown 	0x0A00,     /* R112 - AI Formating */
224096920630SMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
224196920630SMark Brown 	0x0020,     /* R114 - AI ADC Control */
224296920630SMark Brown 	0x0020,     /* R115 - AI DAC Control */
224396920630SMark Brown 	0x0000,     /* R116 */
224496920630SMark Brown 	0x0000,     /* R117 */
224596920630SMark Brown 	0x0000,     /* R118 */
224696920630SMark Brown 	0x0000,     /* R119 */
224796920630SMark Brown 	0x0000,     /* R120 */
224896920630SMark Brown 	0x0000,     /* R121 */
224996920630SMark Brown 	0x0000,     /* R122 */
225096920630SMark Brown 	0x0000,     /* R123 */
225196920630SMark Brown 	0x0000,     /* R124 */
225296920630SMark Brown 	0x0000,     /* R125 */
225396920630SMark Brown 	0x0000,     /* R126 */
225496920630SMark Brown 	0x0000,     /* R127 */
225596920630SMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
225696920630SMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
225796920630SMark Brown 	0x0000,     /* R130 - GPIO Pull down Control */
225896920630SMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
225996920630SMark Brown 	0x0000,     /* R132 */
226096920630SMark Brown 	0x0000,     /* R133 - GPIO Control */
226196920630SMark Brown 	0x0FFC,     /* R134 - GPIO Configuration (i/o) */
226296920630SMark Brown 	0x0FFC,     /* R135 - GPIO Pin Polarity / Type */
226396920630SMark Brown 	0x0000,     /* R136 */
226496920630SMark Brown 	0x0000,     /* R137 */
226596920630SMark Brown 	0x0000,     /* R138 */
226696920630SMark Brown 	0x0000,     /* R139 */
226796920630SMark Brown 	0x0013,     /* R140 - GPIO Function Select 1 */
226896920630SMark Brown 	0x0000,     /* R141 - GPIO Function Select 2 */
226996920630SMark Brown 	0x0000,     /* R142 - GPIO Function Select 3 */
227096920630SMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
227196920630SMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
227296920630SMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
227396920630SMark Brown 	0x0000,     /* R146 */
227496920630SMark Brown 	0x0000,     /* R147 */
227596920630SMark Brown 	0x0000,     /* R148 */
227696920630SMark Brown 	0x0000,     /* R149 */
227796920630SMark Brown 	0x0000,     /* R150 */
227896920630SMark Brown 	0x0000,     /* R151 */
227996920630SMark Brown 	0x7000,     /* R152 - AUX1 Readback */
228096920630SMark Brown 	0x7000,     /* R153 - AUX2 Readback */
228196920630SMark Brown 	0x7000,     /* R154 - AUX3 Readback */
228296920630SMark Brown 	0x7000,     /* R155 - AUX4 Readback */
228396920630SMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
228496920630SMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
228596920630SMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
228696920630SMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
228796920630SMark Brown 	0x0000,     /* R160 */
228896920630SMark Brown 	0x0000,     /* R161 */
228996920630SMark Brown 	0x0000,     /* R162 */
229096920630SMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
229196920630SMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
229296920630SMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
229396920630SMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
229496920630SMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
229596920630SMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
229696920630SMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
229796920630SMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
229896920630SMark Brown 	0x0000,     /* R171 */
229996920630SMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
230096920630SMark Brown 	0x0000,     /* R173 - CSA Flash control */
230196920630SMark Brown 	0x0000,     /* R174 - Current Sink Driver B */
230296920630SMark Brown 	0x0000,     /* R175 - CSB Flash control */
230396920630SMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
230496920630SMark Brown 	0x032D,     /* R177 - DCDC Active options */
230596920630SMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
230696920630SMark Brown 	0x0025,     /* R179 - Power-check comparator */
230796920630SMark Brown 	0x000E,     /* R180 - DCDC1 Control */
230896920630SMark Brown 	0x0000,     /* R181 - DCDC1 Timeouts */
230996920630SMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
231096920630SMark Brown 	0x0018,     /* R183 - DCDC2 Control */
231196920630SMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
231296920630SMark Brown 	0x0000,     /* R185 */
231396920630SMark Brown 	0x0000,     /* R186 - DCDC3 Control */
231496920630SMark Brown 	0x0000,     /* R187 - DCDC3 Timeouts */
231596920630SMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
231696920630SMark Brown 	0x0000,     /* R189 - DCDC4 Control */
231796920630SMark Brown 	0x0000,     /* R190 - DCDC4 Timeouts */
231896920630SMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
231996920630SMark Brown 	0x0008,     /* R192 - DCDC5 Control */
232096920630SMark Brown 	0x0000,     /* R193 - DCDC5 Timeouts */
232196920630SMark Brown 	0x0000,     /* R194 */
232296920630SMark Brown 	0x0000,     /* R195 - DCDC6 Control */
232396920630SMark Brown 	0x0000,     /* R196 - DCDC6 Timeouts */
232496920630SMark Brown 	0x0006,     /* R197 - DCDC6 Low Power */
232596920630SMark Brown 	0x0000,     /* R198 */
232696920630SMark Brown 	0x0003,     /* R199 - Limit Switch Control */
232796920630SMark Brown 	0x001C,     /* R200 - LDO1 Control */
232896920630SMark Brown 	0x0000,     /* R201 - LDO1 Timeouts */
232996920630SMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
233096920630SMark Brown 	0x001B,     /* R203 - LDO2 Control */
233196920630SMark Brown 	0x0000,     /* R204 - LDO2 Timeouts */
233296920630SMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
233396920630SMark Brown 	0x001B,     /* R206 - LDO3 Control */
233496920630SMark Brown 	0x0000,     /* R207 - LDO3 Timeouts */
233596920630SMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
233696920630SMark Brown 	0x001B,     /* R209 - LDO4 Control */
233796920630SMark Brown 	0x0000,     /* R210 - LDO4 Timeouts */
233896920630SMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
233996920630SMark Brown 	0x0000,     /* R212 */
234096920630SMark Brown 	0x0000,     /* R213 */
234196920630SMark Brown 	0x0000,     /* R214 */
234296920630SMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
234396920630SMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
234496920630SMark Brown 	0x0000,     /* R217 - OSC Control */
234596920630SMark Brown 	0x9000,     /* R218 - RTC Tick Control */
234696920630SMark Brown 	0x0000,     /* R219 - Security1 */
234796920630SMark Brown 	0x4000,     /* R220 */
234896920630SMark Brown 	0x0000,     /* R221 */
234996920630SMark Brown 	0x0000,     /* R222 */
235096920630SMark Brown 	0x0000,     /* R223 */
235196920630SMark Brown 	0x0000,     /* R224 - Signal overrides */
235296920630SMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
235396920630SMark Brown 	0x0000,     /* R226 - Charger Overides/status */
235496920630SMark Brown 	0x0000,     /* R227 - misc overrides */
235596920630SMark Brown 	0x0000,     /* R228 - Supply overrides/status 1 */
235696920630SMark Brown 	0x0000,     /* R229 - Supply overrides/status 2 */
235796920630SMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
235896920630SMark Brown 	0x0000,     /* R231 - comparotor overrides */
235996920630SMark Brown 	0x0000,     /* R232 */
236096920630SMark Brown 	0x0000,     /* R233 - State Machine status */
236196920630SMark Brown 	0x1200,     /* R234 */
236296920630SMark Brown 	0x0000,     /* R235 */
236396920630SMark Brown 	0x8000,     /* R236 */
236496920630SMark Brown 	0x0000,     /* R237 */
236596920630SMark Brown 	0x0000,     /* R238 */
236696920630SMark Brown 	0x0000,     /* R239 */
236796920630SMark Brown 	0x0003,     /* R240 */
236896920630SMark Brown 	0x0000,     /* R241 */
236996920630SMark Brown 	0x0000,     /* R242 */
237096920630SMark Brown 	0x0004,     /* R243 */
237196920630SMark Brown 	0x0300,     /* R244 */
237296920630SMark Brown 	0x0000,     /* R245 */
237396920630SMark Brown 	0x0200,     /* R246 */
237496920630SMark Brown 	0x0000,     /* R247 */
237596920630SMark Brown 	0x1000,     /* R248 - DCDC1 Test Controls */
237696920630SMark Brown 	0x5000,     /* R249 */
237796920630SMark Brown 	0x1000,     /* R250 - DCDC3 Test Controls */
237896920630SMark Brown 	0x1000,     /* R251 - DCDC4 Test Controls */
237996920630SMark Brown 	0x5100,     /* R252 */
238096920630SMark Brown 	0x1000,     /* R253 - DCDC6 Test Controls */
238196920630SMark Brown };
238296920630SMark Brown #endif
238396920630SMark Brown 
238496920630SMark Brown #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_1
238596920630SMark Brown 
238696920630SMark Brown #undef WM8350_HAVE_CONFIG_MODE
238796920630SMark Brown #define WM8350_HAVE_CONFIG_MODE
238896920630SMark Brown 
238996920630SMark Brown const u16 wm8352_mode1_defaults[] = {
239096920630SMark Brown 	0x6143,     /* R0   - Reset/ID */
239196920630SMark Brown 	0x0000,     /* R1   - ID */
239296920630SMark Brown 	0x0002,     /* R2   - Revision */
239396920630SMark Brown 	0x1C02,     /* R3   - System Control 1 */
239496920630SMark Brown 	0x0204,     /* R4   - System Control 2 */
239596920630SMark Brown 	0x0000,     /* R5   - System Hibernate */
239696920630SMark Brown 	0x8A00,     /* R6   - Interface Control */
239796920630SMark Brown 	0x0000,     /* R7 */
239896920630SMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
239996920630SMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
240096920630SMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
240196920630SMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
240296920630SMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
240396920630SMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
240496920630SMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
240596920630SMark Brown 	0x0000,     /* R15 */
240696920630SMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
240796920630SMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
240896920630SMark Brown 	0x0101,     /* R18  - RTC Date/Month */
240996920630SMark Brown 	0x1400,     /* R19  - RTC Year */
241096920630SMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
241196920630SMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
241296920630SMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
241396920630SMark Brown 	0x0320,     /* R23  - RTC Time Control */
241496920630SMark Brown 	0x0000,     /* R24  - System Interrupts */
241596920630SMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
241696920630SMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
241796920630SMark Brown 	0x0000,     /* R27 */
241896920630SMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
241996920630SMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
242096920630SMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
242196920630SMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
242296920630SMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
242396920630SMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
242496920630SMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
242596920630SMark Brown 	0x0000,     /* R35 */
242696920630SMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
242796920630SMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
242896920630SMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
242996920630SMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
243096920630SMark Brown 	0x0040,     /* R40  - Clock Control 1 */
243196920630SMark Brown 	0x0000,     /* R41  - Clock Control 2 */
243296920630SMark Brown 	0x3A00,     /* R42  - FLL Control 1 */
243396920630SMark Brown 	0x7086,     /* R43  - FLL Control 2 */
243496920630SMark Brown 	0xC226,     /* R44  - FLL Control 3 */
243596920630SMark Brown 	0x0000,     /* R45  - FLL Control 4 */
243696920630SMark Brown 	0x0000,     /* R46 */
243796920630SMark Brown 	0x0000,     /* R47 */
243896920630SMark Brown 	0x0000,     /* R48  - DAC Control */
243996920630SMark Brown 	0x0000,     /* R49 */
244096920630SMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
244196920630SMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
244296920630SMark Brown 	0x0000,     /* R52 */
244396920630SMark Brown 	0x0040,     /* R53  - DAC LR Rate */
244496920630SMark Brown 	0x0000,     /* R54  - DAC Clock Control */
244596920630SMark Brown 	0x0000,     /* R55 */
244696920630SMark Brown 	0x0000,     /* R56 */
244796920630SMark Brown 	0x0000,     /* R57 */
244896920630SMark Brown 	0x4000,     /* R58  - DAC Mute */
244996920630SMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
245096920630SMark Brown 	0x0000,     /* R60  - DAC Side */
245196920630SMark Brown 	0x0000,     /* R61 */
245296920630SMark Brown 	0x0000,     /* R62 */
245396920630SMark Brown 	0x0000,     /* R63 */
245496920630SMark Brown 	0x8000,     /* R64  - ADC Control */
245596920630SMark Brown 	0x0000,     /* R65 */
245696920630SMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
245796920630SMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
245896920630SMark Brown 	0x0000,     /* R68  - ADC Divider */
245996920630SMark Brown 	0x0000,     /* R69 */
246096920630SMark Brown 	0x0040,     /* R70  - ADC LR Rate */
246196920630SMark Brown 	0x0000,     /* R71 */
246296920630SMark Brown 	0x0303,     /* R72  - Input Control */
246396920630SMark Brown 	0x0000,     /* R73  - IN3 Input Control */
246496920630SMark Brown 	0x0000,     /* R74  - Mic Bias Control */
246596920630SMark Brown 	0x0000,     /* R75 */
246696920630SMark Brown 	0x0000,     /* R76  - Output Control */
246796920630SMark Brown 	0x0000,     /* R77  - Jack Detect */
246896920630SMark Brown 	0x0000,     /* R78  - Anti Pop Control */
246996920630SMark Brown 	0x0000,     /* R79 */
247096920630SMark Brown 	0x0040,     /* R80  - Left Input Volume */
247196920630SMark Brown 	0x0040,     /* R81  - Right Input Volume */
247296920630SMark Brown 	0x0000,     /* R82 */
247396920630SMark Brown 	0x0000,     /* R83 */
247496920630SMark Brown 	0x0000,     /* R84 */
247596920630SMark Brown 	0x0000,     /* R85 */
247696920630SMark Brown 	0x0000,     /* R86 */
247796920630SMark Brown 	0x0000,     /* R87 */
247896920630SMark Brown 	0x0800,     /* R88  - Left Mixer Control */
247996920630SMark Brown 	0x1000,     /* R89  - Right Mixer Control */
248096920630SMark Brown 	0x0000,     /* R90 */
248196920630SMark Brown 	0x0000,     /* R91 */
248296920630SMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
248396920630SMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
248496920630SMark Brown 	0x0000,     /* R94 */
248596920630SMark Brown 	0x0000,     /* R95 */
248696920630SMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
248796920630SMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
248896920630SMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
248996920630SMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
249096920630SMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
249196920630SMark Brown 	0x0000,     /* R101 */
249296920630SMark Brown 	0x0000,     /* R102 */
249396920630SMark Brown 	0x0000,     /* R103 */
249496920630SMark Brown 	0x00E4,     /* R104 - OUT1L Volume */
249596920630SMark Brown 	0x00E4,     /* R105 - OUT1R Volume */
249696920630SMark Brown 	0x00E4,     /* R106 - OUT2L Volume */
249796920630SMark Brown 	0x02E4,     /* R107 - OUT2R Volume */
249896920630SMark Brown 	0x0000,     /* R108 */
249996920630SMark Brown 	0x0000,     /* R109 */
250096920630SMark Brown 	0x0000,     /* R110 */
250196920630SMark Brown 	0x0000,     /* R111 - BEEP Volume */
250296920630SMark Brown 	0x0A00,     /* R112 - AI Formating */
250396920630SMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
250496920630SMark Brown 	0x0020,     /* R114 - AI ADC Control */
250596920630SMark Brown 	0x0020,     /* R115 - AI DAC Control */
250696920630SMark Brown 	0x0000,     /* R116 */
250796920630SMark Brown 	0x0000,     /* R117 */
250896920630SMark Brown 	0x0000,     /* R118 */
250996920630SMark Brown 	0x0000,     /* R119 */
251096920630SMark Brown 	0x0000,     /* R120 */
251196920630SMark Brown 	0x0000,     /* R121 */
251296920630SMark Brown 	0x0000,     /* R122 */
251396920630SMark Brown 	0x0000,     /* R123 */
251496920630SMark Brown 	0x0000,     /* R124 */
251596920630SMark Brown 	0x0000,     /* R125 */
251696920630SMark Brown 	0x0000,     /* R126 */
251796920630SMark Brown 	0x0000,     /* R127 */
251896920630SMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
251996920630SMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
252096920630SMark Brown 	0x0000,     /* R130 - GPIO Pull down Control */
252196920630SMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
252296920630SMark Brown 	0x0000,     /* R132 */
252396920630SMark Brown 	0x0000,     /* R133 - GPIO Control */
252496920630SMark Brown 	0x0BFB,     /* R134 - GPIO Configuration (i/o) */
252596920630SMark Brown 	0x0FFF,     /* R135 - GPIO Pin Polarity / Type */
252696920630SMark Brown 	0x0000,     /* R136 */
252796920630SMark Brown 	0x0000,     /* R137 */
252896920630SMark Brown 	0x0000,     /* R138 */
252996920630SMark Brown 	0x0000,     /* R139 */
253096920630SMark Brown 	0x0300,     /* R140 - GPIO Function Select 1 */
253196920630SMark Brown 	0x0000,     /* R141 - GPIO Function Select 2 */
253296920630SMark Brown 	0x2300,     /* R142 - GPIO Function Select 3 */
253396920630SMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
253496920630SMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
253596920630SMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
253696920630SMark Brown 	0x0000,     /* R146 */
253796920630SMark Brown 	0x0000,     /* R147 */
253896920630SMark Brown 	0x0000,     /* R148 */
253996920630SMark Brown 	0x0000,     /* R149 */
254096920630SMark Brown 	0x0000,     /* R150 */
254196920630SMark Brown 	0x0000,     /* R151 */
254296920630SMark Brown 	0x7000,     /* R152 - AUX1 Readback */
254396920630SMark Brown 	0x7000,     /* R153 - AUX2 Readback */
254496920630SMark Brown 	0x7000,     /* R154 - AUX3 Readback */
254596920630SMark Brown 	0x7000,     /* R155 - AUX4 Readback */
254696920630SMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
254796920630SMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
254896920630SMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
254996920630SMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
255096920630SMark Brown 	0x0000,     /* R160 */
255196920630SMark Brown 	0x0000,     /* R161 */
255296920630SMark Brown 	0x0000,     /* R162 */
255396920630SMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
255496920630SMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
255596920630SMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
255696920630SMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
255796920630SMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
255896920630SMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
255996920630SMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
256096920630SMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
256196920630SMark Brown 	0x0000,     /* R171 */
256296920630SMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
256396920630SMark Brown 	0x0000,     /* R173 - CSA Flash control */
256496920630SMark Brown 	0x0000,     /* R174 - Current Sink Driver B */
256596920630SMark Brown 	0x0000,     /* R175 - CSB Flash control */
256696920630SMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
256796920630SMark Brown 	0x032D,     /* R177 - DCDC Active options */
256896920630SMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
256996920630SMark Brown 	0x0025,     /* R179 - Power-check comparator */
257096920630SMark Brown 	0x0062,     /* R180 - DCDC1 Control */
257196920630SMark Brown 	0x0400,     /* R181 - DCDC1 Timeouts */
257296920630SMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
257396920630SMark Brown 	0x0018,     /* R183 - DCDC2 Control */
257496920630SMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
257596920630SMark Brown 	0x0000,     /* R185 */
257696920630SMark Brown 	0x0006,     /* R186 - DCDC3 Control */
257796920630SMark Brown 	0x0800,     /* R187 - DCDC3 Timeouts */
257896920630SMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
257996920630SMark Brown 	0x0006,     /* R189 - DCDC4 Control */
258096920630SMark Brown 	0x0C00,     /* R190 - DCDC4 Timeouts */
258196920630SMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
258296920630SMark Brown 	0x0008,     /* R192 - DCDC5 Control */
258396920630SMark Brown 	0x0000,     /* R193 - DCDC5 Timeouts */
258496920630SMark Brown 	0x0000,     /* R194 */
258596920630SMark Brown 	0x0026,     /* R195 - DCDC6 Control */
258696920630SMark Brown 	0x1000,     /* R196 - DCDC6 Timeouts */
258796920630SMark Brown 	0x0006,     /* R197 - DCDC6 Low Power */
258896920630SMark Brown 	0x0000,     /* R198 */
258996920630SMark Brown 	0x0003,     /* R199 - Limit Switch Control */
259096920630SMark Brown 	0x0002,     /* R200 - LDO1 Control */
259196920630SMark Brown 	0x0000,     /* R201 - LDO1 Timeouts */
259296920630SMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
259396920630SMark Brown 	0x001A,     /* R203 - LDO2 Control */
259496920630SMark Brown 	0x0000,     /* R204 - LDO2 Timeouts */
259596920630SMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
259696920630SMark Brown 	0x001F,     /* R206 - LDO3 Control */
259796920630SMark Brown 	0x0000,     /* R207 - LDO3 Timeouts */
259896920630SMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
259996920630SMark Brown 	0x001F,     /* R209 - LDO4 Control */
260096920630SMark Brown 	0x0000,     /* R210 - LDO4 Timeouts */
260196920630SMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
260296920630SMark Brown 	0x0000,     /* R212 */
260396920630SMark Brown 	0x0000,     /* R213 */
260496920630SMark Brown 	0x0000,     /* R214 */
260596920630SMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
260696920630SMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
260796920630SMark Brown 	0x0000,     /* R217 - OSC Control */
260896920630SMark Brown 	0x9000,     /* R218 - RTC Tick Control */
260996920630SMark Brown 	0x0000,     /* R219 - Security1 */
261096920630SMark Brown 	0x4000,     /* R220 */
261196920630SMark Brown 	0x0000,     /* R221 */
261296920630SMark Brown 	0x0000,     /* R222 */
261396920630SMark Brown 	0x0000,     /* R223 */
261496920630SMark Brown 	0x0000,     /* R224 - Signal overrides */
261596920630SMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
261696920630SMark Brown 	0x0000,     /* R226 - Charger Overides/status */
261796920630SMark Brown 	0x0000,     /* R227 - misc overrides */
261896920630SMark Brown 	0x0000,     /* R228 - Supply overrides/status 1 */
261996920630SMark Brown 	0x0000,     /* R229 - Supply overrides/status 2 */
262096920630SMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
262196920630SMark Brown 	0x0000,     /* R231 - comparotor overrides */
262296920630SMark Brown 	0x0000,     /* R232 */
262396920630SMark Brown 	0x0000,     /* R233 - State Machine status */
262496920630SMark Brown 	0x1200,     /* R234 */
262596920630SMark Brown 	0x0000,     /* R235 */
262696920630SMark Brown 	0x8000,     /* R236 */
262796920630SMark Brown 	0x0000,     /* R237 */
262896920630SMark Brown 	0x0000,     /* R238 */
262996920630SMark Brown 	0x0000,     /* R239 */
263096920630SMark Brown 	0x0003,     /* R240 */
263196920630SMark Brown 	0x0000,     /* R241 */
263296920630SMark Brown 	0x0000,     /* R242 */
263396920630SMark Brown 	0x0004,     /* R243 */
263496920630SMark Brown 	0x0300,     /* R244 */
263596920630SMark Brown 	0x0000,     /* R245 */
263696920630SMark Brown 	0x0200,     /* R246 */
263796920630SMark Brown 	0x0000,     /* R247 */
263896920630SMark Brown 	0x1000,     /* R248 - DCDC1 Test Controls */
263996920630SMark Brown 	0x5000,     /* R249 */
264096920630SMark Brown 	0x1000,     /* R250 - DCDC3 Test Controls */
264196920630SMark Brown 	0x1000,     /* R251 - DCDC4 Test Controls */
264296920630SMark Brown 	0x5100,     /* R252 */
264396920630SMark Brown 	0x1000,     /* R253 - DCDC6 Test Controls */
264496920630SMark Brown };
264596920630SMark Brown #endif
264696920630SMark Brown 
264796920630SMark Brown #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_2
264896920630SMark Brown 
264996920630SMark Brown #undef WM8350_HAVE_CONFIG_MODE
265096920630SMark Brown #define WM8350_HAVE_CONFIG_MODE
265196920630SMark Brown 
265296920630SMark Brown const u16 wm8352_mode2_defaults[] = {
265396920630SMark Brown 	0x6143,     /* R0   - Reset/ID */
265496920630SMark Brown 	0x0000,     /* R1   - ID */
265596920630SMark Brown 	0x0002,     /* R2   - Revision */
265696920630SMark Brown 	0x1C02,     /* R3   - System Control 1 */
265796920630SMark Brown 	0x0204,     /* R4   - System Control 2 */
265896920630SMark Brown 	0x0000,     /* R5   - System Hibernate */
265996920630SMark Brown 	0x8A00,     /* R6   - Interface Control */
266096920630SMark Brown 	0x0000,     /* R7 */
266196920630SMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
266296920630SMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
266396920630SMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
266496920630SMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
266596920630SMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
266696920630SMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
266796920630SMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
266896920630SMark Brown 	0x0000,     /* R15 */
266996920630SMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
267096920630SMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
267196920630SMark Brown 	0x0101,     /* R18  - RTC Date/Month */
267296920630SMark Brown 	0x1400,     /* R19  - RTC Year */
267396920630SMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
267496920630SMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
267596920630SMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
267696920630SMark Brown 	0x0320,     /* R23  - RTC Time Control */
267796920630SMark Brown 	0x0000,     /* R24  - System Interrupts */
267896920630SMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
267996920630SMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
268096920630SMark Brown 	0x0000,     /* R27 */
268196920630SMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
268296920630SMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
268396920630SMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
268496920630SMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
268596920630SMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
268696920630SMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
268796920630SMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
268896920630SMark Brown 	0x0000,     /* R35 */
268996920630SMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
269096920630SMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
269196920630SMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
269296920630SMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
269396920630SMark Brown 	0x0040,     /* R40  - Clock Control 1 */
269496920630SMark Brown 	0x0000,     /* R41  - Clock Control 2 */
269596920630SMark Brown 	0x3A00,     /* R42  - FLL Control 1 */
269696920630SMark Brown 	0x7086,     /* R43  - FLL Control 2 */
269796920630SMark Brown 	0xC226,     /* R44  - FLL Control 3 */
269896920630SMark Brown 	0x0000,     /* R45  - FLL Control 4 */
269996920630SMark Brown 	0x0000,     /* R46 */
270096920630SMark Brown 	0x0000,     /* R47 */
270196920630SMark Brown 	0x0000,     /* R48  - DAC Control */
270296920630SMark Brown 	0x0000,     /* R49 */
270396920630SMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
270496920630SMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
270596920630SMark Brown 	0x0000,     /* R52 */
270696920630SMark Brown 	0x0040,     /* R53  - DAC LR Rate */
270796920630SMark Brown 	0x0000,     /* R54  - DAC Clock Control */
270896920630SMark Brown 	0x0000,     /* R55 */
270996920630SMark Brown 	0x0000,     /* R56 */
271096920630SMark Brown 	0x0000,     /* R57 */
271196920630SMark Brown 	0x4000,     /* R58  - DAC Mute */
271296920630SMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
271396920630SMark Brown 	0x0000,     /* R60  - DAC Side */
271496920630SMark Brown 	0x0000,     /* R61 */
271596920630SMark Brown 	0x0000,     /* R62 */
271696920630SMark Brown 	0x0000,     /* R63 */
271796920630SMark Brown 	0x8000,     /* R64  - ADC Control */
271896920630SMark Brown 	0x0000,     /* R65 */
271996920630SMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
272096920630SMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
272196920630SMark Brown 	0x0000,     /* R68  - ADC Divider */
272296920630SMark Brown 	0x0000,     /* R69 */
272396920630SMark Brown 	0x0040,     /* R70  - ADC LR Rate */
272496920630SMark Brown 	0x0000,     /* R71 */
272596920630SMark Brown 	0x0303,     /* R72  - Input Control */
272696920630SMark Brown 	0x0000,     /* R73  - IN3 Input Control */
272796920630SMark Brown 	0x0000,     /* R74  - Mic Bias Control */
272896920630SMark Brown 	0x0000,     /* R75 */
272996920630SMark Brown 	0x0000,     /* R76  - Output Control */
273096920630SMark Brown 	0x0000,     /* R77  - Jack Detect */
273196920630SMark Brown 	0x0000,     /* R78  - Anti Pop Control */
273296920630SMark Brown 	0x0000,     /* R79 */
273396920630SMark Brown 	0x0040,     /* R80  - Left Input Volume */
273496920630SMark Brown 	0x0040,     /* R81  - Right Input Volume */
273596920630SMark Brown 	0x0000,     /* R82 */
273696920630SMark Brown 	0x0000,     /* R83 */
273796920630SMark Brown 	0x0000,     /* R84 */
273896920630SMark Brown 	0x0000,     /* R85 */
273996920630SMark Brown 	0x0000,     /* R86 */
274096920630SMark Brown 	0x0000,     /* R87 */
274196920630SMark Brown 	0x0800,     /* R88  - Left Mixer Control */
274296920630SMark Brown 	0x1000,     /* R89  - Right Mixer Control */
274396920630SMark Brown 	0x0000,     /* R90 */
274496920630SMark Brown 	0x0000,     /* R91 */
274596920630SMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
274696920630SMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
274796920630SMark Brown 	0x0000,     /* R94 */
274896920630SMark Brown 	0x0000,     /* R95 */
274996920630SMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
275096920630SMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
275196920630SMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
275296920630SMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
275396920630SMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
275496920630SMark Brown 	0x0000,     /* R101 */
275596920630SMark Brown 	0x0000,     /* R102 */
275696920630SMark Brown 	0x0000,     /* R103 */
275796920630SMark Brown 	0x00E4,     /* R104 - OUT1L Volume */
275896920630SMark Brown 	0x00E4,     /* R105 - OUT1R Volume */
275996920630SMark Brown 	0x00E4,     /* R106 - OUT2L Volume */
276096920630SMark Brown 	0x02E4,     /* R107 - OUT2R Volume */
276196920630SMark Brown 	0x0000,     /* R108 */
276296920630SMark Brown 	0x0000,     /* R109 */
276396920630SMark Brown 	0x0000,     /* R110 */
276496920630SMark Brown 	0x0000,     /* R111 - BEEP Volume */
276596920630SMark Brown 	0x0A00,     /* R112 - AI Formating */
276696920630SMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
276796920630SMark Brown 	0x0020,     /* R114 - AI ADC Control */
276896920630SMark Brown 	0x0020,     /* R115 - AI DAC Control */
276996920630SMark Brown 	0x0000,     /* R116 */
277096920630SMark Brown 	0x0000,     /* R117 */
277196920630SMark Brown 	0x0000,     /* R118 */
277296920630SMark Brown 	0x0000,     /* R119 */
277396920630SMark Brown 	0x0000,     /* R120 */
277496920630SMark Brown 	0x0000,     /* R121 */
277596920630SMark Brown 	0x0000,     /* R122 */
277696920630SMark Brown 	0x0000,     /* R123 */
277796920630SMark Brown 	0x0000,     /* R124 */
277896920630SMark Brown 	0x0000,     /* R125 */
277996920630SMark Brown 	0x0000,     /* R126 */
278096920630SMark Brown 	0x0000,     /* R127 */
278196920630SMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
278296920630SMark Brown 	0x0000,     /* R129 - GPIO Pin pull up Control */
278396920630SMark Brown 	0x0110,     /* R130 - GPIO Pull down Control */
278496920630SMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
278596920630SMark Brown 	0x0000,     /* R132 */
278696920630SMark Brown 	0x0000,     /* R133 - GPIO Control */
278796920630SMark Brown 	0x09DA,     /* R134 - GPIO Configuration (i/o) */
278896920630SMark Brown 	0x0DD6,     /* R135 - GPIO Pin Polarity / Type */
278996920630SMark Brown 	0x0000,     /* R136 */
279096920630SMark Brown 	0x0000,     /* R137 */
279196920630SMark Brown 	0x0000,     /* R138 */
279296920630SMark Brown 	0x0000,     /* R139 */
279396920630SMark Brown 	0x1310,     /* R140 - GPIO Function Select 1 */
279496920630SMark Brown 	0x0033,     /* R141 - GPIO Function Select 2 */
279596920630SMark Brown 	0x2000,     /* R142 - GPIO Function Select 3 */
279696920630SMark Brown 	0x0000,     /* R143 - GPIO Function Select 4 */
279796920630SMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
279896920630SMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
279996920630SMark Brown 	0x0000,     /* R146 */
280096920630SMark Brown 	0x0000,     /* R147 */
280196920630SMark Brown 	0x0000,     /* R148 */
280296920630SMark Brown 	0x0000,     /* R149 */
280396920630SMark Brown 	0x0000,     /* R150 */
280496920630SMark Brown 	0x0000,     /* R151 */
280596920630SMark Brown 	0x7000,     /* R152 - AUX1 Readback */
280696920630SMark Brown 	0x7000,     /* R153 - AUX2 Readback */
280796920630SMark Brown 	0x7000,     /* R154 - AUX3 Readback */
280896920630SMark Brown 	0x7000,     /* R155 - AUX4 Readback */
280996920630SMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
281096920630SMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
281196920630SMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
281296920630SMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
281396920630SMark Brown 	0x0000,     /* R160 */
281496920630SMark Brown 	0x0000,     /* R161 */
281596920630SMark Brown 	0x0000,     /* R162 */
281696920630SMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
281796920630SMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
281896920630SMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
281996920630SMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
282096920630SMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
282196920630SMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
282296920630SMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
282396920630SMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
282496920630SMark Brown 	0x0000,     /* R171 */
282596920630SMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
282696920630SMark Brown 	0x0000,     /* R173 - CSA Flash control */
282796920630SMark Brown 	0x0000,     /* R174 - Current Sink Driver B */
282896920630SMark Brown 	0x0000,     /* R175 - CSB Flash control */
282996920630SMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
283096920630SMark Brown 	0x032D,     /* R177 - DCDC Active options */
283196920630SMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
283296920630SMark Brown 	0x0025,     /* R179 - Power-check comparator */
283396920630SMark Brown 	0x000E,     /* R180 - DCDC1 Control */
283496920630SMark Brown 	0x0800,     /* R181 - DCDC1 Timeouts */
283596920630SMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
283696920630SMark Brown 	0x0018,     /* R183 - DCDC2 Control */
283796920630SMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
283896920630SMark Brown 	0x0000,     /* R185 */
283996920630SMark Brown 	0x0056,     /* R186 - DCDC3 Control */
284096920630SMark Brown 	0x1800,     /* R187 - DCDC3 Timeouts */
284196920630SMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
284296920630SMark Brown 	0x000E,     /* R189 - DCDC4 Control */
284396920630SMark Brown 	0x1000,     /* R190 - DCDC4 Timeouts */
284496920630SMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
284596920630SMark Brown 	0x0008,     /* R192 - DCDC5 Control */
284696920630SMark Brown 	0x0000,     /* R193 - DCDC5 Timeouts */
284796920630SMark Brown 	0x0000,     /* R194 */
284896920630SMark Brown 	0x0026,     /* R195 - DCDC6 Control */
284996920630SMark Brown 	0x0C00,     /* R196 - DCDC6 Timeouts */
285096920630SMark Brown 	0x0006,     /* R197 - DCDC6 Low Power */
285196920630SMark Brown 	0x0000,     /* R198 */
285296920630SMark Brown 	0x0003,     /* R199 - Limit Switch Control */
285396920630SMark Brown 	0x001C,     /* R200 - LDO1 Control */
285496920630SMark Brown 	0x0000,     /* R201 - LDO1 Timeouts */
285596920630SMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
285696920630SMark Brown 	0x0006,     /* R203 - LDO2 Control */
285796920630SMark Brown 	0x0400,     /* R204 - LDO2 Timeouts */
285896920630SMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
285996920630SMark Brown 	0x001C,     /* R206 - LDO3 Control */
286096920630SMark Brown 	0x1400,     /* R207 - LDO3 Timeouts */
286196920630SMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
286296920630SMark Brown 	0x001A,     /* R209 - LDO4 Control */
286396920630SMark Brown 	0x0000,     /* R210 - LDO4 Timeouts */
286496920630SMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
286596920630SMark Brown 	0x0000,     /* R212 */
286696920630SMark Brown 	0x0000,     /* R213 */
286796920630SMark Brown 	0x0000,     /* R214 */
286896920630SMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
286996920630SMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
287096920630SMark Brown 	0x0000,     /* R217 - OSC Control */
287196920630SMark Brown 	0x9000,     /* R218 - RTC Tick Control */
287296920630SMark Brown 	0x0000,     /* R219 - Security1 */
287396920630SMark Brown 	0x4000,     /* R220 */
287496920630SMark Brown 	0x0000,     /* R221 */
287596920630SMark Brown 	0x0000,     /* R222 */
287696920630SMark Brown 	0x0000,     /* R223 */
287796920630SMark Brown 	0x0000,     /* R224 - Signal overrides */
287896920630SMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
287996920630SMark Brown 	0x0000,     /* R226 - Charger Overides/status */
288096920630SMark Brown 	0x0000,     /* R227 - misc overrides */
288196920630SMark Brown 	0x0000,     /* R228 - Supply overrides/status 1 */
288296920630SMark Brown 	0x0000,     /* R229 - Supply overrides/status 2 */
288396920630SMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
288496920630SMark Brown 	0x0000,     /* R231 - comparotor overrides */
288596920630SMark Brown 	0x0000,     /* R232 */
288696920630SMark Brown 	0x0000,     /* R233 - State Machine status */
288796920630SMark Brown 	0x1200,     /* R234 */
288896920630SMark Brown 	0x0000,     /* R235 */
288996920630SMark Brown 	0x8000,     /* R236 */
289096920630SMark Brown 	0x0000,     /* R237 */
289196920630SMark Brown 	0x0000,     /* R238 */
289296920630SMark Brown 	0x0000,     /* R239 */
289396920630SMark Brown 	0x0003,     /* R240 */
289496920630SMark Brown 	0x0000,     /* R241 */
289596920630SMark Brown 	0x0000,     /* R242 */
289696920630SMark Brown 	0x0004,     /* R243 */
289796920630SMark Brown 	0x0300,     /* R244 */
289896920630SMark Brown 	0x0000,     /* R245 */
289996920630SMark Brown 	0x0200,     /* R246 */
290096920630SMark Brown 	0x0000,     /* R247 */
290196920630SMark Brown 	0x1000,     /* R248 - DCDC1 Test Controls */
290296920630SMark Brown 	0x5000,     /* R249 */
290396920630SMark Brown 	0x1000,     /* R250 - DCDC3 Test Controls */
290496920630SMark Brown 	0x1000,     /* R251 - DCDC4 Test Controls */
290596920630SMark Brown 	0x5100,     /* R252 */
290696920630SMark Brown 	0x1000,     /* R253 - DCDC6 Test Controls */
290796920630SMark Brown };
290896920630SMark Brown #endif
290996920630SMark Brown 
291096920630SMark Brown #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_3
291196920630SMark Brown 
291296920630SMark Brown #undef WM8350_HAVE_CONFIG_MODE
291396920630SMark Brown #define WM8350_HAVE_CONFIG_MODE
291496920630SMark Brown 
291596920630SMark Brown const u16 wm8352_mode3_defaults[] = {
291696920630SMark Brown 	0x6143,     /* R0   - Reset/ID */
291796920630SMark Brown 	0x0000,     /* R1   - ID */
291896920630SMark Brown 	0x0002,     /* R2   - Revision */
291996920630SMark Brown 	0x1C02,     /* R3   - System Control 1 */
292096920630SMark Brown 	0x0204,     /* R4   - System Control 2 */
292196920630SMark Brown 	0x0000,     /* R5   - System Hibernate */
292296920630SMark Brown 	0x8A00,     /* R6   - Interface Control */
292396920630SMark Brown 	0x0000,     /* R7 */
292496920630SMark Brown 	0x8000,     /* R8   - Power mgmt (1) */
292596920630SMark Brown 	0x0000,     /* R9   - Power mgmt (2) */
292696920630SMark Brown 	0x0000,     /* R10  - Power mgmt (3) */
292796920630SMark Brown 	0x2000,     /* R11  - Power mgmt (4) */
292896920630SMark Brown 	0x0E00,     /* R12  - Power mgmt (5) */
292996920630SMark Brown 	0x0000,     /* R13  - Power mgmt (6) */
293096920630SMark Brown 	0x0000,     /* R14  - Power mgmt (7) */
293196920630SMark Brown 	0x0000,     /* R15 */
293296920630SMark Brown 	0x0000,     /* R16  - RTC Seconds/Minutes */
293396920630SMark Brown 	0x0100,     /* R17  - RTC Hours/Day */
293496920630SMark Brown 	0x0101,     /* R18  - RTC Date/Month */
293596920630SMark Brown 	0x1400,     /* R19  - RTC Year */
293696920630SMark Brown 	0x0000,     /* R20  - Alarm Seconds/Minutes */
293796920630SMark Brown 	0x0000,     /* R21  - Alarm Hours/Day */
293896920630SMark Brown 	0x0000,     /* R22  - Alarm Date/Month */
293996920630SMark Brown 	0x0320,     /* R23  - RTC Time Control */
294096920630SMark Brown 	0x0000,     /* R24  - System Interrupts */
294196920630SMark Brown 	0x0000,     /* R25  - Interrupt Status 1 */
294296920630SMark Brown 	0x0000,     /* R26  - Interrupt Status 2 */
294396920630SMark Brown 	0x0000,     /* R27 */
294496920630SMark Brown 	0x0000,     /* R28  - Under Voltage Interrupt status */
294596920630SMark Brown 	0x0000,     /* R29  - Over Current Interrupt status */
294696920630SMark Brown 	0x0000,     /* R30  - GPIO Interrupt Status */
294796920630SMark Brown 	0x0000,     /* R31  - Comparator Interrupt Status */
294896920630SMark Brown 	0x3FFF,     /* R32  - System Interrupts Mask */
294996920630SMark Brown 	0x0000,     /* R33  - Interrupt Status 1 Mask */
295096920630SMark Brown 	0x0000,     /* R34  - Interrupt Status 2 Mask */
295196920630SMark Brown 	0x0000,     /* R35 */
295296920630SMark Brown 	0x0000,     /* R36  - Under Voltage Interrupt status Mask */
295396920630SMark Brown 	0x0000,     /* R37  - Over Current Interrupt status Mask */
295496920630SMark Brown 	0x0000,     /* R38  - GPIO Interrupt Status Mask */
295596920630SMark Brown 	0x0000,     /* R39  - Comparator Interrupt Status Mask */
295696920630SMark Brown 	0x0040,     /* R40  - Clock Control 1 */
295796920630SMark Brown 	0x0000,     /* R41  - Clock Control 2 */
295896920630SMark Brown 	0x3A00,     /* R42  - FLL Control 1 */
295996920630SMark Brown 	0x7086,     /* R43  - FLL Control 2 */
296096920630SMark Brown 	0xC226,     /* R44  - FLL Control 3 */
296196920630SMark Brown 	0x0000,     /* R45  - FLL Control 4 */
296296920630SMark Brown 	0x0000,     /* R46 */
296396920630SMark Brown 	0x0000,     /* R47 */
296496920630SMark Brown 	0x0000,     /* R48  - DAC Control */
296596920630SMark Brown 	0x0000,     /* R49 */
296696920630SMark Brown 	0x00C0,     /* R50  - DAC Digital Volume L */
296796920630SMark Brown 	0x00C0,     /* R51  - DAC Digital Volume R */
296896920630SMark Brown 	0x0000,     /* R52 */
296996920630SMark Brown 	0x0040,     /* R53  - DAC LR Rate */
297096920630SMark Brown 	0x0000,     /* R54  - DAC Clock Control */
297196920630SMark Brown 	0x0000,     /* R55 */
297296920630SMark Brown 	0x0000,     /* R56 */
297396920630SMark Brown 	0x0000,     /* R57 */
297496920630SMark Brown 	0x4000,     /* R58  - DAC Mute */
297596920630SMark Brown 	0x0000,     /* R59  - DAC Mute Volume */
297696920630SMark Brown 	0x0000,     /* R60  - DAC Side */
297796920630SMark Brown 	0x0000,     /* R61 */
297896920630SMark Brown 	0x0000,     /* R62 */
297996920630SMark Brown 	0x0000,     /* R63 */
298096920630SMark Brown 	0x8000,     /* R64  - ADC Control */
298196920630SMark Brown 	0x0000,     /* R65 */
298296920630SMark Brown 	0x00C0,     /* R66  - ADC Digital Volume L */
298396920630SMark Brown 	0x00C0,     /* R67  - ADC Digital Volume R */
298496920630SMark Brown 	0x0000,     /* R68  - ADC Divider */
298596920630SMark Brown 	0x0000,     /* R69 */
298696920630SMark Brown 	0x0040,     /* R70  - ADC LR Rate */
298796920630SMark Brown 	0x0000,     /* R71 */
298896920630SMark Brown 	0x0303,     /* R72  - Input Control */
298996920630SMark Brown 	0x0000,     /* R73  - IN3 Input Control */
299096920630SMark Brown 	0x0000,     /* R74  - Mic Bias Control */
299196920630SMark Brown 	0x0000,     /* R75 */
299296920630SMark Brown 	0x0000,     /* R76  - Output Control */
299396920630SMark Brown 	0x0000,     /* R77  - Jack Detect */
299496920630SMark Brown 	0x0000,     /* R78  - Anti Pop Control */
299596920630SMark Brown 	0x0000,     /* R79 */
299696920630SMark Brown 	0x0040,     /* R80  - Left Input Volume */
299796920630SMark Brown 	0x0040,     /* R81  - Right Input Volume */
299896920630SMark Brown 	0x0000,     /* R82 */
299996920630SMark Brown 	0x0000,     /* R83 */
300096920630SMark Brown 	0x0000,     /* R84 */
300196920630SMark Brown 	0x0000,     /* R85 */
300296920630SMark Brown 	0x0000,     /* R86 */
300396920630SMark Brown 	0x0000,     /* R87 */
300496920630SMark Brown 	0x0800,     /* R88  - Left Mixer Control */
300596920630SMark Brown 	0x1000,     /* R89  - Right Mixer Control */
300696920630SMark Brown 	0x0000,     /* R90 */
300796920630SMark Brown 	0x0000,     /* R91 */
300896920630SMark Brown 	0x0000,     /* R92  - OUT3 Mixer Control */
300996920630SMark Brown 	0x0000,     /* R93  - OUT4 Mixer Control */
301096920630SMark Brown 	0x0000,     /* R94 */
301196920630SMark Brown 	0x0000,     /* R95 */
301296920630SMark Brown 	0x0000,     /* R96  - Output Left Mixer Volume */
301396920630SMark Brown 	0x0000,     /* R97  - Output Right Mixer Volume */
301496920630SMark Brown 	0x0000,     /* R98  - Input Mixer Volume L */
301596920630SMark Brown 	0x0000,     /* R99  - Input Mixer Volume R */
301696920630SMark Brown 	0x0000,     /* R100 - Input Mixer Volume */
301796920630SMark Brown 	0x0000,     /* R101 */
301896920630SMark Brown 	0x0000,     /* R102 */
301996920630SMark Brown 	0x0000,     /* R103 */
302096920630SMark Brown 	0x00E4,     /* R104 - OUT1L Volume */
302196920630SMark Brown 	0x00E4,     /* R105 - OUT1R Volume */
302296920630SMark Brown 	0x00E4,     /* R106 - OUT2L Volume */
302396920630SMark Brown 	0x02E4,     /* R107 - OUT2R Volume */
302496920630SMark Brown 	0x0000,     /* R108 */
302596920630SMark Brown 	0x0000,     /* R109 */
302696920630SMark Brown 	0x0000,     /* R110 */
302796920630SMark Brown 	0x0000,     /* R111 - BEEP Volume */
302896920630SMark Brown 	0x0A00,     /* R112 - AI Formating */
302996920630SMark Brown 	0x0000,     /* R113 - ADC DAC COMP */
303096920630SMark Brown 	0x0020,     /* R114 - AI ADC Control */
303196920630SMark Brown 	0x0020,     /* R115 - AI DAC Control */
303296920630SMark Brown 	0x0000,     /* R116 */
303396920630SMark Brown 	0x0000,     /* R117 */
303496920630SMark Brown 	0x0000,     /* R118 */
303596920630SMark Brown 	0x0000,     /* R119 */
303696920630SMark Brown 	0x0000,     /* R120 */
303796920630SMark Brown 	0x0000,     /* R121 */
303896920630SMark Brown 	0x0000,     /* R122 */
303996920630SMark Brown 	0x0000,     /* R123 */
304096920630SMark Brown 	0x0000,     /* R124 */
304196920630SMark Brown 	0x0000,     /* R125 */
304296920630SMark Brown 	0x0000,     /* R126 */
304396920630SMark Brown 	0x0000,     /* R127 */
304496920630SMark Brown 	0x1FFF,     /* R128 - GPIO Debounce */
304596920630SMark Brown 	0x0010,     /* R129 - GPIO Pin pull up Control */
304696920630SMark Brown 	0x0000,     /* R130 - GPIO Pull down Control */
304796920630SMark Brown 	0x0000,     /* R131 - GPIO Interrupt Mode */
304896920630SMark Brown 	0x0000,     /* R132 */
304996920630SMark Brown 	0x0000,     /* R133 - GPIO Control */
305096920630SMark Brown 	0x0BFB,     /* R134 - GPIO Configuration (i/o) */
305196920630SMark Brown 	0x0FFD,     /* R135 - GPIO Pin Polarity / Type */
305296920630SMark Brown 	0x0000,     /* R136 */
305396920630SMark Brown 	0x0000,     /* R137 */
305496920630SMark Brown 	0x0000,     /* R138 */
305596920630SMark Brown 	0x0000,     /* R139 */
305696920630SMark Brown 	0x0310,     /* R140 - GPIO Function Select 1 */
305796920630SMark Brown 	0x0001,     /* R141 - GPIO Function Select 2 */
305896920630SMark Brown 	0x2300,     /* R142 - GPIO Function Select 3 */
305996920630SMark Brown 	0x0003,     /* R143 - GPIO Function Select 4 */
306096920630SMark Brown 	0x0000,     /* R144 - Digitiser Control (1) */
306196920630SMark Brown 	0x0002,     /* R145 - Digitiser Control (2) */
306296920630SMark Brown 	0x0000,     /* R146 */
306396920630SMark Brown 	0x0000,     /* R147 */
306496920630SMark Brown 	0x0000,     /* R148 */
306596920630SMark Brown 	0x0000,     /* R149 */
306696920630SMark Brown 	0x0000,     /* R150 */
306796920630SMark Brown 	0x0000,     /* R151 */
306896920630SMark Brown 	0x7000,     /* R152 - AUX1 Readback */
306996920630SMark Brown 	0x7000,     /* R153 - AUX2 Readback */
307096920630SMark Brown 	0x7000,     /* R154 - AUX3 Readback */
307196920630SMark Brown 	0x7000,     /* R155 - AUX4 Readback */
307296920630SMark Brown 	0x0000,     /* R156 - USB Voltage Readback */
307396920630SMark Brown 	0x0000,     /* R157 - LINE Voltage Readback */
307496920630SMark Brown 	0x0000,     /* R158 - BATT Voltage Readback */
307596920630SMark Brown 	0x0000,     /* R159 - Chip Temp Readback */
307696920630SMark Brown 	0x0000,     /* R160 */
307796920630SMark Brown 	0x0000,     /* R161 */
307896920630SMark Brown 	0x0000,     /* R162 */
307996920630SMark Brown 	0x0000,     /* R163 - Generic Comparator Control */
308096920630SMark Brown 	0x0000,     /* R164 - Generic comparator 1 */
308196920630SMark Brown 	0x0000,     /* R165 - Generic comparator 2 */
308296920630SMark Brown 	0x0000,     /* R166 - Generic comparator 3 */
308396920630SMark Brown 	0x0000,     /* R167 - Generic comparator 4 */
308496920630SMark Brown 	0xA00F,     /* R168 - Battery Charger Control 1 */
308596920630SMark Brown 	0x0B06,     /* R169 - Battery Charger Control 2 */
308696920630SMark Brown 	0x0000,     /* R170 - Battery Charger Control 3 */
308796920630SMark Brown 	0x0000,     /* R171 */
308896920630SMark Brown 	0x0000,     /* R172 - Current Sink Driver A */
308996920630SMark Brown 	0x0000,     /* R173 - CSA Flash control */
309096920630SMark Brown 	0x0000,     /* R174 - Current Sink Driver B */
309196920630SMark Brown 	0x0000,     /* R175 - CSB Flash control */
309296920630SMark Brown 	0x0000,     /* R176 - DCDC/LDO requested */
309396920630SMark Brown 	0x032D,     /* R177 - DCDC Active options */
309496920630SMark Brown 	0x0000,     /* R178 - DCDC Sleep options */
309596920630SMark Brown 	0x0025,     /* R179 - Power-check comparator */
309696920630SMark Brown 	0x0006,     /* R180 - DCDC1 Control */
309796920630SMark Brown 	0x0400,     /* R181 - DCDC1 Timeouts */
309896920630SMark Brown 	0x1006,     /* R182 - DCDC1 Low Power */
309996920630SMark Brown 	0x0018,     /* R183 - DCDC2 Control */
310096920630SMark Brown 	0x0000,     /* R184 - DCDC2 Timeouts */
310196920630SMark Brown 	0x0000,     /* R185 */
310296920630SMark Brown 	0x0050,     /* R186 - DCDC3 Control */
310396920630SMark Brown 	0x0C00,     /* R187 - DCDC3 Timeouts */
310496920630SMark Brown 	0x0006,     /* R188 - DCDC3 Low Power */
310596920630SMark Brown 	0x000E,     /* R189 - DCDC4 Control */
310696920630SMark Brown 	0x0400,     /* R190 - DCDC4 Timeouts */
310796920630SMark Brown 	0x0006,     /* R191 - DCDC4 Low Power */
310896920630SMark Brown 	0x0008,     /* R192 - DCDC5 Control */
310996920630SMark Brown 	0x0000,     /* R193 - DCDC5 Timeouts */
311096920630SMark Brown 	0x0000,     /* R194 */
311196920630SMark Brown 	0x0029,     /* R195 - DCDC6 Control */
311296920630SMark Brown 	0x0800,     /* R196 - DCDC6 Timeouts */
311396920630SMark Brown 	0x0006,     /* R197 - DCDC6 Low Power */
311496920630SMark Brown 	0x0000,     /* R198 */
311596920630SMark Brown 	0x0003,     /* R199 - Limit Switch Control */
311696920630SMark Brown 	0x001D,     /* R200 - LDO1 Control */
311796920630SMark Brown 	0x1000,     /* R201 - LDO1 Timeouts */
311896920630SMark Brown 	0x001C,     /* R202 - LDO1 Low Power */
311996920630SMark Brown 	0x0017,     /* R203 - LDO2 Control */
312096920630SMark Brown 	0x1000,     /* R204 - LDO2 Timeouts */
312196920630SMark Brown 	0x001C,     /* R205 - LDO2 Low Power */
312296920630SMark Brown 	0x0006,     /* R206 - LDO3 Control */
312396920630SMark Brown 	0x1000,     /* R207 - LDO3 Timeouts */
312496920630SMark Brown 	0x001C,     /* R208 - LDO3 Low Power */
312596920630SMark Brown 	0x0010,     /* R209 - LDO4 Control */
312696920630SMark Brown 	0x1000,     /* R210 - LDO4 Timeouts */
312796920630SMark Brown 	0x001C,     /* R211 - LDO4 Low Power */
312896920630SMark Brown 	0x0000,     /* R212 */
312996920630SMark Brown 	0x0000,     /* R213 */
313096920630SMark Brown 	0x0000,     /* R214 */
313196920630SMark Brown 	0x0000,     /* R215 - VCC_FAULT Masks */
313296920630SMark Brown 	0x001F,     /* R216 - Main Bandgap Control */
313396920630SMark Brown 	0x0000,     /* R217 - OSC Control */
313496920630SMark Brown 	0x9000,     /* R218 - RTC Tick Control */
313596920630SMark Brown 	0x0000,     /* R219 - Security1 */
313696920630SMark Brown 	0x4000,     /* R220 */
313796920630SMark Brown 	0x0000,     /* R221 */
313896920630SMark Brown 	0x0000,     /* R222 */
313996920630SMark Brown 	0x0000,     /* R223 */
314096920630SMark Brown 	0x0000,     /* R224 - Signal overrides */
314196920630SMark Brown 	0x0000,     /* R225 - DCDC/LDO status */
314296920630SMark Brown 	0x0000,     /* R226 - Charger Overides/status */
314396920630SMark Brown 	0x0000,     /* R227 - misc overrides */
314496920630SMark Brown 	0x0000,     /* R228 - Supply overrides/status 1 */
314596920630SMark Brown 	0x0000,     /* R229 - Supply overrides/status 2 */
314696920630SMark Brown 	0xE000,     /* R230 - GPIO Pin Status */
314796920630SMark Brown 	0x0000,     /* R231 - comparotor overrides */
314896920630SMark Brown 	0x0000,     /* R232 */
314996920630SMark Brown 	0x0000,     /* R233 - State Machine status */
315096920630SMark Brown 	0x1200,     /* R234 */
315196920630SMark Brown 	0x0000,     /* R235 */
315296920630SMark Brown 	0x8000,     /* R236 */
315396920630SMark Brown 	0x0000,     /* R237 */
315496920630SMark Brown 	0x0000,     /* R238 */
315596920630SMark Brown 	0x0000,     /* R239 */
315696920630SMark Brown 	0x0003,     /* R240 */
315796920630SMark Brown 	0x0000,     /* R241 */
315896920630SMark Brown 	0x0000,     /* R242 */
315996920630SMark Brown 	0x0004,     /* R243 */
316096920630SMark Brown 	0x0300,     /* R244 */
316196920630SMark Brown 	0x0000,     /* R245 */
316296920630SMark Brown 	0x0200,     /* R246 */
316396920630SMark Brown 	0x0000,     /* R247 */
316496920630SMark Brown 	0x1000,     /* R248 - DCDC1 Test Controls */
316596920630SMark Brown 	0x5000,     /* R249 */
316696920630SMark Brown 	0x1000,     /* R250 - DCDC3 Test Controls */
316796920630SMark Brown 	0x1000,     /* R251 - DCDC4 Test Controls */
316896920630SMark Brown 	0x5100,     /* R252 */
316996920630SMark Brown 	0x1000,     /* R253 - DCDC6 Test Controls */
317096920630SMark Brown };
317196920630SMark Brown #endif
317296920630SMark Brown 
317389b4012bSMark Brown /* The register defaults for the config mode used must be compiled in but
317489b4012bSMark Brown  * due to the impact on kernel size it is possible to disable
317589b4012bSMark Brown  */
317689b4012bSMark Brown #ifndef WM8350_HAVE_CONFIG_MODE
317789b4012bSMark Brown #warning No WM8350 config modes supported - select at least one of the
317889b4012bSMark Brown #warning MFD_WM8350_CONFIG_MODE_n options from the board driver.
317989b4012bSMark Brown #endif
318089b4012bSMark Brown 
318189b4012bSMark Brown /*
318289b4012bSMark Brown  * Access masks.
318389b4012bSMark Brown  */
318489b4012bSMark Brown 
318589b4012bSMark Brown const struct wm8350_reg_access wm8350_reg_io_map[] = {
318689b4012bSMark Brown 	/*  read    write volatile */
318789b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0xFFFF }, /* R0   - Reset/ID */
318889b4012bSMark Brown 	{ 0x7CFF, 0x0C00, 0x7FFF }, /* R1   - ID */
318989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R2 */
319089b4012bSMark Brown 	{ 0xBE3B, 0xBE3B, 0x8000 }, /* R3   - System Control 1 */
3191a39a021fSMark Brown 	{ 0xFEF7, 0xFEF7, 0xF800 }, /* R4   - System Control 2 */
319289b4012bSMark Brown 	{ 0x80FF, 0x80FF, 0x8000 }, /* R5   - System Hibernate */
319389b4012bSMark Brown 	{ 0xFB0E, 0xFB0E, 0x0000 }, /* R6   - Interface Control */
319489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R7 */
319589b4012bSMark Brown 	{ 0xE537, 0xE537, 0xFFFF }, /* R8   - Power mgmt (1) */
319689b4012bSMark Brown 	{ 0x0FF3, 0x0FF3, 0xFFFF }, /* R9   - Power mgmt (2) */
319789b4012bSMark Brown 	{ 0x008F, 0x008F, 0xFFFF }, /* R10  - Power mgmt (3) */
319889b4012bSMark Brown 	{ 0x6D3C, 0x6D3C, 0xFFFF }, /* R11  - Power mgmt (4) */
319989b4012bSMark Brown 	{ 0x1F8F, 0x1F8F, 0xFFFF }, /* R12  - Power mgmt (5) */
320089b4012bSMark Brown 	{ 0x8F3F, 0x8F3F, 0xFFFF }, /* R13  - Power mgmt (6) */
320189b4012bSMark Brown 	{ 0x0003, 0x0003, 0xFFFF }, /* R14  - Power mgmt (7) */
320289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R15 */
320389b4012bSMark Brown 	{ 0x7F7F, 0x7F7F, 0xFFFF }, /* R16  - RTC Seconds/Minutes */
320489b4012bSMark Brown 	{ 0x073F, 0x073F, 0xFFFF }, /* R17  - RTC Hours/Day */
320589b4012bSMark Brown 	{ 0x1F3F, 0x1F3F, 0xFFFF }, /* R18  - RTC Date/Month */
320689b4012bSMark Brown 	{ 0x3FFF, 0x00FF, 0xFFFF }, /* R19  - RTC Year */
320789b4012bSMark Brown 	{ 0x7F7F, 0x7F7F, 0x0000 }, /* R20  - Alarm Seconds/Minutes */
320889b4012bSMark Brown 	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R21  - Alarm Hours/Day */
320989b4012bSMark Brown 	{ 0x1F3F, 0x1F3F, 0x0000 }, /* R22  - Alarm Date/Month */
321089b4012bSMark Brown 	{ 0xEF7F, 0xEA7F, 0xFFFF }, /* R23  - RTC Time Control */
321189b4012bSMark Brown 	{ 0x3BFF, 0x0000, 0xFFFF }, /* R24  - System Interrupts */
321289b4012bSMark Brown 	{ 0xFEE7, 0x0000, 0xFFFF }, /* R25  - Interrupt Status 1 */
321389b4012bSMark Brown 	{ 0x35FF, 0x0000, 0xFFFF }, /* R26  - Interrupt Status 2 */
321489b4012bSMark Brown 	{ 0x0F3F, 0x0000, 0xFFFF }, /* R27  - Power Up Interrupt Status */
321589b4012bSMark Brown 	{ 0x0F3F, 0x0000, 0xFFFF }, /* R28  - Under Voltage Interrupt status */
321689b4012bSMark Brown 	{ 0x8000, 0x0000, 0xFFFF }, /* R29  - Over Current Interrupt status */
321789b4012bSMark Brown 	{ 0x1FFF, 0x0000, 0xFFFF }, /* R30  - GPIO Interrupt Status */
321889b4012bSMark Brown 	{ 0xEF7F, 0x0000, 0xFFFF }, /* R31  - Comparator Interrupt Status */
321989b4012bSMark Brown 	{ 0x3FFF, 0x3FFF, 0x0000 }, /* R32  - System Interrupts Mask */
322089b4012bSMark Brown 	{ 0xFEE7, 0xFEE7, 0x0000 }, /* R33  - Interrupt Status 1 Mask */
322189b4012bSMark Brown 	{ 0xF5FF, 0xF5FF, 0x0000 }, /* R34  - Interrupt Status 2 Mask */
322289b4012bSMark Brown 	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R35  - Power Up Interrupt Status Mask */
322389b4012bSMark Brown 	{ 0x0F3F, 0x0F3F, 0x0000 }, /* R36  - Under Voltage Int status Mask */
322489b4012bSMark Brown 	{ 0x8000, 0x8000, 0x0000 }, /* R37  - Over Current Int status Mask */
322589b4012bSMark Brown 	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R38  - GPIO Interrupt Status Mask */
322689b4012bSMark Brown 	{ 0xEF7F, 0xEF7F, 0x0000 }, /* R39  - Comparator IntStatus Mask */
322789b4012bSMark Brown 	{ 0xC9F7, 0xC9F7, 0xFFFF }, /* R40  - Clock Control 1 */
322889b4012bSMark Brown 	{ 0x8001, 0x8001, 0x0000 }, /* R41  - Clock Control 2 */
322989b4012bSMark Brown 	{ 0xFFF7, 0xFFF7, 0xFFFF }, /* R42  - FLL Control 1 */
323089b4012bSMark Brown 	{ 0xFBFF, 0xFBFF, 0x0000 }, /* R43  - FLL Control 2 */
323189b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R44  - FLL Control 3 */
323289b4012bSMark Brown 	{ 0x0033, 0x0033, 0x0000 }, /* R45  - FLL Control 4 */
323389b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R46 */
323489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R47 */
323589b4012bSMark Brown 	{ 0x3033, 0x3033, 0x0000 }, /* R48  - DAC Control */
323689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R49 */
323789b4012bSMark Brown 	{ 0x81FF, 0x81FF, 0xFFFF }, /* R50  - DAC Digital Volume L */
323889b4012bSMark Brown 	{ 0x81FF, 0x81FF, 0xFFFF }, /* R51  - DAC Digital Volume R */
323989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R52 */
324089b4012bSMark Brown 	{ 0x0FFF, 0x0FFF, 0xFFFF }, /* R53  - DAC LR Rate */
324189b4012bSMark Brown 	{ 0x0017, 0x0017, 0x0000 }, /* R54  - DAC Clock Control */
324289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R55 */
324389b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R56 */
324489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R57 */
324589b4012bSMark Brown 	{ 0x4000, 0x4000, 0x0000 }, /* R58  - DAC Mute */
324689b4012bSMark Brown 	{ 0x7000, 0x7000, 0x0000 }, /* R59  - DAC Mute Volume */
324789b4012bSMark Brown 	{ 0x3C00, 0x3C00, 0x0000 }, /* R60  - DAC Side */
324889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R61 */
324989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R62 */
325089b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R63 */
325189b4012bSMark Brown 	{ 0x8303, 0x8303, 0xFFFF }, /* R64  - ADC Control */
325289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R65 */
325389b4012bSMark Brown 	{ 0x81FF, 0x81FF, 0xFFFF }, /* R66  - ADC Digital Volume L */
325489b4012bSMark Brown 	{ 0x81FF, 0x81FF, 0xFFFF }, /* R67  - ADC Digital Volume R */
325589b4012bSMark Brown 	{ 0x0FFF, 0x0FFF, 0x0000 }, /* R68  - ADC Divider */
325689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R69 */
325789b4012bSMark Brown 	{ 0x0FFF, 0x0FFF, 0xFFFF }, /* R70  - ADC LR Rate */
325889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R71 */
325989b4012bSMark Brown 	{ 0x0707, 0x0707, 0xFFFF }, /* R72  - Input Control */
326089b4012bSMark Brown 	{ 0xC0C0, 0xC0C0, 0xFFFF }, /* R73  - IN3 Input Control */
326189b4012bSMark Brown 	{ 0xC09F, 0xC09F, 0xFFFF }, /* R74  - Mic Bias Control */
326289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R75 */
326389b4012bSMark Brown 	{ 0x0F15, 0x0F15, 0xFFFF }, /* R76  - Output Control */
326489b4012bSMark Brown 	{ 0xC000, 0xC000, 0xFFFF }, /* R77  - Jack Detect */
326589b4012bSMark Brown 	{ 0x03FF, 0x03FF, 0x0000 }, /* R78  - Anti Pop Control */
326689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R79 */
326789b4012bSMark Brown 	{ 0xE1FC, 0xE1FC, 0x8000 }, /* R80  - Left Input Volume */
326889b4012bSMark Brown 	{ 0xE1FC, 0xE1FC, 0x8000 }, /* R81  - Right Input Volume */
326989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R82 */
327089b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R83 */
327189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R84 */
327289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R85 */
327389b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R86 */
327489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R87 */
327589b4012bSMark Brown 	{ 0x9807, 0x9807, 0xFFFF }, /* R88  - Left Mixer Control */
327689b4012bSMark Brown 	{ 0x980B, 0x980B, 0xFFFF }, /* R89  - Right Mixer Control */
327789b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R90 */
327889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R91 */
327989b4012bSMark Brown 	{ 0x8909, 0x8909, 0xFFFF }, /* R92  - OUT3 Mixer Control */
328089b4012bSMark Brown 	{ 0x9E07, 0x9E07, 0xFFFF }, /* R93  - OUT4 Mixer Control */
328189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R94 */
328289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R95 */
328389b4012bSMark Brown 	{ 0x0EEE, 0x0EEE, 0x0000 }, /* R96  - Output Left Mixer Volume */
328489b4012bSMark Brown 	{ 0xE0EE, 0xE0EE, 0x0000 }, /* R97  - Output Right Mixer Volume */
328589b4012bSMark Brown 	{ 0x0E0F, 0x0E0F, 0x0000 }, /* R98  - Input Mixer Volume L */
328689b4012bSMark Brown 	{ 0xE0E1, 0xE0E1, 0x0000 }, /* R99  - Input Mixer Volume R */
328789b4012bSMark Brown 	{ 0x800E, 0x800E, 0x0000 }, /* R100 - Input Mixer Volume */
328889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R101 */
328989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R102 */
329089b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R103 */
329189b4012bSMark Brown 	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R104 - LOUT1 Volume */
329289b4012bSMark Brown 	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R105 - ROUT1 Volume */
329389b4012bSMark Brown 	{ 0xE1FC, 0xE1FC, 0xFFFF }, /* R106 - LOUT2 Volume */
329489b4012bSMark Brown 	{ 0xE7FC, 0xE7FC, 0xFFFF }, /* R107 - ROUT2 Volume */
329589b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R108 */
329689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R109 */
329789b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R110 */
329889b4012bSMark Brown 	{ 0x80E0, 0x80E0, 0xFFFF }, /* R111 - BEEP Volume */
329989b4012bSMark Brown 	{ 0xBF00, 0xBF00, 0x0000 }, /* R112 - AI Formating */
330089b4012bSMark Brown 	{ 0x00F1, 0x00F1, 0x0000 }, /* R113 - ADC DAC COMP */
330189b4012bSMark Brown 	{ 0x00F8, 0x00F8, 0x0000 }, /* R114 - AI ADC Control */
330289b4012bSMark Brown 	{ 0x40FB, 0x40FB, 0x0000 }, /* R115 - AI DAC Control */
330389b4012bSMark Brown 	{ 0x7C30, 0x7C30, 0x0000 }, /* R116 - AIF Test */
330489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R117 */
330589b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R118 */
330689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R119 */
330789b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R120 */
330889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R121 */
330989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R122 */
331089b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R123 */
331189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R124 */
331289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R125 */
331389b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R126 */
331489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R127 */
331589b4012bSMark Brown 	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R128 - GPIO Debounce */
331689b4012bSMark Brown 	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R129 - GPIO Pin pull up Control */
331789b4012bSMark Brown 	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R130 - GPIO Pull down Control */
331889b4012bSMark Brown 	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R131 - GPIO Interrupt Mode */
331989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R132 */
332089b4012bSMark Brown 	{ 0x00C0, 0x00C0, 0x0000 }, /* R133 - GPIO Control */
332189b4012bSMark Brown 	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R134 - GPIO Configuration (i/o) */
332289b4012bSMark Brown 	{ 0x1FFF, 0x1FFF, 0x0000 }, /* R135 - GPIO Pin Polarity / Type */
332389b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R136 */
332489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R137 */
332589b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R138 */
332689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R139 */
332789b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R140 - GPIO Function Select 1 */
332889b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R141 - GPIO Function Select 2 */
332989b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R142 - GPIO Function Select 3 */
333089b4012bSMark Brown 	{ 0x000F, 0x000F, 0x0000 }, /* R143 - GPIO Function Select 4 */
333189b4012bSMark Brown 	{ 0xF0FF, 0xF0FF, 0xA000 }, /* R144 - Digitiser Control (1) */
333289b4012bSMark Brown 	{ 0x3707, 0x3707, 0x0000 }, /* R145 - Digitiser Control (2) */
333389b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R146 */
333489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R147 */
333589b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R148 */
333689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R149 */
333789b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R150 */
333889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R151 */
333989b4012bSMark Brown 	{ 0x7FFF, 0x7000, 0xFFFF }, /* R152 - AUX1 Readback */
334089b4012bSMark Brown 	{ 0x7FFF, 0x7000, 0xFFFF }, /* R153 - AUX2 Readback */
334189b4012bSMark Brown 	{ 0x7FFF, 0x7000, 0xFFFF }, /* R154 - AUX3 Readback */
334289b4012bSMark Brown 	{ 0x7FFF, 0x7000, 0xFFFF }, /* R155 - AUX4 Readback */
334389b4012bSMark Brown 	{ 0x0FFF, 0x0000, 0xFFFF }, /* R156 - USB Voltage Readback */
334489b4012bSMark Brown 	{ 0x0FFF, 0x0000, 0xFFFF }, /* R157 - LINE Voltage Readback */
334589b4012bSMark Brown 	{ 0x0FFF, 0x0000, 0xFFFF }, /* R158 - BATT Voltage Readback */
334689b4012bSMark Brown 	{ 0x0FFF, 0x0000, 0xFFFF }, /* R159 - Chip Temp Readback */
334789b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R160 */
334889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R161 */
334989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R162 */
335089b4012bSMark Brown 	{ 0x000F, 0x000F, 0x0000 }, /* R163 - Generic Comparator Control */
335189b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R164 - Generic comparator 1 */
335289b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R165 - Generic comparator 2 */
335389b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R166 - Generic comparator 3 */
335489b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R167 - Generic comparator 4 */
335589b4012bSMark Brown 	{ 0xBFFF, 0xBFFF, 0x8000 }, /* R168 - Battery Charger Control 1 */
335689b4012bSMark Brown 	{ 0xFFFF, 0x4FFF, 0xB000 }, /* R169 - Battery Charger Control 2 */
335789b4012bSMark Brown 	{ 0x007F, 0x007F, 0x0000 }, /* R170 - Battery Charger Control 3 */
335889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R171 */
335989b4012bSMark Brown 	{ 0x903F, 0x903F, 0xFFFF }, /* R172 - Current Sink Driver A */
336089b4012bSMark Brown 	{ 0xE333, 0xE333, 0xFFFF }, /* R173 - CSA Flash control */
336189b4012bSMark Brown 	{ 0x903F, 0x903F, 0xFFFF }, /* R174 - Current Sink Driver B */
336289b4012bSMark Brown 	{ 0xE333, 0xE333, 0xFFFF }, /* R175 - CSB Flash control */
336389b4012bSMark Brown 	{ 0x8F3F, 0x8F3F, 0xFFFF }, /* R176 - DCDC/LDO requested */
336489b4012bSMark Brown 	{ 0x332D, 0x332D, 0x0000 }, /* R177 - DCDC Active options */
336589b4012bSMark Brown 	{ 0x002D, 0x002D, 0x0000 }, /* R178 - DCDC Sleep options */
336689b4012bSMark Brown 	{ 0x5177, 0x5177, 0x8000 }, /* R179 - Power-check comparator */
336789b4012bSMark Brown 	{ 0x047F, 0x047F, 0x0000 }, /* R180 - DCDC1 Control */
336889b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R181 - DCDC1 Timeouts */
336989b4012bSMark Brown 	{ 0x737F, 0x737F, 0x0000 }, /* R182 - DCDC1 Low Power */
337089b4012bSMark Brown 	{ 0x535B, 0x535B, 0x0000 }, /* R183 - DCDC2 Control */
337189b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R184 - DCDC2 Timeouts */
337289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R185 */
337389b4012bSMark Brown 	{ 0x047F, 0x047F, 0x0000 }, /* R186 - DCDC3 Control */
337489b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R187 - DCDC3 Timeouts */
337589b4012bSMark Brown 	{ 0x737F, 0x737F, 0x0000 }, /* R188 - DCDC3 Low Power */
337689b4012bSMark Brown 	{ 0x047F, 0x047F, 0x0000 }, /* R189 - DCDC4 Control */
337789b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R190 - DCDC4 Timeouts */
337889b4012bSMark Brown 	{ 0x737F, 0x737F, 0x0000 }, /* R191 - DCDC4 Low Power */
337989b4012bSMark Brown 	{ 0x535B, 0x535B, 0x0000 }, /* R192 - DCDC5 Control */
338089b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R193 - DCDC5 Timeouts */
338189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R194 */
338289b4012bSMark Brown 	{ 0x047F, 0x047F, 0x0000 }, /* R195 - DCDC6 Control */
338389b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R196 - DCDC6 Timeouts */
338489b4012bSMark Brown 	{ 0x737F, 0x737F, 0x0000 }, /* R197 - DCDC6 Low Power */
338589b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R198 */
338689b4012bSMark Brown 	{ 0xFFD3, 0xFFD3, 0x0000 }, /* R199 - Limit Switch Control */
338789b4012bSMark Brown 	{ 0x441F, 0x441F, 0x0000 }, /* R200 - LDO1 Control */
338889b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R201 - LDO1 Timeouts */
338989b4012bSMark Brown 	{ 0x331F, 0x331F, 0x0000 }, /* R202 - LDO1 Low Power */
339089b4012bSMark Brown 	{ 0x441F, 0x441F, 0x0000 }, /* R203 - LDO2 Control */
339189b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R204 - LDO2 Timeouts */
339289b4012bSMark Brown 	{ 0x331F, 0x331F, 0x0000 }, /* R205 - LDO2 Low Power */
339389b4012bSMark Brown 	{ 0x441F, 0x441F, 0x0000 }, /* R206 - LDO3 Control */
339489b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R207 - LDO3 Timeouts */
339589b4012bSMark Brown 	{ 0x331F, 0x331F, 0x0000 }, /* R208 - LDO3 Low Power */
339689b4012bSMark Brown 	{ 0x441F, 0x441F, 0x0000 }, /* R209 - LDO4 Control */
339789b4012bSMark Brown 	{ 0xFFC0, 0xFFC0, 0x0000 }, /* R210 - LDO4 Timeouts */
339889b4012bSMark Brown 	{ 0x331F, 0x331F, 0x0000 }, /* R211 - LDO4 Low Power */
339989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R212 */
340089b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R213 */
340189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R214 */
340289b4012bSMark Brown 	{ 0x8F3F, 0x8F3F, 0x0000 }, /* R215 - VCC_FAULT Masks */
340389b4012bSMark Brown 	{ 0xFF3F, 0xE03F, 0x0000 }, /* R216 - Main Bandgap Control */
340489b4012bSMark Brown 	{ 0xEF2F, 0xE02F, 0x0000 }, /* R217 - OSC Control */
340589b4012bSMark Brown 	{ 0xF3FF, 0xB3FF, 0xc000 }, /* R218 - RTC Tick Control */
34066cd99b78SMark Brown 	{ 0xFFFF, 0xFFFF, 0x0000 }, /* R219 - Security */
340789b4012bSMark Brown 	{ 0x09FF, 0x01FF, 0x0000 }, /* R220 - RAM BIST 1 */
340889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R221 */
340989b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0xFFFF }, /* R222 */
341089b4012bSMark Brown 	{ 0xFFFF, 0xFFFF, 0xFFFF }, /* R223 */
341189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R224 */
341289b4012bSMark Brown 	{ 0x8F3F, 0x0000, 0xFFFF }, /* R225 - DCDC/LDO status */
34134008e879SMark Brown 	{ 0x0000, 0x0000, 0xFFFF }, /* R226 - Charger status */
341489b4012bSMark Brown 	{ 0x0000, 0x0000, 0xFFFF }, /* R227 */
341589b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R228 */
341689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R229 */
341789b4012bSMark Brown 	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R230 - GPIO Pin Status */
341889b4012bSMark Brown 	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R231 */
341989b4012bSMark Brown 	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R232 */
342089b4012bSMark Brown 	{ 0xFFFF, 0x1FFF, 0xFFFF }, /* R233 */
342189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R234 */
342289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R235 */
342389b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R236 */
342489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R237 */
342589b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R238 */
342689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R239 */
342789b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R240 */
342889b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R241 */
342989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R242 */
343089b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R243 */
343189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R244 */
343289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R245 */
343389b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R246 */
343489b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R247 */
343589b4012bSMark Brown 	{ 0xFFFF, 0x0010, 0xFFFF }, /* R248 */
343689b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R249 */
343789b4012bSMark Brown 	{ 0xFFFF, 0x0010, 0xFFFF }, /* R250 */
343889b4012bSMark Brown 	{ 0xFFFF, 0x0010, 0xFFFF }, /* R251 */
343989b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R252 */
344089b4012bSMark Brown 	{ 0xFFFF, 0x0010, 0xFFFF }, /* R253 */
344189b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R254 */
344289b4012bSMark Brown 	{ 0x0000, 0x0000, 0x0000 }, /* R255 */
344389b4012bSMark Brown };
3444