From 7213e8e1f52dd1479952636b01bc3b6cdff8e55b Mon Sep 17 00:00:00 2001 From: Bartosz Bilas Date: Tue, 2 Jan 2024 13:23:03 +0100 Subject: [PATCH] drivers: regulator: max20335: allow current limit operations only for BUCKs LDOs don't have such possibility so add the extra checks. Signed-off-by: Bartosz Bilas --- drivers/regulator/regulator_max20335.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/regulator/regulator_max20335.c b/drivers/regulator/regulator_max20335.c index 699edd8162ff..b94c0e0bb98d 100644 --- a/drivers/regulator/regulator_max20335.c +++ b/drivers/regulator/regulator_max20335.c @@ -224,6 +224,11 @@ static unsigned int regulator_max20335_count_current_limits(const struct device { const struct regulator_max20335_config *config = dev->config; + if (config->source != MAX20335_PMIC_SOURCE_BUCK1 && + config->source != MAX20335_PMIC_SOURCE_BUCK2) { + return -ENOTSUP; + } + return linear_range_values_count(config->desc->ua_range); } @@ -232,6 +237,11 @@ static int regulator_max20335_list_current_limit(const struct device *dev, unsig { const struct regulator_max20335_config *config = dev->config; + if (config->source != MAX20335_PMIC_SOURCE_BUCK1 && + config->source != MAX20335_PMIC_SOURCE_BUCK2) { + return -ENOTSUP; + } + return linear_range_get_value(config->desc->ua_range, idx, current_ua); } @@ -244,6 +254,11 @@ static int regulator_max20335_set_current_limit(const struct device *dev, uint16_t idx; int ret; + if (config->source != MAX20335_PMIC_SOURCE_BUCK1 && + config->source != MAX20335_PMIC_SOURCE_BUCK2) { + return -ENOTSUP; + } + ret = i2c_reg_read_byte_dt(&config->bus, MAX20335_BUCK12_CSET, &val); if (ret < 0) { return ret;