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

regulator: bd71815: Get rid of struct bd71815_pmic

The content of bd71815_regulators is never changed, no need to duplicate
it, thus remove descs[BD71815_REGULATOR_CNT].
The *regmap, *dev and *rdev[BD71815_REGULATOR_CNT] are not really needed.
The *gps is unused.

Thus the struct bd71815_pmic can be removed.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
Reviewed-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Link: https://lore.kernel.org/r/20210607143002.1600017-1-axel.lin@ingics.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Axel Lin and committed by
Mark Brown
0ea461b4 ba6622c4

+19 -38
+19 -38
drivers/regulator/bd71815-regulator.c
··· 28 28 const struct rohm_dvs_config *dvs; 29 29 }; 30 30 31 - struct bd71815_pmic { 32 - struct bd71815_regulator descs[BD71815_REGULATOR_CNT]; 33 - struct regmap *regmap; 34 - struct device *dev; 35 - struct gpio_descs *gps; 36 - struct regulator_dev *rdev[BD71815_REGULATOR_CNT]; 37 - }; 38 - 39 31 static const int bd7181x_wled_currents[] = { 40 32 10, 20, 30, 50, 70, 100, 200, 300, 500, 700, 1000, 2000, 3000, 4000, 41 33 5000, 6000, 7000, 8000, 9000, 10000, 11000, 12000, 13000, 14000, 15000, ··· 294 302 295 303 static int bd7181x_buck12_get_voltage_sel(struct regulator_dev *rdev) 296 304 { 297 - struct bd71815_pmic *pmic = rdev_get_drvdata(rdev); 298 305 int rid = rdev_get_id(rdev); 299 306 int ret, regh, regl, val; 300 307 301 308 regh = BD71815_REG_BUCK1_VOLT_H + rid * 0x2; 302 309 regl = BD71815_REG_BUCK1_VOLT_L + rid * 0x2; 303 310 304 - ret = regmap_read(pmic->regmap, regh, &val); 311 + ret = regmap_read(rdev->regmap, regh, &val); 305 312 if (ret) 306 313 return ret; 307 314 ··· 312 321 * by BD71815_BUCK_DVSSEL bit 313 322 */ 314 323 if ((!(val & BD71815_BUCK_STBY_DVS)) && (!(val & BD71815_BUCK_DVSSEL))) 315 - ret = regmap_read(pmic->regmap, regl, &val); 324 + ret = regmap_read(rdev->regmap, regl, &val); 316 325 317 326 if (ret) 318 327 return ret; ··· 326 335 static int bd7181x_buck12_set_voltage_sel(struct regulator_dev *rdev, 327 336 unsigned int sel) 328 337 { 329 - struct bd71815_pmic *pmic = rdev_get_drvdata(rdev); 330 338 int rid = rdev_get_id(rdev); 331 339 int ret, val, reg, regh, regl; 332 340 333 341 regh = BD71815_REG_BUCK1_VOLT_H + rid*0x2; 334 342 regl = BD71815_REG_BUCK1_VOLT_L + rid*0x2; 335 343 336 - ret = regmap_read(pmic->regmap, regh, &val); 344 + ret = regmap_read(rdev->regmap, regh, &val); 337 345 if (ret) 338 346 return ret; 339 347 ··· 342 352 * voltages at runtime is not supported by this driver. 343 353 */ 344 354 if (((val & BD71815_BUCK_STBY_DVS))) { 345 - return regmap_update_bits(pmic->regmap, regh, BD71815_VOLT_MASK, 355 + return regmap_update_bits(rdev->regmap, regh, BD71815_VOLT_MASK, 346 356 sel); 347 357 } 348 358 /* Update new voltage to the register which is not selected now */ ··· 351 361 else 352 362 reg = regh; 353 363 354 - ret = regmap_update_bits(pmic->regmap, reg, BD71815_VOLT_MASK, sel); 364 + ret = regmap_update_bits(rdev->regmap, reg, BD71815_VOLT_MASK, sel); 355 365 if (ret) 356 366 return ret; 357 367 358 368 /* Select the other DVS register to be used */ 359 - return regmap_update_bits(pmic->regmap, regh, BD71815_BUCK_DVSSEL, ~val); 369 + return regmap_update_bits(rdev->regmap, regh, BD71815_BUCK_DVSSEL, 370 + ~val); 360 371 } 361 372 362 373 static const struct regulator_ops bd7181x_ldo_regulator_ops = { ··· 515 524 .dvs = (_dvs), \ 516 525 } 517 526 518 - static struct bd71815_regulator bd71815_regulators[] = { 527 + static const struct bd71815_regulator bd71815_regulators[] = { 519 528 BD71815_BUCK12_REG(buck1, BD71815_BUCK1, BD71815_REG_BUCK1_VOLT_H, 520 529 BD71815_REG_BUCK1_MODE, 800000, 2000000, 25000, 521 530 &buck1_dvs), ··· 561 570 562 571 static int bd7181x_probe(struct platform_device *pdev) 563 572 { 564 - struct bd71815_pmic *pmic; 565 573 struct regulator_config config = {}; 566 574 int i, ret; 567 575 struct gpio_desc *ldo4_en; 576 + struct regmap *regmap; 568 577 569 - pmic = devm_kzalloc(&pdev->dev, sizeof(*pmic), GFP_KERNEL); 570 - if (!pmic) 571 - return -ENOMEM; 572 - 573 - memcpy(pmic->descs, bd71815_regulators, sizeof(pmic->descs)); 574 - 575 - pmic->dev = &pdev->dev; 576 - pmic->regmap = dev_get_regmap(pdev->dev.parent, NULL); 577 - if (!pmic->regmap) { 578 - dev_err(pmic->dev, "No parent regmap\n"); 578 + regmap = dev_get_regmap(pdev->dev.parent, NULL); 579 + if (!regmap) { 580 + dev_err(&pdev->dev, "No parent regmap\n"); 579 581 return -ENODEV; 580 582 } 581 - platform_set_drvdata(pdev, pmic); 582 583 ldo4_en = devm_gpiod_get_from_of_node(&pdev->dev, 583 584 pdev->dev.parent->of_node, 584 585 "rohm,vsel-gpios", 0, ··· 584 601 } 585 602 586 603 /* Disable to go to ship-mode */ 587 - ret = regmap_update_bits(pmic->regmap, BD71815_REG_PWRCTRL, 588 - RESTARTEN, 0); 604 + ret = regmap_update_bits(regmap, BD71815_REG_PWRCTRL, RESTARTEN, 0); 589 605 if (ret) 590 606 return ret; 591 607 592 608 config.dev = pdev->dev.parent; 593 - config.regmap = pmic->regmap; 609 + config.regmap = regmap; 594 610 595 611 for (i = 0; i < BD71815_REGULATOR_CNT; i++) { 596 - struct regulator_desc *desc; 612 + const struct regulator_desc *desc; 597 613 struct regulator_dev *rdev; 598 614 599 - desc = &pmic->descs[i].desc; 615 + desc = &bd71815_regulators[i].desc; 616 + 600 617 if (i == BD71815_LDO4) 601 618 config.ena_gpiod = ldo4_en; 602 - 603 - config.driver_data = pmic; 619 + else 620 + config.ena_gpiod = NULL; 604 621 605 622 rdev = devm_regulator_register(&pdev->dev, desc, &config); 606 623 if (IS_ERR(rdev)) { ··· 609 626 desc->name); 610 627 return PTR_ERR(rdev); 611 628 } 612 - config.ena_gpiod = NULL; 613 - pmic->rdev[i] = rdev; 614 629 } 615 630 return 0; 616 631 }