Browse Source

ARM: OMAP: SmartReflex: Move smartreflex driver to drivers/

After a clean-up of the interfaces the OMAP Smartreflex IP driver is now a
generic driver. Move it to drivers/power/avs/.

The build is controlled by the following Kconfig options:
 . CONFIG_POWER_AVS: general knob for Adaptive Voltage Scaling support,
 . CONFIG_POWER_AVS_OMAP: AVS(Adaptive Voltage Scaling)
   support on OMAP containing the version 1 or version 2 of the SmartReflex IP,
 . CONFIG_POWER_AVS_OMAP_CLASS3: Class 3 implementation of Smartreflex.

Signed-off-by: Jean Pihet <j-pihet@ti.com>
Signed-off-by: J Keerthy <j-keerthy@ti.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Reviewed-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
Jean Pihet 13 years ago
parent
commit
21ff63ad13

+ 2 - 2
arch/arm/mach-omap2/Makefile

@@ -70,8 +70,8 @@ obj-$(CONFIG_ARCH_OMAP4)		+= pm44xx.o omap-mpuss-lowpower.o \
 					   cpuidle44xx.o
 					   cpuidle44xx.o
 obj-$(CONFIG_PM_DEBUG)			+= pm-debug.o
 obj-$(CONFIG_PM_DEBUG)			+= pm-debug.o
 
 
-obj-$(CONFIG_POWER_AVS_OMAP)		+= sr_device.o smartreflex.o
-obj-$(CONFIG_POWER_AVS_OMAP_CLASS3)	+= smartreflex-class3.o
+obj-$(CONFIG_POWER_AVS_OMAP)		+= sr_device.o
+obj-$(CONFIG_POWER_AVS_OMAP_CLASS3)    += smartreflex-class3.o
 
 
 AFLAGS_sleep24xx.o			:=-Wa,-march=armv6
 AFLAGS_sleep24xx.o			:=-Wa,-march=armv6
 AFLAGS_sleep34xx.o			:=-Wa,-march=armv7-a$(plus_sec)
 AFLAGS_sleep34xx.o			:=-Wa,-march=armv7-a$(plus_sec)

+ 3 - 19
arch/arm/plat-omap/Kconfig

@@ -45,26 +45,12 @@ config OMAP_DEBUG_LEDS
 	depends on OMAP_DEBUG_DEVICES
 	depends on OMAP_DEBUG_DEVICES
 	default y if LEDS_CLASS
 	default y if LEDS_CLASS
 
 
-menuconfig POWER_AVS
-	tristate "Adaptive Voltage Scaling class support"
-	help
-	  AVS(Adaptive Voltage Scaling) is a power management technique which
-	  finely controls the operating voltage of a device in order to optimize
-	   (i.e. reduce) its power consumption.
-	  At a given operating point the voltage is adapted depending on
-	  static factors (chip manufacturing process) and dynamic factors
-	  (temperature depending performance).
-	  AVS is also called SmartReflex on OMAP devices.
-
-	  Say Y here to enable Adaptive Voltage Scaling class support.
-
-if POWER_AVS
-
 config POWER_AVS_OMAP
 config POWER_AVS_OMAP
 	bool "AVS(Adaptive Voltage Scaling) support for OMAP IP versions 1&2"
 	bool "AVS(Adaptive Voltage Scaling) support for OMAP IP versions 1&2"
-	depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
+	depends on POWER_AVS && (ARCH_OMAP3 || ARCH_OMAP4) && PM
 	help
 	help
-	  Say Y to enable AVS support on OMAP containing the version 1 or
+	  Say Y to enable AVS(Adaptive Voltage Scaling)
+	  support on OMAP containing the version 1 or
 	  version 2 of the SmartReflex IP.
 	  version 2 of the SmartReflex IP.
 	  V1 is the 65nm version used in OMAP3430.
 	  V1 is the 65nm version used in OMAP3430.
 	  V2 is the update for the 45nm version of the IP used in OMAP3630
 	  V2 is the update for the 45nm version of the IP used in OMAP3630
