This patch series introduces smartreflex and voltage driver support for OMAP3430 and OMAP3630. SmartReflex modules do adaptive voltage control for real-time voltage adjustments. Originally all the functionalities introduced in this patch were present in arch/arm/mach-omap2/smartreflex.c file in Kevin's pm tree. This patch series does a major rewrite of this file and introduces a separate voltage driver. Major contributors to the original driver are Eduardo Valentin (1): OMAP3: PM: SmartReflex: Fix scheduled while atomic problem Kalle Jokiniemi (1): OMAP3: PM: SmartReflex driver integration Kevin Hilman (2): temp: SR: IO_ADDRESS conversion OMAP: SR: OPP interfaces removed from OMAP PM layer Nishanth Menon (1): omap3: pm: sr: replace get_opp with freq_to_opp Paul Walmsley (2): OMAP SR: use opp_find_opp_by_opp_id() OMAP SR: use OPP API for OPP ID, remove direct access Phil Carmody (2): OMAP3: PM: Don't do unnecessary searches in omap_sr_vdd*_autocomp_store OMAP3: PM: Early exit on invalid parameters Rajendra Nayak (9): OMAP3: SR: Fix init voltage on OPP change OMAP3: SR: Update VDD1/2 voltages at boot OMAP3: SR: Use sysclk for SR CLKLENGTH calc OMAP3: SR: Reset voltage level on SR disable OMAP3: SR: Replace printk's with pr_* calls OMAP3: SR: Remove redundant defines OMAP3: SR: Fix SR driver to check for omap-pm return values OMAP3: PM: Put optimal SMPS stabilization delay OMAP3: SR: Wait for VP idle before a VP disable Roger Quadros (4): OMAP3: PM: Fix Smartreflex when used with PM_NOOP layer OMAP3: PM: Make Smartreflex driver independent of SRF OMAP3: PM: Do not Enable SmartReflex if OPP tables not defined OMAP3: PM: Smartreflex: Fix VDD2 OPP determining logic Romit Dasgupta (1): omap: pm: SR: use enum for OPP types Teerth Reddy (1): OMAP3: SR: Replace SR_PASS/FAIL,SR_TRUE/FALSE Tero Kristo (1): Smartreflex: Avoid unnecessary spam This patch series is against kernel.org 2.6.37-rc3 with the following additional patches applied in the below mentioned order. https://patchwork.kernel.org/patch/394802/ https://patchwork.kernel.org/patch/394792/ https://patchwork.kernel.org/patch/394782/ https://patchwork.kernel.org/patch/396612/ https://patchwork.kernel.org/patch/370931/ The entire series with the dependencies are available at http://dev.omapzoom.org/?p=thara/omap-dvfs.git;a=summary head: pm-sr This patch series has been tested on OMAP3430 SDP with omap2plus_defconfig with the following menuconfig options enabled. System type -> TI OMAP Implementations -> Smartreflex Support System type -> TI OMAP Implementations -> Class 3 mode of Smartreflex Implementation Major Changes in v5 - Rebased to k.org 2.6.37-rc3 - Rebased to Nishant Menon's latest opp patches - Voltage pmic info structure extended to include a vast set of PMIC dependent parameters. - Smartreflex software n-target values support removed from the kernel. Instead n-target values are exposed as debugfs entries which can be written into by the user if needed. - Introduced a new file arch/arm/mach-omap2/omap_twl.c for specifying OMAP and TWL related info for the voltage layer. - Remove default enabling of smartreflex autocompensation during boot on OMAP3430 ES3.1 chips. Instead an API is provided that can be called from board files in case autocompensation needs to be enabled during boot up itself. - Other review comments on v4 Thara Gopinath (10): OMAP3: PM: Adding voltage driver support for OMAP3 OMAP: Introduce voltage domain information in the hwmod structures OMAP3: PM: Adding smartreflex driver support. OMAP3: PM: Adding smartreflex device file. OMAP3: PM: Adding smartreflex hwmod data OMAP3: PM: Adding smartreflex class3 driver OMAP3: PM: Adding T2 enabling of smartreflex support OMAP3: PM: Register TWL4030 pmic info with the voltage driver. OMAP3: PM: Adding debug support to Voltage and Smartreflex drivers OMAP3: PM: Program correct init voltages for VDD1 and VDD2 arch/arm/mach-omap2/Makefile | 7 +- arch/arm/mach-omap2/control.h | 17 + arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 174 ++++ arch/arm/mach-omap2/omap_twl.c | 111 +++ arch/arm/mach-omap2/pm.c | 91 ++ arch/arm/mach-omap2/pm.h | 22 + arch/arm/mach-omap2/smartreflex-class3.c | 59 ++ arch/arm/mach-omap2/smartreflex.c | 1025 ++++++++++++++++++++ arch/arm/mach-omap2/sr_device.c | 131 +++ arch/arm/mach-omap2/voltage.c | 1242 +++++++++++++++++++++++++ arch/arm/plat-omap/Kconfig | 31 + arch/arm/plat-omap/include/plat/omap_hwmod.h | 5 + arch/arm/plat-omap/include/plat/smartreflex.h | 245 +++++ arch/arm/plat-omap/include/plat/voltage.h | 134 +++ drivers/mfd/twl-core.c | 13 + include/linux/i2c/twl.h | 11 + 16 files changed, 3317 insertions(+), 1 deletions(-) create mode 100644 arch/arm/mach-omap2/omap_twl.c create mode 100644 arch/arm/mach-omap2/smartreflex-class3.c create mode 100644 arch/arm/mach-omap2/smartreflex.c create mode 100644 arch/arm/mach-omap2/sr_device.c create mode 100644 arch/arm/mach-omap2/voltage.c create mode 100644 arch/arm/plat-omap/include/plat/smartreflex.h create mode 100644 arch/arm/plat-omap/include/plat/voltage.h -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html