1. 03 5月, 2011 1 次提交
  2. 11 3月, 2011 1 次提交
    • P
      OMAP2+: voltage: reorganize, split code from data · c0718df4
      Paul Walmsley 提交于
      This is a first pass at reorganizing mach-omap2/voltage.c:
      
      - Separate almost all of the data from the code of mach-omap2/voltage.c.
        The code remains in mach-omap2/voltage.c.  The data goes into one
        of several places, depending on what type of data it is:
      
        - Silicon process/validation data: mach-omap2/opp*_data.c
        - VC (Voltage Controller) data: mach-omap2/vc*_data.c
        - VP (Voltage Processor) data: mach-omap2/vp*_data.c
        - Voltage domain data: mach-omap2/voltagedomains*_data.c
      
        The ultimate goal is for all this data to be autogenerated, the same
        way we autogenerate the rest of our data.
      
      - Separate VC and VP common data from VDD-specific VC and VP data.
      
      - Separate common voltage.c code from SoC-specific code; reuse common code.
      
      - Reorganize structures to avoid unnecessary memory loss due to unpacked
        fields.
      
      There is much left to be done.  VC code and VP code should be separated out
      into vc*.c and vp*.c files.  Many fields in the existing structures are
      superfluous, and should be removed.  Some code in voltage.c seems to be
      duplicated; that code should be moved into functions of its own.  Proper
      voltage domain code should be created, as was done with the powerdomain
      and clockdomains, and powerdomains should reference voltagedomains.
      
      Thanks to Shweta Gulati <shweta.gulati@ti.com> for comments.  Thanks
      to Rajendra Nayak <rnayak@ti.com> for finding and fixing some bugs
      that prevented OMAP4 from booting:
      
         https://patchwork.kernel.org/patch/587311/
      
      His patch has been folded into this one to avoid breaking OMAP4
      between patches.  Thanks also to Kevin Hilman <khilman@ti.com> for
      finding and fixing a compile problem when !CONFIG_PM:
      
         http://www.spinics.net/lists/arm-kernel/msg118067.html
      
      His patch has also been folded into this one to avoid breaking
      !CONFIG_PM builds.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Shweta Gulati <shweta.gulati@ti.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Kevin Hilman <khilman@ti.com>
      c0718df4
  3. 09 3月, 2011 2 次提交
  4. 08 3月, 2011 2 次提交
  5. 01 3月, 2011 1 次提交
  6. 26 2月, 2011 3 次提交
    • R
      OMAP4: DPLL: Add dpll api to control GATE_CTRL · 97f67898
      Rajendra Nayak 提交于
      On OMAP4, the dpll post divider outputs (MX outputs)
      along with clockout_x2 output provide a way to allow/deny
      hardware level autogating.
      Allowing autoidle would mean that the hw would autogate
      this clock when there is no dependency for it.
      Denying idle would mean that this clock output will be
      forced to stay enabled.
      
      Add dpll api's to read/allow/deny idle control
      for these dpll mx postdividers.
      
      NOTE: The gatectrl bit set to 0 allows gatectrl,
      and the bit set to 1 denies gatectrl.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: moved OMAP4-specific DPLL control code to
       mach-omap2/dpll44xx.c; added some documentation for CLOCK_CLKOUTX2]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      97f67898
    • R
      OMAP: clockdomain: Arch specific funcs for sleep/wakeup of clkdm · 68b921ad
      Rajendra Nayak 提交于
      Define the following architecture specific funtions for omap2/3/4
      .clkdm_sleep
      .clkdm_wakeup
      
      Convert the platform-independent framework to call these functions.
      Also rename the api's by removing the omap2_ preamble.
      Hence call omap2_clkdm_wakeup as clkdm_wakeup and
      omap2_clkdm_sleep as clkdm_sleep.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: fixed omap3_clkdm_clear_all_sleepdeps() and
       omap2_clkdm_clear_all_wkdeps() to test against the correct
       loop termination condition; thanks to Kevin Hilman for finding and
       helping fix]
      Cc: Kevin Hilman <khilman@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      68b921ad
    • R
      OMAP: clockdomain: Arch specific funcs to handle deps · 4aef7a2a
      Rajendra Nayak 提交于
      Define the following architecture specific funtions for omap2/3
      .clkdm_add_wkdep
      .clkdm_del_wkdep
      .clkdm_read_wkdep
      .clkdm_clear_all_wkdeps
      .clkdm_add_sleepdep
      .clkdm_del_sleepdep
      .clkdm_read_sleepdep
      .clkdm_clear_all_sleepdeps
      
      Convert the platform-independent framework to call these functions.
      With this also move the clkdm lookups for all wkdep_srcs and
      sleepdep_srcs at clkdm_init.
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      [paul@pwsan.com: fixed loop termination conditions in omap*_clkdm_clear_all_*();
       thanks to Kevin Hilman for finding and helping fix those bugs; also
       avoid re-resolving clockdomains during init; abstracted out clkdm_dep walk]
      Cc: Kevin Hilman <khilman@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      4aef7a2a
  7. 23 2月, 2011 1 次提交
  8. 18 2月, 2011 1 次提交
  9. 17 2月, 2011 2 次提交
  10. 28 1月, 2011 1 次提交
  11. 10 1月, 2011 1 次提交
  12. 23 12月, 2010 6 次提交
    • T
      OMAP4: Adding voltage driver support · bd38107b
      Thara Gopinath 提交于
      OMAP4 has three scalable voltage domains vdd_mpu, vdd_iva
      and vdd_core. This patch adds the voltage tables and other
      configurable voltage processor and voltage controller
      settings to control these three scalable domains in OMAP4.
      Signed-off-by: NThara Gopinath <thara@ti.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      bd38107b
    • T
      OMAP3: PM: Register TWL4030 pmic info with the voltage driver. · fbc319f6
      Thara Gopinath 提交于
      This patch registers the TWL4030 PMIC specific informtion
      with the voltage driver. Failing this patch the voltage driver
      is unware of the formula to use for vsel to voltage and vice versa
      conversion and lot of other PMIC dependent parameters.
      
      This file is based on the arch/arm/plat-omap opp_twl_tpl.c file
      by Paul Walmsley. The original file is replaced by this file.
      Signed-off-by: NThara Gopinath <thara@ti.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      fbc319f6
    • T
      OMAP3: PM: Adding smartreflex class3 driver · fa765823
      Thara Gopinath 提交于
      Smartreflex Class3 implementation continuously monitors
      silicon performance  and instructs the Voltage Processors
      to increase or decrease the voltage.
      This patch adds smartreflex class 3 driver. This driver hooks
      up with the generic smartreflex driver smartreflex.c to abstract
      out class specific implementations out of the generic driver.
      
      Class3 driver is chosen as the default class driver for smartreflex.
      If any other class driver needs to be implemented, the init of that
      driver should be called from the board file. That way the new class driver
      will over-ride the Class3 driver.
      Signed-off-by: NThara Gopinath <thara@ti.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      fa765823
    • T
      OMAP3: PM: Adding smartreflex device file. · 0c0a5d61
      Thara Gopinath 提交于
      This patch adds support for device registration of various
      smartreflex module present in the system. This patch introduces
      the platform data for smartreflex devices which include
      the efused n-target vaules, a parameter to indicate
      whether smartreflex autocompensation needs to be
      enabled on init or not. An API
      omap_enable_smartreflex_on_init is provided for the
      board files to enable smartreflex autocompensation during
      system boot up.
      Signed-off-by: NThara Gopinath <thara@ti.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      0c0a5d61
    • T
      OMAP3: PM: Adding smartreflex driver support. · 984aa6db
      Thara Gopinath 提交于
      SmartReflex modules do adaptive voltage control for real-time
      voltage adjustments. With Smartreflex the power supply voltage
      can be adapted to the silicon performance(manufacturing process,
      temperature induced performance, age induced performance etc).
      
      There are differnet classes of smartreflex implementation.
      	Class-0: Manufacturing Test Calibration
      	Class-1: Boot-Time Software Calibration
      	Class-2: Continuous Software Calibration
      	Class-3: Continuous Hardware Calibration
      	Class-4: Fully Integrated Power Management
      
      OMAP3 has two smartreflex modules one associated with VDD MPU and the
      other associated with VDD CORE.
      This patch adds support for  smartreflex driver. The driver is designed
      for Class-1 , Class-2 and Class-3 support and is  a platform driver.
      Smartreflex driver can be enabled through a Kconfig option
      "SmartReflex support" under "System type"->"TI OMAP implementations" menu.
      
      Smartreflex autocompensation feature can be enabled runtime through
      a debug fs option.
      To enable smartreflex autocompensation feature
      	echo 1 > /debug/voltage/vdd_<X>/smartreflex/autocomp
      To disable smartreflex autocompensation feature
      	echo 0 > /debug/voltage/vdd_<X>/smartreflex/autocomp
      
      where X can be mpu, core , iva etc.
      
      This patch contains code originally in linux omap pm branch.
      Major contributors to this driver are
      Lesly A M, Rajendra Nayak, Kalle Jokiniemi, Paul Walmsley,
      Nishant Menon, Kevin Hilman.
      Signed-off-by: NThara Gopinath <thara@ti.com>
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      984aa6db
    • T
      OMAP3: PM: Adding voltage driver support. · 2f34ce81
      Thara Gopinath 提交于
      This patch adds voltage driver support for OMAP3. The driver
      allows  configuring the voltage controller and voltage
      processors during init and exports APIs to enable/disable
      voltage processors, scale voltage and reset voltage.
      The driver maintains the global voltage table on a per
      VDD basis which contains the various voltages supported by the
      VDD along with per voltage dependent data like smartreflex
      efuse offset, errminlimit and voltage processor errorgain.
      The driver also allows the voltage parameters dependent on the
      PMIC to be passed from the PMIC file through an API.
      The driver allows scaling of VDD voltages either through
      "vc bypass method" or through "vp forceupdate method" the
      choice being configurable through the board file.
      
      This patch contains code originally in linux omap pm branch
      smartreflex driver.  Major contributors to this driver are
      Lesly A M, Rajendra Nayak, Kalle Jokiniemi, Paul Walmsley,
      Nishant Menon, Kevin Hilman. The separation of PMIC parameters
      into a separate structure which can be populated from
      the PMIC file is based on the work of Lun Chang from Motorola
      in an internal tree.
      Signed-off-by: NThara Gopinath <thara@ti.com>
      [khilman: fixed link error for OMAP2-only defconfig]
      Signed-off-by: NKevin Hilman <khilman@deeprootsystems.com>
      2f34ce81
  13. 22 12月, 2010 10 次提交
  14. 21 12月, 2010 1 次提交
  15. 18 12月, 2010 3 次提交
  16. 10 12月, 2010 1 次提交
  17. 08 12月, 2010 1 次提交
    • V
      OMAP: GPIO: Implement GPIO as a platform device · 77640aab
      Varadarajan, Charulatha 提交于
      Implement GPIO as a platform device.
      
      GPIO APIs are used in machine_init functions. Hence it is
      required to complete GPIO probe before board_init. Therefore
      GPIO device register and driver register are implemented as
      postcore_initcalls.
      
      omap_gpio_init() does nothing now and this function would be
      removed in the next patch as it's usage is spread across most
      of the board files.
      
      Inorder to convert GPIO as platform device, modifications are
      required in clockxxxx_data.c file for OMAP1 so that device names
      can be used to obtain clock instead of getting clocks by
      name/NULL ptr.
      
      Use runtime pm APIs (pm_runtime_put*/pm_runtime_get*) for enabling
      or disabling the clocks, modify sysconfig settings and remove usage
      of clock FW APIs.
      Note 1: Converting GPIO driver to use runtime PM APIs is not done as a
      separate patch because GPIO clock names are different for various OMAPs
      and are different for some of the banks in the same CPU. This would need
      usage of cpu_is checks and bank id checks while using clock FW APIs in
      the gpio driver. Hence while making GPIO a platform driver framework,
      PM runtime APIs are used directly.
      
      Note 2: While implementing GPIO as a platform device, pm runtime APIs
      are used as mentioned above and modification is not done in gpio's
      prepare for idle/ resume after idle functions. This would be done
      in the next patch series and GPIO driver would be made to use dev_pm_ops
      instead of sysdev_class in that series only.
      
      Due to the above, the GPIO driver implicitly relies on
      CM_AUTOIDLE = 1 on its iclk for power management to work, since the
      driver never disables its iclk.
      This would be taken care in the next patch series (see Note 3 below).
      
      Refer to
      http://www.mail-archive.com/linux-omap@vger.kernel.org/msg39112.html
      for more details.
      
      Note 3: only pm_runtime_get_sync is called in gpio's probe() and
      pm_runtime_put* is never called. This is to make the implementation
      similar to the existing GPIO code. Another patch series would be sent
      to correct this.
      
      In OMAP3 and OMAP4 gpio's debounce clocks are optional clocks. They
      are enabled/ disabled whenever required using clock framework APIs
      
      TODO:
      1. Cleanup the GPIO driver. Use function pointers and register
      offest pointers instead of using hardcoded values
      2. Remove all cpu_is_ checks and OMAP specific macros
      3. Remove usage of gpio_bank array so that only
         instance specific information is used in driver code
      4. Rename 'method'/ avoid it's usage
      5. Fix the non-wakeup gpios handling for OMAP2430, OMAP3 & OMAP4
      6. Modify gpio's prepare for idle/ resume after idle functions
         to use runtime pm implentation.
      Signed-off-by: NCharulatha V <charu@ti.com>
      Signed-off-by: NRajendra Nayak <rnayak@ti.com>
      Reviewed-by: NBasak, Partha <p-basak2@ti.com>
      Acked-by: NKevin Hilman <khilman@deeprootsystems.com>
      [tony@atomide.com: updated for bank specific revision and updated boards]
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      77640aab
  18. 01 12月, 2010 2 次提交