[PATCH V3 00/10] PM: Create the AVS(Adaptive Voltage Scaling)

Keerthy j-keerthy at ti.com
Thu Apr 26 14:05:35 EDT 2012


From: J Keerthy <j-keerthy at ti.com>

AVS(Adaptive Voltage Scaling) is a power management technique which
controls the operating voltage of a device in order to optimize (i.e. reduce)
its power consumption. The voltage is adapted depending on static factors
(chip manufacturing process) and dynamic factors (temperature
depending performance).
The TI AVS solution is named Smartreflex. 

To that end, create the AVS driver in drivers/power/avs and
move the OMAP SmartReflex code to the new directory. The
class driver is still retained in the mach-omap2 directory.

In preparation to the move of the OMAP code the following changes have been
made:
- fill in platform data from the device initialization code and pass
 it to the driver,
- create CONFIG_AVS* config options accordingly.

The platform integration data for SmartReflex is passed from hwmod
and the voltage layer to the driver using pdata.

Tested on OMAP4430 SDP using omap2plus_defconfig with the
CONFIG_POWER_AVS* options set. Voltage correction seen
on oscilloscope on all three VDDs.
Based on master branch of the l-o git tree, commit
6bd61e8de0511dd9831eb9d89eea0b4603a10e9e.

Tree: git://gitorious.org/~keerthy05/omap-pm/keerthy-sr.git for_smartreflex_ip_driver_move 

V3: rework after the comments on MLs
 . Retain Efuse offsets check to identify a particular OPP.
 . Introduce a common header file accessible both by arch/arm/mach-omap2/
   and drivers/.
 . Retain the class driver in mach-omap2/ and move IP driver to drivers/power/
   avs since class driver needs voltage layer support.

History:
v2: rework after the comments on MLs
 . Keep the OMAP Kconfig options in the arch dir (Rafael),
 . Move the shared header file from plat-omap to
   include/linux/power/ (Tony)

v1: initial revision

J Keerthy (1):
  ARM: OMAP2+: Voltage: Move the omap_volt_data structure to plat

Jean Pihet (9):
  ARM: OMAP2+: SmartReflex: move the smartreflex header to include/linux/power
  ARM: OMAP3+: SmartReflex: class drivers should use struct omap_sr *
  ARM: OMAP2+: smartreflex: Use the names from hwmod data instead of
    voltage domains.
  ARM: OMAP3: hwmod: rename the smartreflex entries
  ARM: OMAP2+: SmartReflex: introduce a busy loop condition test macro
  ARM: OMAP2+: SmartReflex: Use per-OPP data structure
  ARM: OMAP2+: SmartReflex: Create per-opp debugfs node for errminlimit
  ARM: OMAP2+: SmartReflex: add POWER_AVS Kconfig options
  ARM: OMAP: SmartReflex: Move smartreflex driver to drivers/
 arch/arm/mach-omap2/Makefile                       |    5 +-
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |   12 +-
 arch/arm/mach-omap2/omap_hwmod_44xx_data.c         |    3 +-
 arch/arm/mach-omap2/pm.h                           |    2 +-
 arch/arm/mach-omap2/smartreflex-class3.c           |   29 ++--
 arch/arm/mach-omap2/sr_device.c                    |   39 ++++-
 arch/arm/mach-omap2/voltage.h                      |   21 +---
 arch/arm/plat-omap/Kconfig                         |   31 ++--
 arch/arm/plat-omap/include/plat/voltage.h          |   21 +++-
 drivers/power/Kconfig                              |    2 +
 drivers/power/Makefile                             |    1 +
 drivers/power/avs/Kconfig                          |   12 ++
 drivers/power/avs/Makefile                         |    1 +
 .../mach-omap2 => drivers/power/avs}/smartreflex.c |  161 ++++++++------------
 .../linux/power}/smartreflex.h                     |   74 ++++++++--
 15 files changed, 235 insertions(+), 179 deletions(-)
 create mode 100644 drivers/power/avs/Kconfig
 create mode 100644 drivers/power/avs/Makefile
 rename {arch/arm/mach-omap2 => drivers/power/avs}/smartreflex.c (90%)
 rename {arch/arm/mach-omap2 => include/linux/power}/smartreflex.h (79%)

-- 
1.7.5.4




More information about the linux-arm-kernel mailing list