提交 7fb149ff 编写于 作者: J Jean Pihet 提交者: Kevin Hilman

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: NJean Pihet <j-pihet@ti.com>
Signed-off-by: NJ Keerthy <j-keerthy@ti.com>
Reviewed-by: NKevin Hilman <khilman@ti.com>
Signed-off-by: NKevin Hilman <khilman@ti.com>
上级 308d1bd0
...@@ -69,8 +69,9 @@ obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o \ ...@@ -69,8 +69,9 @@ obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o \
obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o \ 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_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_sleep24xx.o :=-Wa,-march=armv6
AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a$(plus_sec) AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a$(plus_sec)
......
...@@ -88,7 +88,7 @@ extern void enable_omap3630_toggle_l2_on_restore(void); ...@@ -88,7 +88,7 @@ extern void enable_omap3630_toggle_l2_on_restore(void);
static inline 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) */ #endif /* defined(CONFIG_PM) && defined(CONFIG_ARCH_OMAP3) */
#ifdef CONFIG_OMAP_SMARTREFLEX #ifdef CONFIG_POWER_AVS_OMAP
extern int omap_devinit_smartreflex(void); extern int omap_devinit_smartreflex(void);
extern void omap_enable_smartreflex_on_init(void); extern void omap_enable_smartreflex_on_init(void);
#else #else
......
...@@ -45,37 +45,52 @@ config OMAP_DEBUG_LEDS ...@@ -45,37 +45,52 @@ config OMAP_DEBUG_LEDS
depends on OMAP_DEBUG_DEVICES depends on OMAP_DEBUG_DEVICES
default y if LEDS_CLASS default y if LEDS_CLASS
config OMAP_SMARTREFLEX menuconfig POWER_AVS
bool "SmartReflex support" tristate "Adaptive Voltage Scaling class support"
depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
help 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 config POWER_AVS_OMAP
scaling around the nominal operating point voltage bool "AVS(Adaptive Voltage Scaling) support for OMAP IP versions 1&2"
according to silicon characteristics and operating depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
conditions. Enabling SmartReflex reduces power help
consumption. 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 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, compensation for vdd mpu and vdd core from user space,
user must write 1 to user must write 1 to
/debug/voltage/vdd_<X>/smartreflex/autocomp, /debug/smartreflex/sr_<X>/autocomp,
where X is mpu or core for OMAP3. where X is mpu_iva or core for OMAP3.
Optionally autocompensation can be enabled in the kernel Optionally autocompensation can be enabled in the kernel
by default during system init via the enable_on_init flag by default during system init via the enable_on_init flag
which an be passed as platform data to the smartreflex driver. 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" bool "Class 3 mode of Smartreflex Implementation"
depends on OMAP_SMARTREFLEX && TWL4030_CORE depends on POWER_AVS_OMAP && TWL4030_CORE
help help
Say Y to enable Class 3 implementation of Smartreflex Say Y to enable Class 3 implementation of Smartreflex
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
......
...@@ -207,7 +207,7 @@ struct omap_smartreflex_dev_attr { ...@@ -207,7 +207,7 @@ struct omap_smartreflex_dev_attr {
const char *sensor_voltdm_name; 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 smart reflex driver supports CLASS1 CLASS2 and CLASS3 SR.
* The smartreflex class driver should pass the class type. * The smartreflex class driver should pass the class type.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册