[PATCH 10/10] ARM: OMAP: SmartReflex: Move smartreflex driver to drivers/

Rafael J. Wysocki rjw at sisk.pl
Thu Mar 15 17:19:22 EDT 2012


On Thursday, March 15, 2012, jean.pihet at newoldbits.com wrote:
> From: Jean Pihet <j-pihet at ti.com>
> 
> After a clean-up of the interfaces the OMAP IP driver and class
> support code 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 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 at ti.com>
> ---
[...]
> diff --git a/drivers/power/Makefile b/drivers/power/Makefile
> index e429008..e4a8fd2 100644
> --- a/drivers/power/Makefile
> +++ b/drivers/power/Makefile
> @@ -41,3 +41,5 @@ obj-$(CONFIG_CHARGER_GPIO)	+= gpio-charger.o
>  obj-$(CONFIG_CHARGER_MANAGER)	+= charger-manager.o
>  obj-$(CONFIG_CHARGER_MAX8997)	+= max8997_charger.o
>  obj-$(CONFIG_CHARGER_MAX8998)	+= max8998_charger.o
> +
> +obj-$(CONFIG_POWER_AVS)		+= avs/
> diff --git a/drivers/power/avs/Kconfig b/drivers/power/avs/Kconfig
> new file mode 100644
> index 0000000..35b21c4
> --- /dev/null
> +++ b/drivers/power/avs/Kconfig
> @@ -0,0 +1,45 @@
> +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.
> +
> +if POWER_AVS
> +
> +config POWER_AVS_OMAP

I think it would be better to keep this and the next one in the OMAP
arch Kconfig.

> +	bool "AVS support for the 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 and not enabled. To enable the automatic voltage
> +	  compensation for vdd mpu and vdd core from user space,
> +	  user must write 1 to
> +		/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 POWER_AVS_OMAP_CLASS3
> +	bool "Class 3 mode of Smartreflex Implementation"
> +	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

Thanks,
Rafael



More information about the linux-arm-kernel mailing list