From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754249AbdCHUOY (ORCPT ); Wed, 8 Mar 2017 15:14:24 -0500 Received: from mail-pf0-f173.google.com ([209.85.192.173]:33483 "EHLO mail-pf0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752820AbdCHUOW (ORCPT ); Wed, 8 Mar 2017 15:14:22 -0500 From: Matthias Kaehlcke To: Liam Girdwood , Mark Brown , Rob Herring , Mark Rutland Cc: linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Douglas Anderson , Brian Norris , Guenter Roeck , Dmitry Torokhov , Matthias Kaehlcke Subject: [PATCH v2 1/2] regulator: core: add regulator_has_continuous_voltage_range() Date: Wed, 8 Mar 2017 12:02:45 -0800 Message-Id: <20170308200246.126331-1-mka@chromium.org> X-Mailer: git-send-email 2.12.0.246.ga2ecc84866-goog Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The new function allows consumers to determine if a regulator is continuous or discrete, and whether the results of regulator_count_voltages() and regulator_list_voltage() correspond to the regulator itself or its supply. Change-Id: I1198cee9fff60dc747a02860e9652034f4d5da33 Signed-off-by: Matthias Kaehlcke --- Changes in v2: - Added regulator_has_continuous_voltage_range() drivers/regulator/core.c | 16 ++++++++++++++++ include/linux/regulator/consumer.h | 1 + 2 files changed, 17 insertions(+) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 53d4fc70dbd0..ce1d02792ef4 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -2552,6 +2552,22 @@ int regulator_count_voltages(struct regulator *regulator) EXPORT_SYMBOL_GPL(regulator_count_voltages); /** + * regulator_has_continuous_voltage_range - is the regulator continuous + * or discrete + * @regulator: regulator source + * + * Returns true if the regulator has a continuous voltage range and + * false for discrete voltage regulators. + */ +int regulator_has_continuous_voltage_range(struct regulator *regulator) +{ + struct regulator_dev *rdev = regulator->rdev; + + return rdev->desc->continuous_voltage_range; +} +EXPORT_SYMBOL_GPL(regulator_has_continuous_voltage_range); + +/** * regulator_list_voltage - enumerate supported voltages * @regulator: regulator source * @selector: identify voltage to list diff --git a/include/linux/regulator/consumer.h b/include/linux/regulator/consumer.h index ea0fffa5faeb..19945b5a702e 100644 --- a/include/linux/regulator/consumer.h +++ b/include/linux/regulator/consumer.h @@ -241,6 +241,7 @@ void regulator_bulk_free(int num_consumers, struct regulator_bulk_data *consumers); int regulator_count_voltages(struct regulator *regulator); +int regulator_has_continuous_voltage_range(struct regulator *regulator); int regulator_list_voltage(struct regulator *regulator, unsigned selector); int regulator_is_supported_voltage(struct regulator *regulator, int min_uV, int max_uV); -- 2.12.0.246.ga2ecc84866-goog