From 04a55bbb7fa798b855e29ba1a0448f5aaacdc658 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 27 Jun 2023 15:41:08 +0000 Subject: [PATCH] Revert "regulator: Add regmap helper for ramp-delay setting" This reverts commit 12cb97ed85fb8bfc3ef88b66d80b09950d49af91 which is commit fb8fee9efdcf084d9e31ba14cc4734d97e5dd972 upstream. It is part of a series that breaks the Android kernel abi and can be safely reverted at this point in time. If it needs to come back in the future, it can be done so in an abi-safe way. Bug: 161946584 Change-Id: I8b912fb1cd2aa9e0ebfba10aaba93a147a32815b Signed-off-by: Greg Kroah-Hartman --- drivers/regulator/helpers.c | 65 -------------------------------- include/linux/regulator/driver.h | 5 --- 2 files changed, 70 deletions(-) diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c index a356f84b1285..e4bb09bbd3fa 100644 --- a/drivers/regulator/helpers.c +++ b/drivers/regulator/helpers.c @@ -879,68 +879,3 @@ bool regulator_is_equal(struct regulator *reg1, struct regulator *reg2) return reg1->rdev == reg2->rdev; } EXPORT_SYMBOL_GPL(regulator_is_equal); - -static int find_closest_bigger(unsigned int target, const unsigned int *table, - unsigned int num_sel, unsigned int *sel) -{ - unsigned int s, tmp, max, maxsel = 0; - bool found = false; - - max = table[0]; - - for (s = 0; s < num_sel; s++) { - if (table[s] > max) { - max = table[s]; - maxsel = s; - } - if (table[s] >= target) { - if (!found || table[s] - target < tmp - target) { - tmp = table[s]; - *sel = s; - found = true; - if (tmp == target) - break; - } - } - } - - if (!found) { - *sel = maxsel; - return -EINVAL; - } - - return 0; -} - -/** - * regulator_set_ramp_delay_regmap - set_ramp_delay() helper - * - * @rdev: regulator to operate on - * - * Regulators that use regmap for their register I/O can set the ramp_reg - * and ramp_mask fields in their descriptor and then use this as their - * set_ramp_delay operation, saving some code. - */ -int regulator_set_ramp_delay_regmap(struct regulator_dev *rdev, int ramp_delay) -{ - int ret; - unsigned int sel; - - if (!rdev->desc->n_ramp_values) - return -EINVAL; - - ret = find_closest_bigger(ramp_delay, rdev->desc->ramp_delay_table, - rdev->desc->n_ramp_values, &sel); - - if (ret) { - dev_warn(rdev_get_dev(rdev), - "Can't set ramp-delay %u, setting %u\n", ramp_delay, - rdev->desc->ramp_delay_table[sel]); - } - - sel <<= ffs(rdev->desc->ramp_mask) - 1; - - return regmap_update_bits(rdev->regmap, rdev->desc->ramp_reg, - rdev->desc->ramp_mask, sel); -} -EXPORT_SYMBOL_GPL(regulator_set_ramp_delay_regmap); diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index 63a91049068d..4d73dc580d75 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h @@ -376,10 +376,6 @@ struct regulator_desc { unsigned int pull_down_reg; unsigned int pull_down_mask; unsigned int pull_down_val_on; - unsigned int ramp_reg; - unsigned int ramp_mask; - const unsigned int *ramp_delay_table; - unsigned int n_ramp_values; unsigned int enable_time; @@ -546,7 +542,6 @@ int regulator_set_current_limit_regmap(struct regulator_dev *rdev, int min_uA, int max_uA); int regulator_get_current_limit_regmap(struct regulator_dev *rdev); void *regulator_get_init_drvdata(struct regulator_init_data *reg_init_data); -int regulator_set_ramp_delay_regmap(struct regulator_dev *rdev, int ramp_delay); /* * Helper functions intended to be used by regulator drivers prior registering