mfd: Add WM8351 support

The WM8351 is a WM8350 variant. As well as register default changes the
WM8351 has fewer voltage and current regulators than the WM8350.

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

authored by

Mark Brown and committed by
Samuel Ortiz
ca23f8c1 645524a9

+1112
+16
drivers/mfd/Kconfig
··· 143 143 bool 144 144 depends on MFD_WM8350 145 145 146 + config MFD_WM8351_CONFIG_MODE_0 147 + bool 148 + depends on MFD_WM8350 149 + 150 + config MFD_WM8351_CONFIG_MODE_1 151 + bool 152 + depends on MFD_WM8350 153 + 154 + config MFD_WM8351_CONFIG_MODE_2 155 + bool 156 + depends on MFD_WM8350 157 + 158 + config MFD_WM8351_CONFIG_MODE_3 159 + bool 160 + depends on MFD_WM8350 161 + 146 162 config MFD_WM8352_CONFIG_MODE_0 147 163 bool 148 164 depends on MFD_WM8350
+47
drivers/mfd/wm8350-core.c
··· 1169 1169 return -EINVAL; 1170 1170 } 1171 1171 1172 + case 1: 1173 + switch (mode) { 1174 + #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_0 1175 + case 0: 1176 + reg_map = wm8351_mode0_defaults; 1177 + break; 1178 + #endif 1179 + #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_1 1180 + case 1: 1181 + reg_map = wm8351_mode1_defaults; 1182 + break; 1183 + #endif 1184 + #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_2 1185 + case 2: 1186 + reg_map = wm8351_mode2_defaults; 1187 + break; 1188 + #endif 1189 + #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_3 1190 + case 3: 1191 + reg_map = wm8351_mode3_defaults; 1192 + break; 1193 + #endif 1194 + default: 1195 + dev_err(wm8350->dev, 1196 + "WM8351 configuration mode %d not supported\n", 1197 + mode); 1198 + return -EINVAL; 1199 + } 1200 + break; 1201 + 1172 1202 case 2: 1173 1203 switch (mode) { 1174 1204 #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_0 ··· 1352 1322 default: 1353 1323 /* For safety we refuse to run on unknown hardware */ 1354 1324 dev_err(wm8350->dev, "Unknown WM8350 CHIP_REV\n"); 1325 + ret = -ENODEV; 1326 + goto err; 1327 + } 1328 + break; 1329 + 1330 + case 1: 1331 + wm8350->pmic.max_dcdc = WM8350_DCDC_4; 1332 + wm8350->pmic.max_isink = WM8350_ISINK_A; 1333 + 1334 + switch (chip_rev) { 1335 + case 0: 1336 + dev_info(wm8350->dev, "WM8351 Rev A\n"); 1337 + wm8350->power.rev_g_coeff = 1; 1338 + break; 1339 + 1340 + default: 1341 + dev_err(wm8350->dev, "Unknown WM8351 CHIP_REV\n"); 1355 1342 ret = -ENODEV; 1356 1343 goto err; 1357 1344 }
+1
drivers/mfd/wm8350-i2c.c
··· 97 97 98 98 static const struct i2c_device_id wm8350_i2c_id[] = { 99 99 { "wm8350", 0 }, 100 + { "wm8351", 0 }, 100 101 { "wm8352", 0 }, 101 102 { } 102 103 };
+1044
drivers/mfd/wm8350-regmap.c
··· 1074 1074 }; 1075 1075 #endif 1076 1076 1077 + #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_0 1078 + 1079 + #undef WM8350_HAVE_CONFIG_MODE 1080 + #define WM8350_HAVE_CONFIG_MODE 1081 + 1082 + const u16 wm8351_mode0_defaults[] = { 1083 + 0x6143, /* R0 - Reset/ID */ 1084 + 0x0000, /* R1 - ID */ 1085 + 0x0001, /* R2 - Revision */ 1086 + 0x1C02, /* R3 - System Control 1 */ 1087 + 0x0004, /* R4 - System Control 2 */ 1088 + 0x0000, /* R5 - System Hibernate */ 1089 + 0x8A00, /* R6 - Interface Control */ 1090 + 0x0000, /* R7 */ 1091 + 0x8000, /* R8 - Power mgmt (1) */ 1092 + 0x0000, /* R9 - Power mgmt (2) */ 1093 + 0x0000, /* R10 - Power mgmt (3) */ 1094 + 0x2000, /* R11 - Power mgmt (4) */ 1095 + 0x0E00, /* R12 - Power mgmt (5) */ 1096 + 0x0000, /* R13 - Power mgmt (6) */ 1097 + 0x0000, /* R14 - Power mgmt (7) */ 1098 + 0x0000, /* R15 */ 1099 + 0x0000, /* R16 - RTC Seconds/Minutes */ 1100 + 0x0100, /* R17 - RTC Hours/Day */ 1101 + 0x0101, /* R18 - RTC Date/Month */ 1102 + 0x1400, /* R19 - RTC Year */ 1103 + 0x0000, /* R20 - Alarm Seconds/Minutes */ 1104 + 0x0000, /* R21 - Alarm Hours/Day */ 1105 + 0x0000, /* R22 - Alarm Date/Month */ 1106 + 0x0320, /* R23 - RTC Time Control */ 1107 + 0x0000, /* R24 - System Interrupts */ 1108 + 0x0000, /* R25 - Interrupt Status 1 */ 1109 + 0x0000, /* R26 - Interrupt Status 2 */ 1110 + 0x0000, /* R27 */ 1111 + 0x0000, /* R28 - Under Voltage Interrupt status */ 1112 + 0x0000, /* R29 - Over Current Interrupt status */ 1113 + 0x0000, /* R30 - GPIO Interrupt Status */ 1114 + 0x0000, /* R31 - Comparator Interrupt Status */ 1115 + 0x3FFF, /* R32 - System Interrupts Mask */ 1116 + 0x0000, /* R33 - Interrupt Status 1 Mask */ 1117 + 0x0000, /* R34 - Interrupt Status 2 Mask */ 1118 + 0x0000, /* R35 */ 1119 + 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 1120 + 0x0000, /* R37 - Over Current Interrupt status Mask */ 1121 + 0x0000, /* R38 - GPIO Interrupt Status Mask */ 1122 + 0x0000, /* R39 - Comparator Interrupt Status Mask */ 1123 + 0x0040, /* R40 - Clock Control 1 */ 1124 + 0x0000, /* R41 - Clock Control 2 */ 1125 + 0x3A00, /* R42 - FLL Control 1 */ 1126 + 0x7086, /* R43 - FLL Control 2 */ 1127 + 0xC226, /* R44 - FLL Control 3 */ 1128 + 0x0000, /* R45 - FLL Control 4 */ 1129 + 0x0000, /* R46 */ 1130 + 0x0000, /* R47 */ 1131 + 0x0000, /* R48 - DAC Control */ 1132 + 0x0000, /* R49 */ 1133 + 0x00C0, /* R50 - DAC Digital Volume L */ 1134 + 0x00C0, /* R51 - DAC Digital Volume R */ 1135 + 0x0000, /* R52 */ 1136 + 0x0040, /* R53 - DAC LR Rate */ 1137 + 0x0000, /* R54 - DAC Clock Control */ 1138 + 0x0000, /* R55 */ 1139 + 0x0000, /* R56 */ 1140 + 0x0000, /* R57 */ 1141 + 0x4000, /* R58 - DAC Mute */ 1142 + 0x0000, /* R59 - DAC Mute Volume */ 1143 + 0x0000, /* R60 - DAC Side */ 1144 + 0x0000, /* R61 */ 1145 + 0x0000, /* R62 */ 1146 + 0x0000, /* R63 */ 1147 + 0x8000, /* R64 - ADC Control */ 1148 + 0x0000, /* R65 */ 1149 + 0x00C0, /* R66 - ADC Digital Volume L */ 1150 + 0x00C0, /* R67 - ADC Digital Volume R */ 1151 + 0x0000, /* R68 - ADC Divider */ 1152 + 0x0000, /* R69 */ 1153 + 0x0040, /* R70 - ADC LR Rate */ 1154 + 0x0000, /* R71 */ 1155 + 0x0303, /* R72 - Input Control */ 1156 + 0x0000, /* R73 - IN3 Input Control */ 1157 + 0x0000, /* R74 - Mic Bias Control */ 1158 + 0x0000, /* R75 */ 1159 + 0x0000, /* R76 - Output Control */ 1160 + 0x0000, /* R77 - Jack Detect */ 1161 + 0x0000, /* R78 - Anti Pop Control */ 1162 + 0x0000, /* R79 */ 1163 + 0x0040, /* R80 - Left Input Volume */ 1164 + 0x0040, /* R81 - Right Input Volume */ 1165 + 0x0000, /* R82 */ 1166 + 0x0000, /* R83 */ 1167 + 0x0000, /* R84 */ 1168 + 0x0000, /* R85 */ 1169 + 0x0000, /* R86 */ 1170 + 0x0000, /* R87 */ 1171 + 0x0800, /* R88 - Left Mixer Control */ 1172 + 0x1000, /* R89 - Right Mixer Control */ 1173 + 0x0000, /* R90 */ 1174 + 0x0000, /* R91 */ 1175 + 0x0000, /* R92 - OUT3 Mixer Control */ 1176 + 0x0000, /* R93 - OUT4 Mixer Control */ 1177 + 0x0000, /* R94 */ 1178 + 0x0000, /* R95 */ 1179 + 0x0000, /* R96 - Output Left Mixer Volume */ 1180 + 0x0000, /* R97 - Output Right Mixer Volume */ 1181 + 0x0000, /* R98 - Input Mixer Volume L */ 1182 + 0x0000, /* R99 - Input Mixer Volume R */ 1183 + 0x0000, /* R100 - Input Mixer Volume */ 1184 + 0x0000, /* R101 */ 1185 + 0x0000, /* R102 */ 1186 + 0x0000, /* R103 */ 1187 + 0x00E4, /* R104 - OUT1L Volume */ 1188 + 0x00E4, /* R105 - OUT1R Volume */ 1189 + 0x00E4, /* R106 - OUT2L Volume */ 1190 + 0x02E4, /* R107 - OUT2R Volume */ 1191 + 0x0000, /* R108 */ 1192 + 0x0000, /* R109 */ 1193 + 0x0000, /* R110 */ 1194 + 0x0000, /* R111 - BEEP Volume */ 1195 + 0x0A00, /* R112 - AI Formating */ 1196 + 0x0000, /* R113 - ADC DAC COMP */ 1197 + 0x0020, /* R114 - AI ADC Control */ 1198 + 0x0020, /* R115 - AI DAC Control */ 1199 + 0x0000, /* R116 */ 1200 + 0x0000, /* R117 */ 1201 + 0x0000, /* R118 */ 1202 + 0x0000, /* R119 */ 1203 + 0x0000, /* R120 */ 1204 + 0x0000, /* R121 */ 1205 + 0x0000, /* R122 */ 1206 + 0x0000, /* R123 */ 1207 + 0x0000, /* R124 */ 1208 + 0x0000, /* R125 */ 1209 + 0x0000, /* R126 */ 1210 + 0x0000, /* R127 */ 1211 + 0x1FFF, /* R128 - GPIO Debounce */ 1212 + 0x0000, /* R129 - GPIO Pin pull up Control */ 1213 + 0x0000, /* R130 - GPIO Pull down Control */ 1214 + 0x0000, /* R131 - GPIO Interrupt Mode */ 1215 + 0x0000, /* R132 */ 1216 + 0x0000, /* R133 - GPIO Control */ 1217 + 0x0FFC, /* R134 - GPIO Configuration (i/o) */ 1218 + 0x0FFC, /* R135 - GPIO Pin Polarity / Type */ 1219 + 0x0000, /* R136 */ 1220 + 0x0000, /* R137 */ 1221 + 0x0000, /* R138 */ 1222 + 0x0000, /* R139 */ 1223 + 0x0013, /* R140 - GPIO Function Select 1 */ 1224 + 0x0000, /* R141 - GPIO Function Select 2 */ 1225 + 0x0000, /* R142 - GPIO Function Select 3 */ 1226 + 0x0003, /* R143 - GPIO Function Select 4 */ 1227 + 0x0000, /* R144 - Digitiser Control (1) */ 1228 + 0x0002, /* R145 - Digitiser Control (2) */ 1229 + 0x0000, /* R146 */ 1230 + 0x0000, /* R147 */ 1231 + 0x0000, /* R148 */ 1232 + 0x0000, /* R149 */ 1233 + 0x0000, /* R150 */ 1234 + 0x0000, /* R151 */ 1235 + 0x7000, /* R152 - AUX1 Readback */ 1236 + 0x7000, /* R153 - AUX2 Readback */ 1237 + 0x7000, /* R154 - AUX3 Readback */ 1238 + 0x7000, /* R155 - AUX4 Readback */ 1239 + 0x0000, /* R156 - USB Voltage Readback */ 1240 + 0x0000, /* R157 - LINE Voltage Readback */ 1241 + 0x0000, /* R158 - BATT Voltage Readback */ 1242 + 0x0000, /* R159 - Chip Temp Readback */ 1243 + 0x0000, /* R160 */ 1244 + 0x0000, /* R161 */ 1245 + 0x0000, /* R162 */ 1246 + 0x0000, /* R163 - Generic Comparator Control */ 1247 + 0x0000, /* R164 - Generic comparator 1 */ 1248 + 0x0000, /* R165 - Generic comparator 2 */ 1249 + 0x0000, /* R166 - Generic comparator 3 */ 1250 + 0x0000, /* R167 - Generic comparator 4 */ 1251 + 0xA00F, /* R168 - Battery Charger Control 1 */ 1252 + 0x0B06, /* R169 - Battery Charger Control 2 */ 1253 + 0x0000, /* R170 - Battery Charger Control 3 */ 1254 + 0x0000, /* R171 */ 1255 + 0x0000, /* R172 - Current Sink Driver A */ 1256 + 0x0000, /* R173 - CSA Flash control */ 1257 + 0x0000, /* R174 */ 1258 + 0x0000, /* R175 */ 1259 + 0x0000, /* R176 - DCDC/LDO requested */ 1260 + 0x032D, /* R177 - DCDC Active options */ 1261 + 0x0000, /* R178 - DCDC Sleep options */ 1262 + 0x0025, /* R179 - Power-check comparator */ 1263 + 0x000E, /* R180 - DCDC1 Control */ 1264 + 0x0000, /* R181 - DCDC1 Timeouts */ 1265 + 0x1006, /* R182 - DCDC1 Low Power */ 1266 + 0x0018, /* R183 - DCDC2 Control */ 1267 + 0x0000, /* R184 - DCDC2 Timeouts */ 1268 + 0x0000, /* R185 */ 1269 + 0x0000, /* R186 - DCDC3 Control */ 1270 + 0x0000, /* R187 - DCDC3 Timeouts */ 1271 + 0x0006, /* R188 - DCDC3 Low Power */ 1272 + 0x0000, /* R189 - DCDC4 Control */ 1273 + 0x0000, /* R190 - DCDC4 Timeouts */ 1274 + 0x0006, /* R191 - DCDC4 Low Power */ 1275 + 0x0008, /* R192 */ 1276 + 0x0000, /* R193 */ 1277 + 0x0000, /* R194 */ 1278 + 0x0000, /* R195 */ 1279 + 0x0000, /* R196 */ 1280 + 0x0006, /* R197 */ 1281 + 0x0000, /* R198 */ 1282 + 0x0003, /* R199 - Limit Switch Control */ 1283 + 0x001C, /* R200 - LDO1 Control */ 1284 + 0x0000, /* R201 - LDO1 Timeouts */ 1285 + 0x001C, /* R202 - LDO1 Low Power */ 1286 + 0x001B, /* R203 - LDO2 Control */ 1287 + 0x0000, /* R204 - LDO2 Timeouts */ 1288 + 0x001C, /* R205 - LDO2 Low Power */ 1289 + 0x001B, /* R206 - LDO3 Control */ 1290 + 0x0000, /* R207 - LDO3 Timeouts */ 1291 + 0x001C, /* R208 - LDO3 Low Power */ 1292 + 0x001B, /* R209 - LDO4 Control */ 1293 + 0x0000, /* R210 - LDO4 Timeouts */ 1294 + 0x001C, /* R211 - LDO4 Low Power */ 1295 + 0x0000, /* R212 */ 1296 + 0x0000, /* R213 */ 1297 + 0x0000, /* R214 */ 1298 + 0x0000, /* R215 - VCC_FAULT Masks */ 1299 + 0x001F, /* R216 - Main Bandgap Control */ 1300 + 0x0000, /* R217 - OSC Control */ 1301 + 0x9000, /* R218 - RTC Tick Control */ 1302 + 0x0000, /* R219 - Security1 */ 1303 + 0x4000, /* R220 */ 1304 + 0x0000, /* R221 */ 1305 + 0x0000, /* R222 */ 1306 + 0x0000, /* R223 */ 1307 + 0x0000, /* R224 - Signal overrides */ 1308 + 0x0000, /* R225 - DCDC/LDO status */ 1309 + 0x0000, /* R226 - Charger Overides/status */ 1310 + 0x0000, /* R227 - misc overrides */ 1311 + 0x0000, /* R228 - Supply overrides/status 1 */ 1312 + 0x0000, /* R229 - Supply overrides/status 2 */ 1313 + 0xE000, /* R230 - GPIO Pin Status */ 1314 + 0x0000, /* R231 - comparotor overrides */ 1315 + 0x0000, /* R232 */ 1316 + 0x0000, /* R233 - State Machine status */ 1317 + 0x1200, /* R234 - FLL Test 1 */ 1318 + 0x0000, /* R235 */ 1319 + 0x8000, /* R236 */ 1320 + 0x0000, /* R237 */ 1321 + 0x0000, /* R238 */ 1322 + 0x0000, /* R239 */ 1323 + 0x0003, /* R240 */ 1324 + 0x0000, /* R241 */ 1325 + 0x0000, /* R242 */ 1326 + 0x0004, /* R243 */ 1327 + 0x0300, /* R244 */ 1328 + 0x0000, /* R245 */ 1329 + 0x0200, /* R246 */ 1330 + 0x0000, /* R247 */ 1331 + 0x1000, /* R248 - DCDC1 Test Controls */ 1332 + 0x1000, /* R249 */ 1333 + 0x1000, /* R250 - DCDC3 Test Controls */ 1334 + 0x1000, /* R251 - DCDC4 Test Controls */ 1335 + }; 1336 + #endif 1337 + 1338 + #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_1 1339 + 1340 + #undef WM8350_HAVE_CONFIG_MODE 1341 + #define WM8350_HAVE_CONFIG_MODE 1342 + 1343 + const u16 wm8351_mode1_defaults[] = { 1344 + 0x6143, /* R0 - Reset/ID */ 1345 + 0x0000, /* R1 - ID */ 1346 + 0x0001, /* R2 - Revision */ 1347 + 0x1C02, /* R3 - System Control 1 */ 1348 + 0x0204, /* R4 - System Control 2 */ 1349 + 0x0000, /* R5 - System Hibernate */ 1350 + 0x8A00, /* R6 - Interface Control */ 1351 + 0x0000, /* R7 */ 1352 + 0x8000, /* R8 - Power mgmt (1) */ 1353 + 0x0000, /* R9 - Power mgmt (2) */ 1354 + 0x0000, /* R10 - Power mgmt (3) */ 1355 + 0x2000, /* R11 - Power mgmt (4) */ 1356 + 0x0E00, /* R12 - Power mgmt (5) */ 1357 + 0x0000, /* R13 - Power mgmt (6) */ 1358 + 0x0000, /* R14 - Power mgmt (7) */ 1359 + 0x0000, /* R15 */ 1360 + 0x0000, /* R16 - RTC Seconds/Minutes */ 1361 + 0x0100, /* R17 - RTC Hours/Day */ 1362 + 0x0101, /* R18 - RTC Date/Month */ 1363 + 0x1400, /* R19 - RTC Year */ 1364 + 0x0000, /* R20 - Alarm Seconds/Minutes */ 1365 + 0x0000, /* R21 - Alarm Hours/Day */ 1366 + 0x0000, /* R22 - Alarm Date/Month */ 1367 + 0x0320, /* R23 - RTC Time Control */ 1368 + 0x0000, /* R24 - System Interrupts */ 1369 + 0x0000, /* R25 - Interrupt Status 1 */ 1370 + 0x0000, /* R26 - Interrupt Status 2 */ 1371 + 0x0000, /* R27 */ 1372 + 0x0000, /* R28 - Under Voltage Interrupt status */ 1373 + 0x0000, /* R29 - Over Current Interrupt status */ 1374 + 0x0000, /* R30 - GPIO Interrupt Status */ 1375 + 0x0000, /* R31 - Comparator Interrupt Status */ 1376 + 0x3FFF, /* R32 - System Interrupts Mask */ 1377 + 0x0000, /* R33 - Interrupt Status 1 Mask */ 1378 + 0x0000, /* R34 - Interrupt Status 2 Mask */ 1379 + 0x0000, /* R35 */ 1380 + 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 1381 + 0x0000, /* R37 - Over Current Interrupt status Mask */ 1382 + 0x0000, /* R38 - GPIO Interrupt Status Mask */ 1383 + 0x0000, /* R39 - Comparator Interrupt Status Mask */ 1384 + 0x0040, /* R40 - Clock Control 1 */ 1385 + 0x0000, /* R41 - Clock Control 2 */ 1386 + 0x3A00, /* R42 - FLL Control 1 */ 1387 + 0x7086, /* R43 - FLL Control 2 */ 1388 + 0xC226, /* R44 - FLL Control 3 */ 1389 + 0x0000, /* R45 - FLL Control 4 */ 1390 + 0x0000, /* R46 */ 1391 + 0x0000, /* R47 */ 1392 + 0x0000, /* R48 - DAC Control */ 1393 + 0x0000, /* R49 */ 1394 + 0x00C0, /* R50 - DAC Digital Volume L */ 1395 + 0x00C0, /* R51 - DAC Digital Volume R */ 1396 + 0x0000, /* R52 */ 1397 + 0x0040, /* R53 - DAC LR Rate */ 1398 + 0x0000, /* R54 - DAC Clock Control */ 1399 + 0x0000, /* R55 */ 1400 + 0x0000, /* R56 */ 1401 + 0x0000, /* R57 */ 1402 + 0x4000, /* R58 - DAC Mute */ 1403 + 0x0000, /* R59 - DAC Mute Volume */ 1404 + 0x0000, /* R60 - DAC Side */ 1405 + 0x0000, /* R61 */ 1406 + 0x0000, /* R62 */ 1407 + 0x0000, /* R63 */ 1408 + 0x8000, /* R64 - ADC Control */ 1409 + 0x0000, /* R65 */ 1410 + 0x00C0, /* R66 - ADC Digital Volume L */ 1411 + 0x00C0, /* R67 - ADC Digital Volume R */ 1412 + 0x0000, /* R68 - ADC Divider */ 1413 + 0x0000, /* R69 */ 1414 + 0x0040, /* R70 - ADC LR Rate */ 1415 + 0x0000, /* R71 */ 1416 + 0x0303, /* R72 - Input Control */ 1417 + 0x0000, /* R73 - IN3 Input Control */ 1418 + 0x0000, /* R74 - Mic Bias Control */ 1419 + 0x0000, /* R75 */ 1420 + 0x0000, /* R76 - Output Control */ 1421 + 0x0000, /* R77 - Jack Detect */ 1422 + 0x0000, /* R78 - Anti Pop Control */ 1423 + 0x0000, /* R79 */ 1424 + 0x0040, /* R80 - Left Input Volume */ 1425 + 0x0040, /* R81 - Right Input Volume */ 1426 + 0x0000, /* R82 */ 1427 + 0x0000, /* R83 */ 1428 + 0x0000, /* R84 */ 1429 + 0x0000, /* R85 */ 1430 + 0x0000, /* R86 */ 1431 + 0x0000, /* R87 */ 1432 + 0x0800, /* R88 - Left Mixer Control */ 1433 + 0x1000, /* R89 - Right Mixer Control */ 1434 + 0x0000, /* R90 */ 1435 + 0x0000, /* R91 */ 1436 + 0x0000, /* R92 - OUT3 Mixer Control */ 1437 + 0x0000, /* R93 - OUT4 Mixer Control */ 1438 + 0x0000, /* R94 */ 1439 + 0x0000, /* R95 */ 1440 + 0x0000, /* R96 - Output Left Mixer Volume */ 1441 + 0x0000, /* R97 - Output Right Mixer Volume */ 1442 + 0x0000, /* R98 - Input Mixer Volume L */ 1443 + 0x0000, /* R99 - Input Mixer Volume R */ 1444 + 0x0000, /* R100 - Input Mixer Volume */ 1445 + 0x0000, /* R101 */ 1446 + 0x0000, /* R102 */ 1447 + 0x0000, /* R103 */ 1448 + 0x00E4, /* R104 - OUT1L Volume */ 1449 + 0x00E4, /* R105 - OUT1R Volume */ 1450 + 0x00E4, /* R106 - OUT2L Volume */ 1451 + 0x02E4, /* R107 - OUT2R Volume */ 1452 + 0x0000, /* R108 */ 1453 + 0x0000, /* R109 */ 1454 + 0x0000, /* R110 */ 1455 + 0x0000, /* R111 - BEEP Volume */ 1456 + 0x0A00, /* R112 - AI Formating */ 1457 + 0x0000, /* R113 - ADC DAC COMP */ 1458 + 0x0020, /* R114 - AI ADC Control */ 1459 + 0x0020, /* R115 - AI DAC Control */ 1460 + 0x0000, /* R116 */ 1461 + 0x0000, /* R117 */ 1462 + 0x0000, /* R118 */ 1463 + 0x0000, /* R119 */ 1464 + 0x0000, /* R120 */ 1465 + 0x0000, /* R121 */ 1466 + 0x0000, /* R122 */ 1467 + 0x0000, /* R123 */ 1468 + 0x0000, /* R124 */ 1469 + 0x0000, /* R125 */ 1470 + 0x0000, /* R126 */ 1471 + 0x0000, /* R127 */ 1472 + 0x1FFF, /* R128 - GPIO Debounce */ 1473 + 0x0000, /* R129 - GPIO Pin pull up Control */ 1474 + 0x0000, /* R130 - GPIO Pull down Control */ 1475 + 0x0000, /* R131 - GPIO Interrupt Mode */ 1476 + 0x0000, /* R132 */ 1477 + 0x0000, /* R133 - GPIO Control */ 1478 + 0x0CFB, /* R134 - GPIO Configuration (i/o) */ 1479 + 0x0C1F, /* R135 - GPIO Pin Polarity / Type */ 1480 + 0x0000, /* R136 */ 1481 + 0x0000, /* R137 */ 1482 + 0x0000, /* R138 */ 1483 + 0x0000, /* R139 */ 1484 + 0x0300, /* R140 - GPIO Function Select 1 */ 1485 + 0x1110, /* R141 - GPIO Function Select 2 */ 1486 + 0x0013, /* R142 - GPIO Function Select 3 */ 1487 + 0x0003, /* R143 - GPIO Function Select 4 */ 1488 + 0x0000, /* R144 - Digitiser Control (1) */ 1489 + 0x0002, /* R145 - Digitiser Control (2) */ 1490 + 0x0000, /* R146 */ 1491 + 0x0000, /* R147 */ 1492 + 0x0000, /* R148 */ 1493 + 0x0000, /* R149 */ 1494 + 0x0000, /* R150 */ 1495 + 0x0000, /* R151 */ 1496 + 0x7000, /* R152 - AUX1 Readback */ 1497 + 0x7000, /* R153 - AUX2 Readback */ 1498 + 0x7000, /* R154 - AUX3 Readback */ 1499 + 0x7000, /* R155 - AUX4 Readback */ 1500 + 0x0000, /* R156 - USB Voltage Readback */ 1501 + 0x0000, /* R157 - LINE Voltage Readback */ 1502 + 0x0000, /* R158 - BATT Voltage Readback */ 1503 + 0x0000, /* R159 - Chip Temp Readback */ 1504 + 0x0000, /* R160 */ 1505 + 0x0000, /* R161 */ 1506 + 0x0000, /* R162 */ 1507 + 0x0000, /* R163 - Generic Comparator Control */ 1508 + 0x0000, /* R164 - Generic comparator 1 */ 1509 + 0x0000, /* R165 - Generic comparator 2 */ 1510 + 0x0000, /* R166 - Generic comparator 3 */ 1511 + 0x0000, /* R167 - Generic comparator 4 */ 1512 + 0xA00F, /* R168 - Battery Charger Control 1 */ 1513 + 0x0B06, /* R169 - Battery Charger Control 2 */ 1514 + 0x0000, /* R170 - Battery Charger Control 3 */ 1515 + 0x0000, /* R171 */ 1516 + 0x0000, /* R172 - Current Sink Driver A */ 1517 + 0x0000, /* R173 - CSA Flash control */ 1518 + 0x0000, /* R174 */ 1519 + 0x0000, /* R175 */ 1520 + 0x0000, /* R176 - DCDC/LDO requested */ 1521 + 0x032D, /* R177 - DCDC Active options */ 1522 + 0x0000, /* R178 - DCDC Sleep options */ 1523 + 0x0025, /* R179 - Power-check comparator */ 1524 + 0x000E, /* R180 - DCDC1 Control */ 1525 + 0x0C00, /* R181 - DCDC1 Timeouts */ 1526 + 0x1006, /* R182 - DCDC1 Low Power */ 1527 + 0x0018, /* R183 - DCDC2 Control */ 1528 + 0x0000, /* R184 - DCDC2 Timeouts */ 1529 + 0x0000, /* R185 */ 1530 + 0x0026, /* R186 - DCDC3 Control */ 1531 + 0x0400, /* R187 - DCDC3 Timeouts */ 1532 + 0x0006, /* R188 - DCDC3 Low Power */ 1533 + 0x0062, /* R189 - DCDC4 Control */ 1534 + 0x0800, /* R190 - DCDC4 Timeouts */ 1535 + 0x0006, /* R191 - DCDC4 Low Power */ 1536 + 0x0008, /* R192 */ 1537 + 0x0000, /* R193 */ 1538 + 0x0000, /* R194 */ 1539 + 0x000A, /* R195 */ 1540 + 0x1000, /* R196 */ 1541 + 0x0006, /* R197 */ 1542 + 0x0000, /* R198 */ 1543 + 0x0003, /* R199 - Limit Switch Control */ 1544 + 0x0006, /* R200 - LDO1 Control */ 1545 + 0x0000, /* R201 - LDO1 Timeouts */ 1546 + 0x001C, /* R202 - LDO1 Low Power */ 1547 + 0x0010, /* R203 - LDO2 Control */ 1548 + 0x0C00, /* R204 - LDO2 Timeouts */ 1549 + 0x001C, /* R205 - LDO2 Low Power */ 1550 + 0x001F, /* R206 - LDO3 Control */ 1551 + 0x0800, /* R207 - LDO3 Timeouts */ 1552 + 0x001C, /* R208 - LDO3 Low Power */ 1553 + 0x000A, /* R209 - LDO4 Control */ 1554 + 0x0800, /* R210 - LDO4 Timeouts */ 1555 + 0x001C, /* R211 - LDO4 Low Power */ 1556 + 0x0000, /* R212 */ 1557 + 0x0000, /* R213 */ 1558 + 0x0000, /* R214 */ 1559 + 0x0000, /* R215 - VCC_FAULT Masks */ 1560 + 0x001F, /* R216 - Main Bandgap Control */ 1561 + 0x0000, /* R217 - OSC Control */ 1562 + 0x9000, /* R218 - RTC Tick Control */ 1563 + 0x0000, /* R219 - Security1 */ 1564 + 0x4000, /* R220 */ 1565 + 0x0000, /* R221 */ 1566 + 0x0000, /* R222 */ 1567 + 0x0000, /* R223 */ 1568 + 0x0000, /* R224 - Signal overrides */ 1569 + 0x0000, /* R225 - DCDC/LDO status */ 1570 + 0x0000, /* R226 - Charger Overides/status */ 1571 + 0x0000, /* R227 - misc overrides */ 1572 + 0x0000, /* R228 - Supply overrides/status 1 */ 1573 + 0x0000, /* R229 - Supply overrides/status 2 */ 1574 + 0xE000, /* R230 - GPIO Pin Status */ 1575 + 0x0000, /* R231 - comparotor overrides */ 1576 + 0x0000, /* R232 */ 1577 + 0x0000, /* R233 - State Machine status */ 1578 + 0x1200, /* R234 - FLL Test 1 */ 1579 + 0x0000, /* R235 */ 1580 + 0x8000, /* R236 */ 1581 + 0x0000, /* R237 */ 1582 + 0x0000, /* R238 */ 1583 + 0x0000, /* R239 */ 1584 + 0x0003, /* R240 */ 1585 + 0x0000, /* R241 */ 1586 + 0x0000, /* R242 */ 1587 + 0x0004, /* R243 */ 1588 + 0x0300, /* R244 */ 1589 + 0x0000, /* R245 */ 1590 + 0x0200, /* R246 */ 1591 + 0x1000, /* R247 */ 1592 + 0x1000, /* R248 - DCDC1 Test Controls */ 1593 + 0x1000, /* R249 */ 1594 + 0x1000, /* R250 - DCDC3 Test Controls */ 1595 + 0x1000, /* R251 - DCDC4 Test Controls */ 1596 + }; 1597 + #endif 1598 + 1599 + #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_2 1600 + 1601 + #undef WM8350_HAVE_CONFIG_MODE 1602 + #define WM8350_HAVE_CONFIG_MODE 1603 + 1604 + const u16 wm8351_mode2_defaults[] = { 1605 + 0x6143, /* R0 - Reset/ID */ 1606 + 0x0000, /* R1 - ID */ 1607 + 0x0001, /* R2 - Revision */ 1608 + 0x1C02, /* R3 - System Control 1 */ 1609 + 0x0214, /* R4 - System Control 2 */ 1610 + 0x0000, /* R5 - System Hibernate */ 1611 + 0x8A00, /* R6 - Interface Control */ 1612 + 0x0000, /* R7 */ 1613 + 0x8000, /* R8 - Power mgmt (1) */ 1614 + 0x0000, /* R9 - Power mgmt (2) */ 1615 + 0x0000, /* R10 - Power mgmt (3) */ 1616 + 0x2000, /* R11 - Power mgmt (4) */ 1617 + 0x0E00, /* R12 - Power mgmt (5) */ 1618 + 0x0000, /* R13 - Power mgmt (6) */ 1619 + 0x0000, /* R14 - Power mgmt (7) */ 1620 + 0x0000, /* R15 */ 1621 + 0x0000, /* R16 - RTC Seconds/Minutes */ 1622 + 0x0100, /* R17 - RTC Hours/Day */ 1623 + 0x0101, /* R18 - RTC Date/Month */ 1624 + 0x1400, /* R19 - RTC Year */ 1625 + 0x0000, /* R20 - Alarm Seconds/Minutes */ 1626 + 0x0000, /* R21 - Alarm Hours/Day */ 1627 + 0x0000, /* R22 - Alarm Date/Month */ 1628 + 0x0320, /* R23 - RTC Time Control */ 1629 + 0x0000, /* R24 - System Interrupts */ 1630 + 0x0000, /* R25 - Interrupt Status 1 */ 1631 + 0x0000, /* R26 - Interrupt Status 2 */ 1632 + 0x0000, /* R27 */ 1633 + 0x0000, /* R28 - Under Voltage Interrupt status */ 1634 + 0x0000, /* R29 - Over Current Interrupt status */ 1635 + 0x0000, /* R30 - GPIO Interrupt Status */ 1636 + 0x0000, /* R31 - Comparator Interrupt Status */ 1637 + 0x3FFF, /* R32 - System Interrupts Mask */ 1638 + 0x0000, /* R33 - Interrupt Status 1 Mask */ 1639 + 0x0000, /* R34 - Interrupt Status 2 Mask */ 1640 + 0x0000, /* R35 */ 1641 + 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 1642 + 0x0000, /* R37 - Over Current Interrupt status Mask */ 1643 + 0x0000, /* R38 - GPIO Interrupt Status Mask */ 1644 + 0x0000, /* R39 - Comparator Interrupt Status Mask */ 1645 + 0x0040, /* R40 - Clock Control 1 */ 1646 + 0x0000, /* R41 - Clock Control 2 */ 1647 + 0x3A00, /* R42 - FLL Control 1 */ 1648 + 0x7086, /* R43 - FLL Control 2 */ 1649 + 0xC226, /* R44 - FLL Control 3 */ 1650 + 0x0000, /* R45 - FLL Control 4 */ 1651 + 0x0000, /* R46 */ 1652 + 0x0000, /* R47 */ 1653 + 0x0000, /* R48 - DAC Control */ 1654 + 0x0000, /* R49 */ 1655 + 0x00C0, /* R50 - DAC Digital Volume L */ 1656 + 0x00C0, /* R51 - DAC Digital Volume R */ 1657 + 0x0000, /* R52 */ 1658 + 0x0040, /* R53 - DAC LR Rate */ 1659 + 0x0000, /* R54 - DAC Clock Control */ 1660 + 0x0000, /* R55 */ 1661 + 0x0000, /* R56 */ 1662 + 0x0000, /* R57 */ 1663 + 0x4000, /* R58 - DAC Mute */ 1664 + 0x0000, /* R59 - DAC Mute Volume */ 1665 + 0x0000, /* R60 - DAC Side */ 1666 + 0x0000, /* R61 */ 1667 + 0x0000, /* R62 */ 1668 + 0x0000, /* R63 */ 1669 + 0x8000, /* R64 - ADC Control */ 1670 + 0x0000, /* R65 */ 1671 + 0x00C0, /* R66 - ADC Digital Volume L */ 1672 + 0x00C0, /* R67 - ADC Digital Volume R */ 1673 + 0x0000, /* R68 - ADC Divider */ 1674 + 0x0000, /* R69 */ 1675 + 0x0040, /* R70 - ADC LR Rate */ 1676 + 0x0000, /* R71 */ 1677 + 0x0303, /* R72 - Input Control */ 1678 + 0x0000, /* R73 - IN3 Input Control */ 1679 + 0x0000, /* R74 - Mic Bias Control */ 1680 + 0x0000, /* R75 */ 1681 + 0x0000, /* R76 - Output Control */ 1682 + 0x0000, /* R77 - Jack Detect */ 1683 + 0x0000, /* R78 - Anti Pop Control */ 1684 + 0x0000, /* R79 */ 1685 + 0x0040, /* R80 - Left Input Volume */ 1686 + 0x0040, /* R81 - Right Input Volume */ 1687 + 0x0000, /* R82 */ 1688 + 0x0000, /* R83 */ 1689 + 0x0000, /* R84 */ 1690 + 0x0000, /* R85 */ 1691 + 0x0000, /* R86 */ 1692 + 0x0000, /* R87 */ 1693 + 0x0800, /* R88 - Left Mixer Control */ 1694 + 0x1000, /* R89 - Right Mixer Control */ 1695 + 0x0000, /* R90 */ 1696 + 0x0000, /* R91 */ 1697 + 0x0000, /* R92 - OUT3 Mixer Control */ 1698 + 0x0000, /* R93 - OUT4 Mixer Control */ 1699 + 0x0000, /* R94 */ 1700 + 0x0000, /* R95 */ 1701 + 0x0000, /* R96 - Output Left Mixer Volume */ 1702 + 0x0000, /* R97 - Output Right Mixer Volume */ 1703 + 0x0000, /* R98 - Input Mixer Volume L */ 1704 + 0x0000, /* R99 - Input Mixer Volume R */ 1705 + 0x0000, /* R100 - Input Mixer Volume */ 1706 + 0x0000, /* R101 */ 1707 + 0x0000, /* R102 */ 1708 + 0x0000, /* R103 */ 1709 + 0x00E4, /* R104 - OUT1L Volume */ 1710 + 0x00E4, /* R105 - OUT1R Volume */ 1711 + 0x00E4, /* R106 - OUT2L Volume */ 1712 + 0x02E4, /* R107 - OUT2R Volume */ 1713 + 0x0000, /* R108 */ 1714 + 0x0000, /* R109 */ 1715 + 0x0000, /* R110 */ 1716 + 0x0000, /* R111 - BEEP Volume */ 1717 + 0x0A00, /* R112 - AI Formating */ 1718 + 0x0000, /* R113 - ADC DAC COMP */ 1719 + 0x0020, /* R114 - AI ADC Control */ 1720 + 0x0020, /* R115 - AI DAC Control */ 1721 + 0x0000, /* R116 */ 1722 + 0x0000, /* R117 */ 1723 + 0x0000, /* R118 */ 1724 + 0x0000, /* R119 */ 1725 + 0x0000, /* R120 */ 1726 + 0x0000, /* R121 */ 1727 + 0x0000, /* R122 */ 1728 + 0x0000, /* R123 */ 1729 + 0x0000, /* R124 */ 1730 + 0x0000, /* R125 */ 1731 + 0x0000, /* R126 */ 1732 + 0x0000, /* R127 */ 1733 + 0x1FFF, /* R128 - GPIO Debounce */ 1734 + 0x0000, /* R129 - GPIO Pin pull up Control */ 1735 + 0x0110, /* R130 - GPIO Pull down Control */ 1736 + 0x0000, /* R131 - GPIO Interrupt Mode */ 1737 + 0x0000, /* R132 */ 1738 + 0x0000, /* R133 - GPIO Control */ 1739 + 0x09FA, /* R134 - GPIO Configuration (i/o) */ 1740 + 0x0DF6, /* R135 - GPIO Pin Polarity / Type */ 1741 + 0x0000, /* R136 */ 1742 + 0x0000, /* R137 */ 1743 + 0x0000, /* R138 */ 1744 + 0x0000, /* R139 */ 1745 + 0x1310, /* R140 - GPIO Function Select 1 */ 1746 + 0x0003, /* R141 - GPIO Function Select 2 */ 1747 + 0x2000, /* R142 - GPIO Function Select 3 */ 1748 + 0x0000, /* R143 - GPIO Function Select 4 */ 1749 + 0x0000, /* R144 - Digitiser Control (1) */ 1750 + 0x0002, /* R145 - Digitiser Control (2) */ 1751 + 0x0000, /* R146 */ 1752 + 0x0000, /* R147 */ 1753 + 0x0000, /* R148 */ 1754 + 0x0000, /* R149 */ 1755 + 0x0000, /* R150 */ 1756 + 0x0000, /* R151 */ 1757 + 0x7000, /* R152 - AUX1 Readback */ 1758 + 0x7000, /* R153 - AUX2 Readback */ 1759 + 0x7000, /* R154 - AUX3 Readback */ 1760 + 0x7000, /* R155 - AUX4 Readback */ 1761 + 0x0000, /* R156 - USB Voltage Readback */ 1762 + 0x0000, /* R157 - LINE Voltage Readback */ 1763 + 0x0000, /* R158 - BATT Voltage Readback */ 1764 + 0x0000, /* R159 - Chip Temp Readback */ 1765 + 0x0000, /* R160 */ 1766 + 0x0000, /* R161 */ 1767 + 0x0000, /* R162 */ 1768 + 0x0000, /* R163 - Generic Comparator Control */ 1769 + 0x0000, /* R164 - Generic comparator 1 */ 1770 + 0x0000, /* R165 - Generic comparator 2 */ 1771 + 0x0000, /* R166 - Generic comparator 3 */ 1772 + 0x0000, /* R167 - Generic comparator 4 */ 1773 + 0xA00F, /* R168 - Battery Charger Control 1 */ 1774 + 0x0B06, /* R169 - Battery Charger Control 2 */ 1775 + 0x0000, /* R170 - Battery Charger Control 3 */ 1776 + 0x0000, /* R171 */ 1777 + 0x0000, /* R172 - Current Sink Driver A */ 1778 + 0x0000, /* R173 - CSA Flash control */ 1779 + 0x0000, /* R174 */ 1780 + 0x0000, /* R175 */ 1781 + 0x0000, /* R176 - DCDC/LDO requested */ 1782 + 0x032D, /* R177 - DCDC Active options */ 1783 + 0x0000, /* R178 - DCDC Sleep options */ 1784 + 0x0025, /* R179 - Power-check comparator */ 1785 + 0x001A, /* R180 - DCDC1 Control */ 1786 + 0x0800, /* R181 - DCDC1 Timeouts */ 1787 + 0x1006, /* R182 - DCDC1 Low Power */ 1788 + 0x0018, /* R183 - DCDC2 Control */ 1789 + 0x0000, /* R184 - DCDC2 Timeouts */ 1790 + 0x0000, /* R185 */ 1791 + 0x0056, /* R186 - DCDC3 Control */ 1792 + 0x0400, /* R187 - DCDC3 Timeouts */ 1793 + 0x0006, /* R188 - DCDC3 Low Power */ 1794 + 0x0026, /* R189 - DCDC4 Control */ 1795 + 0x0C00, /* R190 - DCDC4 Timeouts */ 1796 + 0x0006, /* R191 - DCDC4 Low Power */ 1797 + 0x0008, /* R192 */ 1798 + 0x0000, /* R193 */ 1799 + 0x0000, /* R194 */ 1800 + 0x0026, /* R195 */ 1801 + 0x0C00, /* R196 */ 1802 + 0x0006, /* R197 */ 1803 + 0x0000, /* R198 */ 1804 + 0x0003, /* R199 - Limit Switch Control */ 1805 + 0x001C, /* R200 - LDO1 Control */ 1806 + 0x0400, /* R201 - LDO1 Timeouts */ 1807 + 0x001C, /* R202 - LDO1 Low Power */ 1808 + 0x0010, /* R203 - LDO2 Control */ 1809 + 0x0C00, /* R204 - LDO2 Timeouts */ 1810 + 0x001C, /* R205 - LDO2 Low Power */ 1811 + 0x0015, /* R206 - LDO3 Control */ 1812 + 0x0000, /* R207 - LDO3 Timeouts */ 1813 + 0x001C, /* R208 - LDO3 Low Power */ 1814 + 0x001A, /* R209 - LDO4 Control */ 1815 + 0x0000, /* R210 - LDO4 Timeouts */ 1816 + 0x001C, /* R211 - LDO4 Low Power */ 1817 + 0x0000, /* R212 */ 1818 + 0x0000, /* R213 */ 1819 + 0x0000, /* R214 */ 1820 + 0x0000, /* R215 - VCC_FAULT Masks */ 1821 + 0x001F, /* R216 - Main Bandgap Control */ 1822 + 0x0000, /* R217 - OSC Control */ 1823 + 0x9000, /* R218 - RTC Tick Control */ 1824 + 0x0000, /* R219 - Security1 */ 1825 + 0x4000, /* R220 */ 1826 + 0x0000, /* R221 */ 1827 + 0x0000, /* R222 */ 1828 + 0x0000, /* R223 */ 1829 + 0x0000, /* R224 - Signal overrides */ 1830 + 0x0000, /* R225 - DCDC/LDO status */ 1831 + 0x0000, /* R226 - Charger Overides/status */ 1832 + 0x0000, /* R227 - misc overrides */ 1833 + 0x0000, /* R228 - Supply overrides/status 1 */ 1834 + 0x0000, /* R229 - Supply overrides/status 2 */ 1835 + 0xE000, /* R230 - GPIO Pin Status */ 1836 + 0x0000, /* R231 - comparotor overrides */ 1837 + 0x0000, /* R232 */ 1838 + 0x0000, /* R233 - State Machine status */ 1839 + 0x1200, /* R234 - FLL Test 1 */ 1840 + 0x0000, /* R235 */ 1841 + 0x8000, /* R236 */ 1842 + 0x0000, /* R237 */ 1843 + 0x0000, /* R238 */ 1844 + 0x0000, /* R239 */ 1845 + 0x0003, /* R240 */ 1846 + 0x0000, /* R241 */ 1847 + 0x0000, /* R242 */ 1848 + 0x0004, /* R243 */ 1849 + 0x0300, /* R244 */ 1850 + 0x0000, /* R245 */ 1851 + 0x0200, /* R246 */ 1852 + 0x0000, /* R247 */ 1853 + 0x1000, /* R248 - DCDC1 Test Controls */ 1854 + 0x1000, /* R249 */ 1855 + 0x1000, /* R250 - DCDC3 Test Controls */ 1856 + 0x1000, /* R251 - DCDC4 Test Controls */ 1857 + }; 1858 + #endif 1859 + 1860 + #ifdef CONFIG_MFD_WM8351_CONFIG_MODE_3 1861 + 1862 + #undef WM8350_HAVE_CONFIG_MODE 1863 + #define WM8350_HAVE_CONFIG_MODE 1864 + 1865 + const u16 wm8351_mode3_defaults[] = { 1866 + 0x6143, /* R0 - Reset/ID */ 1867 + 0x0000, /* R1 - ID */ 1868 + 0x0001, /* R2 - Revision */ 1869 + 0x1C02, /* R3 - System Control 1 */ 1870 + 0x0204, /* R4 - System Control 2 */ 1871 + 0x0000, /* R5 - System Hibernate */ 1872 + 0x8A00, /* R6 - Interface Control */ 1873 + 0x0000, /* R7 */ 1874 + 0x8000, /* R8 - Power mgmt (1) */ 1875 + 0x0000, /* R9 - Power mgmt (2) */ 1876 + 0x0000, /* R10 - Power mgmt (3) */ 1877 + 0x2000, /* R11 - Power mgmt (4) */ 1878 + 0x0E00, /* R12 - Power mgmt (5) */ 1879 + 0x0000, /* R13 - Power mgmt (6) */ 1880 + 0x0000, /* R14 - Power mgmt (7) */ 1881 + 0x0000, /* R15 */ 1882 + 0x0000, /* R16 - RTC Seconds/Minutes */ 1883 + 0x0100, /* R17 - RTC Hours/Day */ 1884 + 0x0101, /* R18 - RTC Date/Month */ 1885 + 0x1400, /* R19 - RTC Year */ 1886 + 0x0000, /* R20 - Alarm Seconds/Minutes */ 1887 + 0x0000, /* R21 - Alarm Hours/Day */ 1888 + 0x0000, /* R22 - Alarm Date/Month */ 1889 + 0x0320, /* R23 - RTC Time Control */ 1890 + 0x0000, /* R24 - System Interrupts */ 1891 + 0x0000, /* R25 - Interrupt Status 1 */ 1892 + 0x0000, /* R26 - Interrupt Status 2 */ 1893 + 0x0000, /* R27 */ 1894 + 0x0000, /* R28 - Under Voltage Interrupt status */ 1895 + 0x0000, /* R29 - Over Current Interrupt status */ 1896 + 0x0000, /* R30 - GPIO Interrupt Status */ 1897 + 0x0000, /* R31 - Comparator Interrupt Status */ 1898 + 0x3FFF, /* R32 - System Interrupts Mask */ 1899 + 0x0000, /* R33 - Interrupt Status 1 Mask */ 1900 + 0x0000, /* R34 - Interrupt Status 2 Mask */ 1901 + 0x0000, /* R35 */ 1902 + 0x0000, /* R36 - Under Voltage Interrupt status Mask */ 1903 + 0x0000, /* R37 - Over Current Interrupt status Mask */ 1904 + 0x0000, /* R38 - GPIO Interrupt Status Mask */ 1905 + 0x0000, /* R39 - Comparator Interrupt Status Mask */ 1906 + 0x0040, /* R40 - Clock Control 1 */ 1907 + 0x0000, /* R41 - Clock Control 2 */ 1908 + 0x3A00, /* R42 - FLL Control 1 */ 1909 + 0x7086, /* R43 - FLL Control 2 */ 1910 + 0xC226, /* R44 - FLL Control 3 */ 1911 + 0x0000, /* R45 - FLL Control 4 */ 1912 + 0x0000, /* R46 */ 1913 + 0x0000, /* R47 */ 1914 + 0x0000, /* R48 - DAC Control */ 1915 + 0x0000, /* R49 */ 1916 + 0x00C0, /* R50 - DAC Digital Volume L */ 1917 + 0x00C0, /* R51 - DAC Digital Volume R */ 1918 + 0x0000, /* R52 */ 1919 + 0x0040, /* R53 - DAC LR Rate */ 1920 + 0x0000, /* R54 - DAC Clock Control */ 1921 + 0x0000, /* R55 */ 1922 + 0x0000, /* R56 */ 1923 + 0x0000, /* R57 */ 1924 + 0x4000, /* R58 - DAC Mute */ 1925 + 0x0000, /* R59 - DAC Mute Volume */ 1926 + 0x0000, /* R60 - DAC Side */ 1927 + 0x0000, /* R61 */ 1928 + 0x0000, /* R62 */ 1929 + 0x0000, /* R63 */ 1930 + 0x8000, /* R64 - ADC Control */ 1931 + 0x0000, /* R65 */ 1932 + 0x00C0, /* R66 - ADC Digital Volume L */ 1933 + 0x00C0, /* R67 - ADC Digital Volume R */ 1934 + 0x0000, /* R68 - ADC Divider */ 1935 + 0x0000, /* R69 */ 1936 + 0x0040, /* R70 - ADC LR Rate */ 1937 + 0x0000, /* R71 */ 1938 + 0x0303, /* R72 - Input Control */ 1939 + 0x0000, /* R73 - IN3 Input Control */ 1940 + 0x0000, /* R74 - Mic Bias Control */ 1941 + 0x0000, /* R75 */ 1942 + 0x0000, /* R76 - Output Control */ 1943 + 0x0000, /* R77 - Jack Detect */ 1944 + 0x0000, /* R78 - Anti Pop Control */ 1945 + 0x0000, /* R79 */ 1946 + 0x0040, /* R80 - Left Input Volume */ 1947 + 0x0040, /* R81 - Right Input Volume */ 1948 + 0x0000, /* R82 */ 1949 + 0x0000, /* R83 */ 1950 + 0x0000, /* R84 */ 1951 + 0x0000, /* R85 */ 1952 + 0x0000, /* R86 */ 1953 + 0x0000, /* R87 */ 1954 + 0x0800, /* R88 - Left Mixer Control */ 1955 + 0x1000, /* R89 - Right Mixer Control */ 1956 + 0x0000, /* R90 */ 1957 + 0x0000, /* R91 */ 1958 + 0x0000, /* R92 - OUT3 Mixer Control */ 1959 + 0x0000, /* R93 - OUT4 Mixer Control */ 1960 + 0x0000, /* R94 */ 1961 + 0x0000, /* R95 */ 1962 + 0x0000, /* R96 - Output Left Mixer Volume */ 1963 + 0x0000, /* R97 - Output Right Mixer Volume */ 1964 + 0x0000, /* R98 - Input Mixer Volume L */ 1965 + 0x0000, /* R99 - Input Mixer Volume R */ 1966 + 0x0000, /* R100 - Input Mixer Volume */ 1967 + 0x0000, /* R101 */ 1968 + 0x0000, /* R102 */ 1969 + 0x0000, /* R103 */ 1970 + 0x00E4, /* R104 - OUT1L Volume */ 1971 + 0x00E4, /* R105 - OUT1R Volume */ 1972 + 0x00E4, /* R106 - OUT2L Volume */ 1973 + 0x02E4, /* R107 - OUT2R Volume */ 1974 + 0x0000, /* R108 */ 1975 + 0x0000, /* R109 */ 1976 + 0x0000, /* R110 */ 1977 + 0x0000, /* R111 - BEEP Volume */ 1978 + 0x0A00, /* R112 - AI Formating */ 1979 + 0x0000, /* R113 - ADC DAC COMP */ 1980 + 0x0020, /* R114 - AI ADC Control */ 1981 + 0x0020, /* R115 - AI DAC Control */ 1982 + 0x0000, /* R116 */ 1983 + 0x0000, /* R117 */ 1984 + 0x0000, /* R118 */ 1985 + 0x0000, /* R119 */ 1986 + 0x0000, /* R120 */ 1987 + 0x0000, /* R121 */ 1988 + 0x0000, /* R122 */ 1989 + 0x0000, /* R123 */ 1990 + 0x0000, /* R124 */ 1991 + 0x0000, /* R125 */ 1992 + 0x0000, /* R126 */ 1993 + 0x0000, /* R127 */ 1994 + 0x1FFF, /* R128 - GPIO Debounce */ 1995 + 0x0010, /* R129 - GPIO Pin pull up Control */ 1996 + 0x0000, /* R130 - GPIO Pull down Control */ 1997 + 0x0000, /* R131 - GPIO Interrupt Mode */ 1998 + 0x0000, /* R132 */ 1999 + 0x0000, /* R133 - GPIO Control */ 2000 + 0x0BFB, /* R134 - GPIO Configuration (i/o) */ 2001 + 0x0FFD, /* R135 - GPIO Pin Polarity / Type */ 2002 + 0x0000, /* R136 */ 2003 + 0x0000, /* R137 */ 2004 + 0x0000, /* R138 */ 2005 + 0x0000, /* R139 */ 2006 + 0x0310, /* R140 - GPIO Function Select 1 */ 2007 + 0x0001, /* R141 - GPIO Function Select 2 */ 2008 + 0x2300, /* R142 - GPIO Function Select 3 */ 2009 + 0x0003, /* R143 - GPIO Function Select 4 */ 2010 + 0x0000, /* R144 - Digitiser Control (1) */ 2011 + 0x0002, /* R145 - Digitiser Control (2) */ 2012 + 0x0000, /* R146 */ 2013 + 0x0000, /* R147 */ 2014 + 0x0000, /* R148 */ 2015 + 0x0000, /* R149 */ 2016 + 0x0000, /* R150 */ 2017 + 0x0000, /* R151 */ 2018 + 0x7000, /* R152 - AUX1 Readback */ 2019 + 0x7000, /* R153 - AUX2 Readback */ 2020 + 0x7000, /* R154 - AUX3 Readback */ 2021 + 0x7000, /* R155 - AUX4 Readback */ 2022 + 0x0000, /* R156 - USB Voltage Readback */ 2023 + 0x0000, /* R157 - LINE Voltage Readback */ 2024 + 0x0000, /* R158 - BATT Voltage Readback */ 2025 + 0x0000, /* R159 - Chip Temp Readback */ 2026 + 0x0000, /* R160 */ 2027 + 0x0000, /* R161 */ 2028 + 0x0000, /* R162 */ 2029 + 0x0000, /* R163 - Generic Comparator Control */ 2030 + 0x0000, /* R164 - Generic comparator 1 */ 2031 + 0x0000, /* R165 - Generic comparator 2 */ 2032 + 0x0000, /* R166 - Generic comparator 3 */ 2033 + 0x0000, /* R167 - Generic comparator 4 */ 2034 + 0xA00F, /* R168 - Battery Charger Control 1 */ 2035 + 0x0B06, /* R169 - Battery Charger Control 2 */ 2036 + 0x0000, /* R170 - Battery Charger Control 3 */ 2037 + 0x0000, /* R171 */ 2038 + 0x0000, /* R172 - Current Sink Driver A */ 2039 + 0x0000, /* R173 - CSA Flash control */ 2040 + 0x0000, /* R174 */ 2041 + 0x0000, /* R175 */ 2042 + 0x0000, /* R176 - DCDC/LDO requested */ 2043 + 0x032D, /* R177 - DCDC Active options */ 2044 + 0x0000, /* R178 - DCDC Sleep options */ 2045 + 0x0025, /* R179 - Power-check comparator */ 2046 + 0x000E, /* R180 - DCDC1 Control */ 2047 + 0x0400, /* R181 - DCDC1 Timeouts */ 2048 + 0x1006, /* R182 - DCDC1 Low Power */ 2049 + 0x0018, /* R183 - DCDC2 Control */ 2050 + 0x0000, /* R184 - DCDC2 Timeouts */ 2051 + 0x0000, /* R185 */ 2052 + 0x0026, /* R186 - DCDC3 Control */ 2053 + 0x0800, /* R187 - DCDC3 Timeouts */ 2054 + 0x0006, /* R188 - DCDC3 Low Power */ 2055 + 0x0062, /* R189 - DCDC4 Control */ 2056 + 0x1400, /* R190 - DCDC4 Timeouts */ 2057 + 0x0006, /* R191 - DCDC4 Low Power */ 2058 + 0x0008, /* R192 */ 2059 + 0x0000, /* R193 */ 2060 + 0x0000, /* R194 */ 2061 + 0x0026, /* R195 */ 2062 + 0x0400, /* R196 */ 2063 + 0x0006, /* R197 */ 2064 + 0x0000, /* R198 */ 2065 + 0x0003, /* R199 - Limit Switch Control */ 2066 + 0x0006, /* R200 - LDO1 Control */ 2067 + 0x0C00, /* R201 - LDO1 Timeouts */ 2068 + 0x001C, /* R202 - LDO1 Low Power */ 2069 + 0x0016, /* R203 - LDO2 Control */ 2070 + 0x0000, /* R204 - LDO2 Timeouts */ 2071 + 0x001C, /* R205 - LDO2 Low Power */ 2072 + 0x0019, /* R206 - LDO3 Control */ 2073 + 0x0000, /* R207 - LDO3 Timeouts */ 2074 + 0x001C, /* R208 - LDO3 Low Power */ 2075 + 0x001A, /* R209 - LDO4 Control */ 2076 + 0x1000, /* R210 - LDO4 Timeouts */ 2077 + 0x001C, /* R211 - LDO4 Low Power */ 2078 + 0x0000, /* R212 */ 2079 + 0x0000, /* R213 */ 2080 + 0x0000, /* R214 */ 2081 + 0x0000, /* R215 - VCC_FAULT Masks */ 2082 + 0x001F, /* R216 - Main Bandgap Control */ 2083 + 0x0000, /* R217 - OSC Control */ 2084 + 0x9000, /* R218 - RTC Tick Control */ 2085 + 0x0000, /* R219 - Security1 */ 2086 + 0x4000, /* R220 */ 2087 + 0x0000, /* R221 */ 2088 + 0x0000, /* R222 */ 2089 + 0x0000, /* R223 */ 2090 + 0x0000, /* R224 - Signal overrides */ 2091 + 0x0000, /* R225 - DCDC/LDO status */ 2092 + 0x0000, /* R226 - Charger Overides/status */ 2093 + 0x0000, /* R227 - misc overrides */ 2094 + 0x0000, /* R228 - Supply overrides/status 1 */ 2095 + 0x0000, /* R229 - Supply overrides/status 2 */ 2096 + 0xE000, /* R230 - GPIO Pin Status */ 2097 + 0x0000, /* R231 - comparotor overrides */ 2098 + 0x0000, /* R232 */ 2099 + 0x0000, /* R233 - State Machine status */ 2100 + 0x1200, /* R234 - FLL Test 1 */ 2101 + 0x0000, /* R235 */ 2102 + 0x8000, /* R236 */ 2103 + 0x0000, /* R237 */ 2104 + 0x0000, /* R238 */ 2105 + 0x0000, /* R239 */ 2106 + 0x0003, /* R240 */ 2107 + 0x0000, /* R241 */ 2108 + 0x0000, /* R242 */ 2109 + 0x0004, /* R243 */ 2110 + 0x0300, /* R244 */ 2111 + 0x0000, /* R245 */ 2112 + 0x0200, /* R246 */ 2113 + 0x0000, /* R247 */ 2114 + 0x1000, /* R248 - DCDC1 Test Controls */ 2115 + 0x1000, /* R249 */ 2116 + 0x1000, /* R250 - DCDC3 Test Controls */ 2117 + 0x1000, /* R251 - DCDC4 Test Controls */ 2118 + }; 2119 + #endif 2120 + 1077 2121 #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_0 1078 2122 1079 2123 #undef WM8350_HAVE_CONFIG_MODE
+4
include/linux/mfd/wm8350/core.h
··· 589 589 extern const u16 wm8350_mode1_defaults[]; 590 590 extern const u16 wm8350_mode2_defaults[]; 591 591 extern const u16 wm8350_mode3_defaults[]; 592 + extern const u16 wm8351_mode0_defaults[]; 593 + extern const u16 wm8351_mode1_defaults[]; 594 + extern const u16 wm8351_mode2_defaults[]; 595 + extern const u16 wm8351_mode3_defaults[]; 592 596 extern const u16 wm8352_mode0_defaults[]; 593 597 extern const u16 wm8352_mode1_defaults[]; 594 598 extern const u16 wm8352_mode2_defaults[];