From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Collins Subject: regulator_set_voltage and regulator_set_optimum_mode usage question Date: Fri, 13 May 2011 09:27:03 -0700 Message-ID: <4DCD5BD7.60803@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: Received: from wolverine01.qualcomm.com ([199.106.114.254]:58145 "EHLO wolverine01.qualcomm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1759041Ab1EMQ1D (ORCPT ); Fri, 13 May 2011 12:27:03 -0400 Sender: linux-arm-msm-owner@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org To: Mark Brown , Liam Girdwood Cc: linux-arm-msm@vger.kernel.org, Anirudh Ghayal Hi Mark and Liam, I was wondering what the best way is to handle a situation in which a consumer driver wishes to be as generic as possible by calling a sequence like this for any regulator that is uses: vreg = regulator_get(dev, "foo_vdd"); regulator_set_voltage(vreg, 1000000, 2000000); regulator_set_optimum_mode(vreg, 50000); regulator_enable(vreg); The problem that arises is that the "regulator" it is supplied by may in fact be a voltage switch. The driver for this switch is set up so that only enable, disable, and is_enabled callbacks are specified. This has the effect of making all regulator_set_voltage and regulator_set_optimum_mode calls return an error. Is there a mechanism in the regulator framework that will allow a consumer to determine if these APIs are available for a given regulator? I considered changing the switch drivers to provide dummy voltage and mode callbacks. The voltage range would then be any positive integer (including 0). However, this results in a problem if one consumer calls only regulator_enable and then a second consumer calls regulator_set_voltage with some range, perhaps [1000000, 2000000], followed by regulator_enable. regulator_check_consumers will fail inside of regulator_set_voltage for the second consumer because the implicit [0, 0] request of the first consumer does not overlap [1000000, 2000000]. What are your thoughts on this situation? Thanks, David Collins -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.