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: Jean Pihet <j-pihet@ti.com> Signed-off-by: J Keerthy <j-keerthy@ti.com> Reviewed-by: Kevin Hilman <khilman@ti.com> Signed-off-by: Kevin Hilman <khilman@ti.com>
This commit is contained in:
parent
308d1bd0a7
commit
7fb149ffe3
@ -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);
|
|||||||
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
|
|||||||
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"
|
||||||
|
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
|
||||||
|
bool "AVS(Adaptive Voltage Scaling) support for OMAP IP versions 1&2"
|
||||||
depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
|
depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
|
||||||
help
|
help
|
||||||
Say Y if you want to enable SmartReflex.
|
Say Y to enable AVS support on OMAP containing the version 1 or
|
||||||
|
version 2 of the SmartReflex IP.
|
||||||
SmartReflex can perform continuous dynamic voltage
|
V1 is the 65nm version used in OMAP3430.
|
||||||
scaling around the nominal operating point voltage
|
V2 is the update for the 45nm version of the IP used in OMAP3630
|
||||||
according to silicon characteristics and operating
|
and OMAP4430
|
||||||
conditions. Enabling SmartReflex reduces power
|
|
||||||
consumption.
|
|
||||||
|
|
||||||
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 {
|
|||||||
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.
|
||||||
|
Loading…
Reference in New Issue
Block a user