|
@@ -1,6 +1,5 @@
|
|
|
-*=============*
|
|
|
-* OPP Library *
|
|
|
-*=============*
|
|
|
+Operating Performance Points (OPP) Library
|
|
|
+==========================================
|
|
|
|
|
|
(C) 2009-2010 Nishanth Menon <nm@ti.com>, Texas Instruments Incorporated
|
|
|
|
|
@@ -16,15 +15,31 @@ Contents
|
|
|
|
|
|
1. Introduction
|
|
|
===============
|
|
|
+1.1 What is an Operating Performance Point (OPP)?
|
|
|
+
|
|
|
Complex SoCs of today consists of a multiple sub-modules working in conjunction.
|
|
|
In an operational system executing varied use cases, not all modules in the SoC
|
|
|
need to function at their highest performing frequency all the time. To
|
|
|
facilitate this, sub-modules in a SoC are grouped into domains, allowing some
|
|
|
-domains to run at lower voltage and frequency while other domains are loaded
|
|
|
-more. The set of discrete tuples consisting of frequency and voltage pairs that
|
|
|
+domains to run at lower voltage and frequency while other domains run at
|
|
|
+voltage/frequency pairs that are higher.
|
|
|
+
|
|
|
+The set of discrete tuples consisting of frequency and voltage pairs that
|
|
|
the device will support per domain are called Operating Performance Points or
|
|
|
OPPs.
|
|
|
|
|
|
+As an example:
|
|
|
+Let us consider an MPU device which supports the following:
|
|
|
+{300MHz at minimum voltage of 1V}, {800MHz at minimum voltage of 1.2V},
|
|
|
+{1GHz at minimum voltage of 1.3V}
|
|
|
+
|
|
|
+We can represent these as three OPPs as the following {Hz, uV} tuples:
|
|
|
+{300000000, 1000000}
|
|
|
+{800000000, 1200000}
|
|
|
+{1000000000, 1300000}
|
|
|
+
|
|
|
+1.2 Operating Performance Points Library
|
|
|
+
|
|
|
OPP library provides a set of helper functions to organize and query the OPP
|
|
|
information. The library is located in drivers/base/power/opp.c and the header
|
|
|
is located in include/linux/opp.h. OPP library can be enabled by enabling
|