@@ -89,8 +75,6 @@ config POWER_AVS_OMAP_CLASS3
 	  Class 3 implementation of Smartreflex employs continuous hardware
 	  Class 3 implementation of Smartreflex employs continuous hardware
 	  voltage calibration.
 	  voltage calibration.
 
 
-endif # POWER_AVS
-
 config OMAP_RESET_CLOCKS
 config OMAP_RESET_CLOCKS
 	bool "Reset unused clocks during boot"
 	bool "Reset unused clocks during boot"
 	depends on ARCH_OMAP
 	depends on ARCH_OMAP

+ 2 - 0
drivers/power/Kconfig

@@ -308,3 +308,5 @@ config AB8500_BATTERY_THERM_ON_BATCTRL
 	  Say Y to enable battery temperature measurements using
 	  Say Y to enable battery temperature measurements using
 	  thermistor connected on BATCTRL ADC.
 	  thermistor connected on BATCTRL ADC.
 endif # POWER_SUPPLY
 endif # POWER_SUPPLY
+
+source "drivers/power/avs/Kconfig"

+ 1 - 0
drivers/power/Makefile

@@ -43,4 +43,5 @@ obj-$(CONFIG_CHARGER_GPIO)	+= gpio-charger.o
 obj-$(CONFIG_CHARGER_MANAGER)	+= charger-manager.o
 obj-$(CONFIG_CHARGER_MANAGER)	+= charger-manager.o
 obj-$(CONFIG_CHARGER_MAX8997)	+= max8997_charger.o
 obj-$(CONFIG_CHARGER_MAX8997)	+= max8997_charger.o
 obj-$(CONFIG_CHARGER_MAX8998)	+= max8998_charger.o
 obj-$(CONFIG_CHARGER_MAX8998)	+= max8998_charger.o
+obj-$(CONFIG_POWER_AVS)		+= avs/
 obj-$(CONFIG_CHARGER_SMB347)	+= smb347-charger.o
 obj-$(CONFIG_CHARGER_SMB347)	+= smb347-charger.o

+ 12 - 0
drivers/power/avs/Kconfig

@@ -0,0 +1,12 @@
+menuconfig POWER_AVS
+	tristate "Adaptive Voltage Scaling class support"
+	help
+	  AVS is a power management technique which finely controls the
+	  operating voltage of a device in order to optimize (i.e. reduce)
+	  its power consumption.
+	  At a given operating point the voltage is adapted depending on
+	  static factors (chip manufacturing process) and dynamic factors
+	  (temperature depending performance).
+	  AVS is also called SmartReflex on OMAP devices.
+
+	  Say Y here to enable Adaptive Voltage Scaling class support.

+ 1 - 0
drivers/power/avs/Makefile

@@ -0,0 +1 @@
+obj-$(CONFIG_POWER_AVS_OMAP)		+= smartreflex.o

+ 1 - 4
arch/arm/mach-omap2/smartreflex.c → drivers/power/avs/smartreflex.c

@@ -3,7 +3,7 @@
  *
  *
  * Author: Thara Gopinath	<thara@ti.com>
  * Author: Thara Gopinath	<thara@ti.com>
  *
  *
- * Copyright (C) 2010 Texas Instruments, Inc.
+ * Copyright (C) 2012 Texas Instruments, Inc.
  * Thara Gopinath <thara@ti.com>
  * Thara Gopinath <thara@ti.com>
  *
  *
  * Copyright (C) 2008 Nokia Corporation
  * Copyright (C) 2008 Nokia Corporation
@@ -27,9 +27,6 @@
 #include <linux/pm_runtime.h>
 #include <linux/pm_runtime.h>
 #include <linux/power/smartreflex.h>
 #include <linux/power/smartreflex.h>
 
 
-#include "common.h"
-#include "pm.h"
-
 #define SMARTREFLEX_NAME_LEN	16
 #define SMARTREFLEX_NAME_LEN	16
 #define NVALUE_NAME_LEN		40
 #define NVALUE_NAME_LEN		40
 #define SR_DISABLE_TIMEOUT	200
 #define SR_DISABLE_TIMEOUT	200