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

regulator: lp8788: Implement list_voltage for lp8788_ldo_voltage_fixed_ops

For fixed voltage, we can just set min_uV and use regulator_list_voltage_linear
for list_voltage callback. Regulator core will call list_voltage(rdev, 0) if
both get_voltage get_voltage_sel are not implemented. Thus we can also remove
lp8788_ldo_fixed_get_voltage() function.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Acked-by: Milo Kim <milo.kim@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

authored by

Axel Lin and committed by
Mark Brown
b5366e5e 80abd60d

+9 -18
+9 -18
drivers/regulator/lp8788-ldo.c
··· 170 170 return ENABLE_TIME_USEC * val; 171 171 } 172 172 173 - static int lp8788_ldo_fixed_get_voltage(struct regulator_dev *rdev) 174 - { 175 - enum lp8788_ldo_id id = rdev_get_id(rdev); 176 - 177 - switch (id) { 178 - case ALDO2 ... ALDO5: 179 - return 2850000; 180 - case DLDO12: 181 - case ALDO8 ... ALDO9: 182 - return 2500000; 183 - case ALDO10: 184 - return 1100000; 185 - default: 186 - return -EINVAL; 187 - } 188 - } 189 - 190 173 static struct regulator_ops lp8788_ldo_voltage_table_ops = { 191 174 .list_voltage = regulator_list_voltage_table, 192 175 .set_voltage_sel = regulator_set_voltage_sel_regmap, ··· 181 198 }; 182 199 183 200 static struct regulator_ops lp8788_ldo_voltage_fixed_ops = { 184 - .get_voltage = lp8788_ldo_fixed_get_voltage, 201 + .list_voltage = regulator_list_voltage_linear, 185 202 .enable = regulator_enable_regmap, 186 203 .disable = regulator_disable_regmap, 187 204 .is_enabled = regulator_is_enabled_regmap, ··· 341 358 .owner = THIS_MODULE, 342 359 .enable_reg = LP8788_EN_LDO_B, 343 360 .enable_mask = LP8788_EN_DLDO12_M, 361 + .min_uV = 2500000, 344 362 }, 345 363 }; 346 364 ··· 368 384 .owner = THIS_MODULE, 369 385 .enable_reg = LP8788_EN_LDO_B, 370 386 .enable_mask = LP8788_EN_ALDO2_M, 387 + .min_uV = 2850000, 371 388 }, 372 389 { 373 390 .name = "aldo3", ··· 379 394 .owner = THIS_MODULE, 380 395 .enable_reg = LP8788_EN_LDO_B, 381 396 .enable_mask = LP8788_EN_ALDO3_M, 397 + .min_uV = 2850000, 382 398 }, 383 399 { 384 400 .name = "aldo4", ··· 390 404 .owner = THIS_MODULE, 391 405 .enable_reg = LP8788_EN_LDO_B, 392 406 .enable_mask = LP8788_EN_ALDO4_M, 407 + .min_uV = 2850000, 393 408 }, 394 409 { 395 410 .name = "aldo5", ··· 401 414 .owner = THIS_MODULE, 402 415 .enable_reg = LP8788_EN_LDO_C, 403 416 .enable_mask = LP8788_EN_ALDO5_M, 417 + .min_uV = 2850000, 404 418 }, 405 419 { 406 420 .name = "aldo6", ··· 438 450 .owner = THIS_MODULE, 439 451 .enable_reg = LP8788_EN_LDO_C, 440 452 .enable_mask = LP8788_EN_ALDO8_M, 453 + .min_uV = 2500000, 441 454 }, 442 455 { 443 456 .name = "aldo9", ··· 449 460 .owner = THIS_MODULE, 450 461 .enable_reg = LP8788_EN_LDO_C, 451 462 .enable_mask = LP8788_EN_ALDO9_M, 463 + .min_uV = 2500000, 452 464 }, 453 465 { 454 466 .name = "aldo10", ··· 460 470 .owner = THIS_MODULE, 461 471 .enable_reg = LP8788_EN_LDO_C, 462 472 .enable_mask = LP8788_EN_ALDO10_M, 473 + .min_uV = 1100000, 463 474 }, 464 475 }; 465 476