Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7fb149ff authored by Jean Pihet's avatar Jean Pihet Committed by Kevin Hilman
Browse files

ARM: OMAP2+: SmartReflex: add POWER_AVS Kconfig options



Add a Kconfig menu (POWER_AVS) and rename the Kconfig options
for the OMAP SmartReflex implementation:
	CONFIG_OMAP_SMARTREFLEX renames to CONFIG_POWER_AVS_OMAP
	CONFIG_OMAP_SMARTREFLEX_CLASS3 renames to CONFIG_POWER_AVS_OMAP_CLASS3

This change makes the SmartReflex implementation ready for the move
to drivers/.

Signed-off-by: default avatarJean Pihet <j-pihet@ti.com>
Signed-off-by: default avatarJ Keerthy <j-keerthy@ti.com>
Reviewed-by: default avatarKevin Hilman <khilman@ti.com>
Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
parent 308d1bd0
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -69,8 +69,9 @@ obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o \
obj-$(CONFIG_ARCH_OMAP4)		+= pm44xx.o omap-mpuss-lowpower.o \
					   cpuidle44xx.o
obj-$(CONFIG_PM_DEBUG)			+= pm-debug.o
obj-$(CONFIG_OMAP_SMARTREFLEX)          += sr_device.o smartreflex.o
obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3)	+= smartreflex-class3.o

obj-$(CONFIG_POWER_AVS_OMAP)		+= sr_device.o smartreflex.o
obj-$(CONFIG_POWER_AVS_OMAP_CLASS3)	+= smartreflex-class3.o

AFLAGS_sleep24xx.o			:=-Wa,-march=armv6
AFLAGS_sleep34xx.o			:=-Wa,-march=armv7-a$(plus_sec)
+1 −1
Original line number Diff line number Diff line
@@ -88,7 +88,7 @@ extern void enable_omap3630_toggle_l2_on_restore(void);
static inline void enable_omap3630_toggle_l2_on_restore(void) { }
#endif		/* defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3) */

#ifdef CONFIG_OMAP_SMARTREFLEX
#ifdef CONFIG_POWER_AVS_OMAP
extern int omap_devinit_smartreflex(void);
extern void omap_enable_smartreflex_on_init(void);
#else
+30 −15
Original line number Diff line number Diff line
@@ -45,37 +45,52 @@ config OMAP_DEBUG_LEDS
	depends on OMAP_DEBUG_DEVICES
	default y if LEDS_CLASS

config OMAP_SMARTREFLEX
	bool "SmartReflex support"
	depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
menuconfig POWER_AVS
	tristate "Adaptive Voltage Scaling class support"
	help
	  Say Y if you want to enable SmartReflex.
	  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

	  SmartReflex can perform continuous dynamic voltage
	  scaling around the nominal operating point voltage
	  according to silicon characteristics and operating
	  conditions. Enabling SmartReflex reduces power
	  consumption.
config POWER_AVS_OMAP
	bool "AVS(Adaptive Voltage Scaling) support for OMAP IP versions 1&2"
	depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
	help
	  Say Y to enable AVS support on OMAP containing the version 1 or
	  version 2 of the SmartReflex IP.
	  V1 is the 65nm version used in OMAP3430.
	  V2 is the update for the 45nm version of the IP used in OMAP3630
	  and OMAP4430

	  Please note, that by default SmartReflex is only
	  initialized. To enable the automatic voltage
	  initialized and not enabled. To enable the automatic voltage
	  compensation for vdd mpu and vdd core from user space,
	  user must write 1 to
		/debug/voltage/vdd_<X>/smartreflex/autocomp,
	  where X is mpu or core for OMAP3.
		/debug/smartreflex/sr_<X>/autocomp,
	  where X is mpu_iva or core for OMAP3.
	  Optionally autocompensation can be enabled in the kernel
	  by default during system init via the enable_on_init flag
	  which an be passed as platform data to the smartreflex driver.

config OMAP_SMARTREFLEX_CLASS3
config POWER_AVS_OMAP_CLASS3
	bool "Class 3 mode of Smartreflex Implementation"
	depends on OMAP_SMARTREFLEX && TWL4030_CORE
	depends on POWER_AVS_OMAP && TWL4030_CORE
	help
	  Say Y to enable Class 3 implementation of Smartreflex

	  Class 3 implementation of Smartreflex employs continuous hardware
	  voltage calibration.

endif # POWER_AVS

config OMAP_RESET_CLOCKS
	bool "Reset unused clocks during boot"
	depends on ARCH_OMAP
+1 −1
Original line number Diff line number Diff line
@@ -207,7 +207,7 @@ struct omap_smartreflex_dev_attr {
	const char      *sensor_voltdm_name;
};

#ifdef CONFIG_OMAP_SMARTREFLEX
#ifdef CONFIG_POWER_AVS_OMAP
/*
 * The smart reflex driver supports CLASS1 CLASS2 and CLASS3 SR.
 * The smartreflex class driver should pass the class type.