Shared regulator usage

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mark,

We seem to having a small design problem in our drivers with the usage of
the regulator framework. Kindly let us know your thoughts on this.

On our SoC's, the regulator powering the core can be controlled by two
consumers, the cpu freq. driver and a core power reduction driver (two
independent drivers). Each of them can independently control the core
voltage across 0.9v to 1.5v. The problem arises when each of them executes
a set_voltage call with their recommended voltage. The framework's
regulator_check_consumers() check does not allow both these drivers to set
their required voltage.

For example:
Consumer (A) cpu-freq sets the voltage range to {1.275v, 1.375v}. The
regulator framework eventually sets the regulator to 1.275v. Consumer (B)
recommends a lower the voltage say (1.25v) and executes set_volatge on
{1.25v, 1.25v}. This is where regulator_check_consumers() fails as it does
not meet the (A)'s constraint.

We are looking for the right way to handle such a situation using
regulator framework, considering this to be a valid usecase. One way we
could think of is having one of the driver (say cpu-freq) register a
virtual regulator device and have the other driver be its consumer. This
way all the regulator calls to the physical hardware will be routed though
one primary driver which can take care of the adjustments. The problem
with such approach would be scalability for a new consumer, i.e. adding
another consumer for the primary driver would present a similar problem as
the original one.

Please let us know if there's a good way of handling such a situation
using the regulator framework.

Thank you,
Anirudh

QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
of Code Aurora Forum, hosted by The Linux Foundation.
--


--
To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux