diff options
Diffstat (limited to 'drivers/mfd/wm8350-core.c')
-rw-r--r-- | drivers/mfd/wm8350-core.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/drivers/mfd/wm8350-core.c b/drivers/mfd/wm8350-core.c index 56c363c240a9..e03fe60b55bf 100644 --- a/drivers/mfd/wm8350-core.c +++ b/drivers/mfd/wm8350-core.c | |||
@@ -1169,6 +1169,36 @@ static int wm8350_create_cache(struct wm8350 *wm8350, int type, int mode) | |||
1169 | return -EINVAL; | 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 | case 2: | 1202 | case 2: |
1173 | switch (mode) { | 1203 | switch (mode) { |
1174 | #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_0 | 1204 | #ifdef CONFIG_MFD_WM8352_CONFIG_MODE_0 |
@@ -1327,6 +1357,23 @@ int wm8350_device_init(struct wm8350 *wm8350, int irq, | |||
1327 | } | 1357 | } |
1328 | break; | 1358 | break; |
1329 | 1359 | ||
1360 | case 1: | ||
1361 | wm8350->pmic.max_dcdc = WM8350_DCDC_4; | ||
1362 | wm8350->pmic.max_isink = WM8350_ISINK_A; | ||
1363 | |||
1364 | switch (chip_rev) { | ||
1365 | case 0: | ||
1366 | dev_info(wm8350->dev, "WM8351 Rev A\n"); | ||
1367 | wm8350->power.rev_g_coeff = 1; | ||
1368 | break; | ||
1369 | |||
1370 | default: | ||
1371 | dev_err(wm8350->dev, "Unknown WM8351 CHIP_REV\n"); | ||
1372 | ret = -ENODEV; | ||
1373 | goto err; | ||
1374 | } | ||
1375 | break; | ||
1376 | |||
1330 | case 2: | 1377 | case 2: |
1331 | wm8350->pmic.max_dcdc = WM8350_DCDC_6; | 1378 | wm8350->pmic.max_dcdc = WM8350_DCDC_6; |
1332 | wm8350->pmic.max_isink = WM8350_ISINK_B; | 1379 | wm8350->pmic.max_isink = WM8350_ISINK_B; |