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

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'regulator-5.4' into regulator-5.5

+98 -104
+13
drivers/regulator/core.c
··· 5053 5053 5054 5054 init_data = regulator_of_get_init_data(dev, regulator_desc, config, 5055 5055 &rdev->dev.of_node); 5056 + 5057 + /* 5058 + * Sometimes not all resources are probed already so we need to take 5059 + * that into account. This happens most the time if the ena_gpiod comes 5060 + * from a gpio extender or something else. 5061 + */ 5062 + if (PTR_ERR(init_data) == -EPROBE_DEFER) { 5063 + kfree(config); 5064 + kfree(rdev); 5065 + ret = -EPROBE_DEFER; 5066 + goto rinse; 5067 + } 5068 + 5056 5069 /* 5057 5070 * We need to keep track of any GPIO descriptor coming from the 5058 5071 * device tree until we have handled it over to the core. If the
+47 -71
drivers/regulator/da9062-regulator.c
··· 136 136 static unsigned da9062_buck_get_mode(struct regulator_dev *rdev) 137 137 { 138 138 struct da9062_regulator *regl = rdev_get_drvdata(rdev); 139 - struct regmap_field *field; 140 139 unsigned int val, mode = 0; 141 140 int ret; 142 141 ··· 157 158 return REGULATOR_MODE_NORMAL; 158 159 } 159 160 160 - /* Detect current regulator state */ 161 - ret = regmap_field_read(regl->suspend, &val); 162 - if (ret < 0) 163 - return 0; 164 - 165 - /* Read regulator mode from proper register, depending on state */ 166 - if (val) 167 - field = regl->suspend_sleep; 168 - else 169 - field = regl->sleep; 170 - 171 - ret = regmap_field_read(field, &val); 161 + ret = regmap_field_read(regl->sleep, &val); 172 162 if (ret < 0) 173 163 return 0; 174 164 ··· 196 208 static unsigned da9062_ldo_get_mode(struct regulator_dev *rdev) 197 209 { 198 210 struct da9062_regulator *regl = rdev_get_drvdata(rdev); 199 - struct regmap_field *field; 200 211 int ret, val; 201 212 202 - /* Detect current regulator state */ 203 - ret = regmap_field_read(regl->suspend, &val); 204 - if (ret < 0) 205 - return 0; 206 - 207 - /* Read regulator mode from proper register, depending on state */ 208 - if (val) 209 - field = regl->suspend_sleep; 210 - else 211 - field = regl->sleep; 212 - 213 - ret = regmap_field_read(field, &val); 213 + ret = regmap_field_read(regl->sleep, &val); 214 214 if (ret < 0) 215 215 return 0; 216 216 ··· 384 408 __builtin_ffs((int)DA9062AA_BUCK1_MODE_MASK) - 1, 385 409 sizeof(unsigned int) * 8 - 386 410 __builtin_clz((DA9062AA_BUCK1_MODE_MASK)) - 1), 387 - .suspend = REG_FIELD(DA9062AA_DVC_1, 388 - __builtin_ffs((int)DA9062AA_VBUCK1_SEL_MASK) - 1, 411 + .suspend = REG_FIELD(DA9062AA_BUCK1_CONT, 412 + __builtin_ffs((int)DA9062AA_BUCK1_CONF_MASK) - 1, 389 413 sizeof(unsigned int) * 8 - 390 - __builtin_clz((DA9062AA_VBUCK1_SEL_MASK)) - 1), 414 + __builtin_clz(DA9062AA_BUCK1_CONF_MASK) - 1), 391 415 }, 392 416 { 393 417 .desc.id = DA9061_ID_BUCK2, ··· 420 444 __builtin_ffs((int)DA9062AA_BUCK3_MODE_MASK) - 1, 421 445 sizeof(unsigned int) * 8 - 422 446 __builtin_clz((DA9062AA_BUCK3_MODE_MASK)) - 1), 423 - .suspend = REG_FIELD(DA9062AA_DVC_1, 424 - __builtin_ffs((int)DA9062AA_VBUCK3_SEL_MASK) - 1, 447 + .suspend = REG_FIELD(DA9062AA_BUCK3_CONT, 448 + __builtin_ffs((int)DA9062AA_BUCK3_CONF_MASK) - 1, 425 449 sizeof(unsigned int) * 8 - 426 - __builtin_clz((DA9062AA_VBUCK3_SEL_MASK)) - 1), 450 + __builtin_clz(DA9062AA_BUCK3_CONF_MASK) - 1), 427 451 }, 428 452 { 429 453 .desc.id = DA9061_ID_BUCK3, ··· 456 480 __builtin_ffs((int)DA9062AA_BUCK4_MODE_MASK) - 1, 457 481 sizeof(unsigned int) * 8 - 458 482 __builtin_clz((DA9062AA_BUCK4_MODE_MASK)) - 1), 459 - .suspend = REG_FIELD(DA9062AA_DVC_1, 460 - __builtin_ffs((int)DA9062AA_VBUCK4_SEL_MASK) - 1, 483 + .suspend = REG_FIELD(DA9062AA_BUCK4_CONT, 484 + __builtin_ffs((int)DA9062AA_BUCK4_CONF_MASK) - 1, 461 485 sizeof(unsigned int) * 8 - 462 - __builtin_clz((DA9062AA_VBUCK4_SEL_MASK)) - 1), 486 + __builtin_clz(DA9062AA_BUCK4_CONF_MASK) - 1), 463 487 }, 464 488 { 465 489 .desc.id = DA9061_ID_LDO1, ··· 485 509 sizeof(unsigned int) * 8 - 486 510 __builtin_clz((DA9062AA_LDO1_SL_B_MASK)) - 1), 487 511 .suspend_vsel_reg = DA9062AA_VLDO1_B, 488 - .suspend = REG_FIELD(DA9062AA_DVC_1, 489 - __builtin_ffs((int)DA9062AA_VLDO1_SEL_MASK) - 1, 512 + .suspend = REG_FIELD(DA9062AA_LDO1_CONT, 513 + __builtin_ffs((int)DA9062AA_LDO1_CONF_MASK) - 1, 490 514 sizeof(unsigned int) * 8 - 491 - __builtin_clz((DA9062AA_VLDO1_SEL_MASK)) - 1), 515 + __builtin_clz(DA9062AA_LDO1_CONF_MASK) - 1), 492 516 .oc_event = REG_FIELD(DA9062AA_STATUS_D, 493 517 __builtin_ffs((int)DA9062AA_LDO1_ILIM_MASK) - 1, 494 518 sizeof(unsigned int) * 8 - ··· 518 542 sizeof(unsigned int) * 8 - 519 543 __builtin_clz((DA9062AA_LDO2_SL_B_MASK)) - 1), 520 544 .suspend_vsel_reg = DA9062AA_VLDO2_B, 521 - .suspend = REG_FIELD(DA9062AA_DVC_1, 522 - __builtin_ffs((int)DA9062AA_VLDO2_SEL_MASK) - 1, 545 + .suspend = REG_FIELD(DA9062AA_LDO2_CONT, 546 + __builtin_ffs((int)DA9062AA_LDO2_CONF_MASK) - 1, 523 547 sizeof(unsigned int) * 8 - 524 - __builtin_clz((DA9062AA_VLDO2_SEL_MASK)) - 1), 548 + __builtin_clz(DA9062AA_LDO2_CONF_MASK) - 1), 525 549 .oc_event = REG_FIELD(DA9062AA_STATUS_D, 526 550 __builtin_ffs((int)DA9062AA_LDO2_ILIM_MASK) - 1, 527 551 sizeof(unsigned int) * 8 - ··· 551 575 sizeof(unsigned int) * 8 - 552 576 __builtin_clz((DA9062AA_LDO3_SL_B_MASK)) - 1), 553 577 .suspend_vsel_reg = DA9062AA_VLDO3_B, 554 - .suspend = REG_FIELD(DA9062AA_DVC_1, 555 - __builtin_ffs((int)DA9062AA_VLDO3_SEL_MASK) - 1, 578 + .suspend = REG_FIELD(DA9062AA_LDO3_CONT, 579 + __builtin_ffs((int)DA9062AA_LDO3_CONF_MASK) - 1, 556 580 sizeof(unsigned int) * 8 - 557 - __builtin_clz((DA9062AA_VLDO3_SEL_MASK)) - 1), 581 + __builtin_clz(DA9062AA_LDO3_CONF_MASK) - 1), 558 582 .oc_event = REG_FIELD(DA9062AA_STATUS_D, 559 583 __builtin_ffs((int)DA9062AA_LDO3_ILIM_MASK) - 1, 560 584 sizeof(unsigned int) * 8 - ··· 584 608 sizeof(unsigned int) * 8 - 585 609 __builtin_clz((DA9062AA_LDO4_SL_B_MASK)) - 1), 586 610 .suspend_vsel_reg = DA9062AA_VLDO4_B, 587 - .suspend = REG_FIELD(DA9062AA_DVC_1, 588 - __builtin_ffs((int)DA9062AA_VLDO4_SEL_MASK) - 1, 611 + .suspend = REG_FIELD(DA9062AA_LDO4_CONT, 612 + __builtin_ffs((int)DA9062AA_LDO4_CONF_MASK) - 1, 589 613 sizeof(unsigned int) * 8 - 590 - __builtin_clz((DA9062AA_VLDO4_SEL_MASK)) - 1), 614 + __builtin_clz(DA9062AA_LDO4_CONF_MASK) - 1), 591 615 .oc_event = REG_FIELD(DA9062AA_STATUS_D, 592 616 __builtin_ffs((int)DA9062AA_LDO4_ILIM_MASK) - 1, 593 617 sizeof(unsigned int) * 8 - ··· 628 652 __builtin_ffs((int)DA9062AA_BUCK1_MODE_MASK) - 1, 629 653 sizeof(unsigned int) * 8 - 630 654 __builtin_clz((DA9062AA_BUCK1_MODE_MASK)) - 1), 631 - .suspend = REG_FIELD(DA9062AA_DVC_1, 632 - __builtin_ffs((int)DA9062AA_VBUCK1_SEL_MASK) - 1, 655 + .suspend = REG_FIELD(DA9062AA_BUCK1_CONT, 656 + __builtin_ffs((int)DA9062AA_BUCK1_CONF_MASK) - 1, 633 657 sizeof(unsigned int) * 8 - 634 - __builtin_clz((DA9062AA_VBUCK1_SEL_MASK)) - 1), 658 + __builtin_clz(DA9062AA_BUCK1_CONF_MASK) - 1), 635 659 }, 636 660 { 637 661 .desc.id = DA9062_ID_BUCK2, ··· 664 688 __builtin_ffs((int)DA9062AA_BUCK2_MODE_MASK) - 1, 665 689 sizeof(unsigned int) * 8 - 666 690 __builtin_clz((DA9062AA_BUCK2_MODE_MASK)) - 1), 667 - .suspend = REG_FIELD(DA9062AA_DVC_1, 668 - __builtin_ffs((int)DA9062AA_VBUCK2_SEL_MASK) - 1, 691 + .suspend = REG_FIELD(DA9062AA_BUCK2_CONT, 692 + __builtin_ffs((int)DA9062AA_BUCK2_CONF_MASK) - 1, 669 693 sizeof(unsigned int) * 8 - 670 - __builtin_clz((DA9062AA_VBUCK2_SEL_MASK)) - 1), 694 + __builtin_clz(DA9062AA_BUCK2_CONF_MASK) - 1), 671 695 }, 672 696 { 673 697 .desc.id = DA9062_ID_BUCK3, ··· 700 724 __builtin_ffs((int)DA9062AA_BUCK3_MODE_MASK) - 1, 701 725 sizeof(unsigned int) * 8 - 702 726 __builtin_clz((DA9062AA_BUCK3_MODE_MASK)) - 1), 703 - .suspend = REG_FIELD(DA9062AA_DVC_1, 704 - __builtin_ffs((int)DA9062AA_VBUCK3_SEL_MASK) - 1, 727 + .suspend = REG_FIELD(DA9062AA_BUCK3_CONT, 728 + __builtin_ffs((int)DA9062AA_BUCK3_CONF_MASK) - 1, 705 729 sizeof(unsigned int) * 8 - 706 - __builtin_clz((DA9062AA_VBUCK3_SEL_MASK)) - 1), 730 + __builtin_clz(DA9062AA_BUCK3_CONF_MASK) - 1), 707 731 }, 708 732 { 709 733 .desc.id = DA9062_ID_BUCK4, ··· 736 760 __builtin_ffs((int)DA9062AA_BUCK4_MODE_MASK) - 1, 737 761 sizeof(unsigned int) * 8 - 738 762 __builtin_clz((DA9062AA_BUCK4_MODE_MASK)) - 1), 739 - .suspend = REG_FIELD(DA9062AA_DVC_1, 740 - __builtin_ffs((int)DA9062AA_VBUCK4_SEL_MASK) - 1, 763 + .suspend = REG_FIELD(DA9062AA_BUCK4_CONT, 764 + __builtin_ffs((int)DA9062AA_BUCK4_CONF_MASK) - 1, 741 765 sizeof(unsigned int) * 8 - 742 - __builtin_clz((DA9062AA_VBUCK4_SEL_MASK)) - 1), 766 + __builtin_clz(DA9062AA_BUCK4_CONF_MASK) - 1), 743 767 }, 744 768 { 745 769 .desc.id = DA9062_ID_LDO1, ··· 765 789 sizeof(unsigned int) * 8 - 766 790 __builtin_clz((DA9062AA_LDO1_SL_B_MASK)) - 1), 767 791 .suspend_vsel_reg = DA9062AA_VLDO1_B, 768 - .suspend = REG_FIELD(DA9062AA_DVC_1, 769 - __builtin_ffs((int)DA9062AA_VLDO1_SEL_MASK) - 1, 792 + .suspend = REG_FIELD(DA9062AA_LDO1_CONT, 793 + __builtin_ffs((int)DA9062AA_LDO1_CONF_MASK) - 1, 770 794 sizeof(unsigned int) * 8 - 771 - __builtin_clz((DA9062AA_VLDO1_SEL_MASK)) - 1), 795 + __builtin_clz(DA9062AA_LDO1_CONF_MASK) - 1), 772 796 .oc_event = REG_FIELD(DA9062AA_STATUS_D, 773 797 __builtin_ffs((int)DA9062AA_LDO1_ILIM_MASK) - 1, 774 798 sizeof(unsigned int) * 8 - ··· 798 822 sizeof(unsigned int) * 8 - 799 823 __builtin_clz((DA9062AA_LDO2_SL_B_MASK)) - 1), 800 824 .suspend_vsel_reg = DA9062AA_VLDO2_B, 801 - .suspend = REG_FIELD(DA9062AA_DVC_1, 802 - __builtin_ffs((int)DA9062AA_VLDO2_SEL_MASK) - 1, 825 + .suspend = REG_FIELD(DA9062AA_LDO2_CONT, 826 + __builtin_ffs((int)DA9062AA_LDO2_CONF_MASK) - 1, 803 827 sizeof(unsigned int) * 8 - 804 - __builtin_clz((DA9062AA_VLDO2_SEL_MASK)) - 1), 828 + __builtin_clz(DA9062AA_LDO2_CONF_MASK) - 1), 805 829 .oc_event = REG_FIELD(DA9062AA_STATUS_D, 806 830 __builtin_ffs((int)DA9062AA_LDO2_ILIM_MASK) - 1, 807 831 sizeof(unsigned int) * 8 - ··· 831 855 sizeof(unsigned int) * 8 - 832 856 __builtin_clz((DA9062AA_LDO3_SL_B_MASK)) - 1), 833 857 .suspend_vsel_reg = DA9062AA_VLDO3_B, 834 - .suspend = REG_FIELD(DA9062AA_DVC_1, 835 - __builtin_ffs((int)DA9062AA_VLDO3_SEL_MASK) - 1, 858 + .suspend = REG_FIELD(DA9062AA_LDO3_CONT, 859 + __builtin_ffs((int)DA9062AA_LDO3_CONF_MASK) - 1, 836 860 sizeof(unsigned int) * 8 - 837 - __builtin_clz((DA9062AA_VLDO3_SEL_MASK)) - 1), 861 + __builtin_clz(DA9062AA_LDO3_CONF_MASK) - 1), 838 862 .oc_event = REG_FIELD(DA9062AA_STATUS_D, 839 863 __builtin_ffs((int)DA9062AA_LDO3_ILIM_MASK) - 1, 840 864 sizeof(unsigned int) * 8 - ··· 864 888 sizeof(unsigned int) * 8 - 865 889 __builtin_clz((DA9062AA_LDO4_SL_B_MASK)) - 1), 866 890 .suspend_vsel_reg = DA9062AA_VLDO4_B, 867 - .suspend = REG_FIELD(DA9062AA_DVC_1, 868 - __builtin_ffs((int)DA9062AA_VLDO4_SEL_MASK) - 1, 891 + .suspend = REG_FIELD(DA9062AA_LDO4_CONT, 892 + __builtin_ffs((int)DA9062AA_LDO4_CONF_MASK) - 1, 869 893 sizeof(unsigned int) * 8 - 870 - __builtin_clz((DA9062AA_VLDO4_SEL_MASK)) - 1), 894 + __builtin_clz(DA9062AA_LDO4_CONF_MASK) - 1), 871 895 .oc_event = REG_FIELD(DA9062AA_STATUS_D, 872 896 __builtin_ffs((int)DA9062AA_LDO4_ILIM_MASK) - 1, 873 897 sizeof(unsigned int) * 8 -
+2 -3
drivers/regulator/fixed.c
··· 144 144 struct device *dev = &pdev->dev; 145 145 struct fixed_voltage_config *config; 146 146 struct fixed_voltage_data *drvdata; 147 - const struct fixed_dev_type *drvtype = 148 - of_match_device(dev->driver->of_match_table, dev)->data; 147 + const struct fixed_dev_type *drvtype = of_device_get_match_data(dev); 149 148 struct regulator_config cfg = { }; 150 149 enum gpiod_flags gflags; 151 150 int ret; ··· 176 177 drvdata->desc.type = REGULATOR_VOLTAGE; 177 178 drvdata->desc.owner = THIS_MODULE; 178 179 179 - if (drvtype->has_enable_clock) { 180 + if (drvtype && drvtype->has_enable_clock) { 180 181 drvdata->desc.ops = &fixed_voltage_clkenabled_ops; 181 182 182 183 drvdata->enable_clock = devm_clk_get(dev, NULL);
+1
drivers/regulator/lochnagar-regulator.c
··· 210 210 211 211 .enable_time = 3000, 212 212 .ramp_delay = 1000, 213 + .off_on_delay = 15000, 213 214 214 215 .owner = THIS_MODULE, 215 216 },
+18 -9
drivers/regulator/of_regulator.c
··· 231 231 "regulator-off-in-suspend")) 232 232 suspend_state->enabled = DISABLE_IN_SUSPEND; 233 233 234 - if (!of_property_read_u32(np, "regulator-suspend-min-microvolt", 235 - &pval)) 234 + if (!of_property_read_u32(suspend_np, 235 + "regulator-suspend-min-microvolt", &pval)) 236 236 suspend_state->min_uV = pval; 237 237 238 - if (!of_property_read_u32(np, "regulator-suspend-max-microvolt", 239 - &pval)) 238 + if (!of_property_read_u32(suspend_np, 239 + "regulator-suspend-max-microvolt", &pval)) 240 240 suspend_state->max_uV = pval; 241 241 242 242 if (!of_property_read_u32(suspend_np, ··· 445 445 goto error; 446 446 } 447 447 448 - if (desc->of_parse_cb && desc->of_parse_cb(child, desc, config)) { 449 - dev_err(dev, 450 - "driver callback failed to parse DT for regulator %pOFn\n", 451 - child); 452 - goto error; 448 + if (desc->of_parse_cb) { 449 + int ret; 450 + 451 + ret = desc->of_parse_cb(child, desc, config); 452 + if (ret) { 453 + if (ret == -EPROBE_DEFER) { 454 + of_node_put(child); 455 + return ERR_PTR(-EPROBE_DEFER); 456 + } 457 + dev_err(dev, 458 + "driver callback failed to parse DT for regulator %pOFn\n", 459 + child); 460 + goto error; 461 + } 453 462 } 454 463 455 464 *node = child;
+7 -1
drivers/regulator/pfuze100-regulator.c
··· 788 788 789 789 /* SW2~SW4 high bit check and modify the voltage value table */ 790 790 if (i >= sw_check_start && i <= sw_check_end) { 791 - regmap_read(pfuze_chip->regmap, desc->vsel_reg, &val); 791 + ret = regmap_read(pfuze_chip->regmap, 792 + desc->vsel_reg, &val); 793 + if (ret) { 794 + dev_err(&client->dev, "Fails to read from the register.\n"); 795 + return ret; 796 + } 797 + 792 798 if (val & sw_hi) { 793 799 if (pfuze_chip->chip_id == PFUZE3000 || 794 800 pfuze_chip->chip_id == PFUZE3001) {
+2 -2
drivers/regulator/qcom-rpmh-regulator.c
··· 735 735 static const struct rpmh_vreg_hw_data pmic5_bob = { 736 736 .regulator_type = VRM, 737 737 .ops = &rpmh_regulator_vrm_bypass_ops, 738 - .voltage_range = REGULATOR_LINEAR_RANGE(300000, 0, 135, 32000), 739 - .n_voltages = 136, 738 + .voltage_range = REGULATOR_LINEAR_RANGE(3000000, 0, 31, 32000), 739 + .n_voltages = 32, 740 740 .pmic_mode_map = pmic_mode_map_pmic5_bob, 741 741 .of_map_mode = rpmh_regulator_pmic4_bob_of_map_mode, 742 742 };
+8 -18
drivers/regulator/ti-abb-regulator.c
··· 173 173 while (timeout++ <= abb->settling_time) { 174 174 status = ti_abb_check_txdone(abb); 175 175 if (status) 176 - break; 176 + return 0; 177 177 178 178 udelay(1); 179 179 } 180 180 181 - if (timeout > abb->settling_time) { 182 - dev_warn_ratelimited(dev, 183 - "%s:TRANXDONE timeout(%duS) int=0x%08x\n", 184 - __func__, timeout, readl(abb->int_base)); 185 - return -ETIMEDOUT; 186 - } 187 - 188 - return 0; 181 + dev_warn_ratelimited(dev, "%s:TRANXDONE timeout(%duS) int=0x%08x\n", 182 + __func__, timeout, readl(abb->int_base)); 183 + return -ETIMEDOUT; 189 184 } 190 185 191 186 /** ··· 200 205 201 206 status = ti_abb_check_txdone(abb); 202 207 if (!status) 203 - break; 208 + return 0; 204 209 205 210 udelay(1); 206 211 } 207 212 208 - if (timeout > abb->settling_time) { 209 - dev_warn_ratelimited(dev, 210 - "%s:TRANXDONE timeout(%duS) int=0x%08x\n", 211 - __func__, timeout, readl(abb->int_base)); 212 - return -ETIMEDOUT; 213 - } 214 - 215 - return 0; 213 + dev_warn_ratelimited(dev, "%s:TRANXDONE timeout(%duS) int=0x%08x\n", 214 + __func__, timeout, readl(abb->int_base)); 215 + return -ETIMEDOUT; 216 216 } 217 217 218 218 /**