linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC 0/2] extends OPP for voltage ranges
@ 2014-05-20 14:27 Lucas Stach
  2014-05-20 14:27 ` [RFC 1/2] PM / OPP: allow to use " Lucas Stach
  2014-05-20 14:27 ` [RFC 2/2] PM / OPP: extend DT parsing to allow " Lucas Stach
  0 siblings, 2 replies; 20+ messages in thread
From: Lucas Stach @ 2014-05-20 14:27 UTC (permalink / raw)
  To: linux-pm
  Cc: Greg Kroah-Hartman, Len Brown, Pavel Machek, Rafael J. Wysocki,
	Nishanth Menon

For a lot of components we don't have a strict one to one
relation between the operating frequency of the component
and a single voltage, but rather a range of valid voltages.

Most commonly those are defined as a minimum voltage needed,
a typical (or nominal) voltage chosen by the component vendor
for optimum performance and an absolute maximum voltage that
may not be exceeded without damaging the component.

Currently the OPP framework defines it's single voltage to be
the minimum voltage required for an OPP, although people have
started to implicitly redefine it to be the nominal voltage as
this gives some safety margin in the general case.

Also cpufreq drivers have started to add (or substract) a
abitrary "voltage tolerance" to the supplied values as the
connected regulators are often not able to supply the exact
specified voltage.

Rather than pushing more such workarounds into drivers, we
should enable the OPP framework to handle voltage ranges,
so we don't need any abitrary tolerances in places where we
instead could use well defined values from the component
datasheet.

The follwing 2 patches implement this handling without changing
the current behavior, but I already have a new cpufrew driver
making use the of the extended functionality that I'll post
later if you agree that the general direction of those patches
make sense.

Lucas Stach (2):
  PM / OPP: allow to use voltage ranges
  PM / OPP: extend DT parsing to allow voltage ranges

 Documentation/devicetree/bindings/power/opp.txt | 23 ++++++++++
 arch/arm/mach-omap2/opp.c                       |  3 +-
 arch/arm/mach-omap2/pm.c                        |  2 +-
 arch/arm/mach-vexpress/spc.c                    |  3 +-
 drivers/base/power/opp.c                        | 61 +++++++++++++++++++------
 drivers/cpufreq/cpufreq-cpu0.c                  |  6 +--
 drivers/cpufreq/exynos5440-cpufreq.c            |  2 +-
 drivers/cpufreq/imx6q-cpufreq.c                 |  6 +--
 drivers/cpufreq/omap-cpufreq.c                  |  2 +-
 drivers/devfreq/exynos/exynos4_bus.c            | 12 +++--
 drivers/devfreq/exynos/exynos5_bus.c            |  8 ++--
 include/linux/pm_opp.h                          | 19 ++++++--
 12 files changed, 111 insertions(+), 36 deletions(-)

-- 
2.0.0.rc0


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2014-05-30  0:06 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-20 14:27 [RFC 0/2] extends OPP for voltage ranges Lucas Stach
2014-05-20 14:27 ` [RFC 1/2] PM / OPP: allow to use " Lucas Stach
2014-05-21 13:46   ` Pavel Machek
2014-05-20 14:27 ` [RFC 2/2] PM / OPP: extend DT parsing to allow " Lucas Stach
2014-05-20 14:32   ` Nishanth Menon
2014-05-20 14:41     ` Lucas Stach
2014-05-20 14:53       ` Nishanth Menon
2014-05-20 15:07         ` Lucas Stach
2014-05-20 15:23           ` Nishanth Menon
2014-05-20 15:29             ` Nishanth Menon
2014-05-20 15:48               ` Lucas Stach
2014-05-20 16:09                 ` Nishanth Menon
2014-05-20 16:45                   ` Lucas Stach
2014-05-20 17:02                     ` Nishanth Menon
2014-05-21  9:47                       ` Lucas Stach
2014-05-21 23:33                         ` Mark Brown
2014-05-22 10:24                           ` Lucas Stach
2014-05-22 17:58                             ` Mark Brown
2014-05-30  0:06                               ` Nishanth Menon
2014-05-21 13:49   ` Pavel Machek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).