1. 08 11月, 2011 1 次提交
    • T
      ARM: OMAP: HWMOD: Unify DSS resets for OMAPs · 13662dc5
      Tomi Valkeinen 提交于
      This patch adds a custom DSS reset function used on OMAPs from OMAP2
      forward.
      
      The function doesn't actually do a reset, it only waits for the reset to
      complete. The reason for this is that on OMAP4 there is no possibility
      to do a SW reset, and on OMAP2/3 doing a SW reset for dss_core resets
      all the other DSS modules also, thus breaking the HWMOD model where
      every DSS module is handled independently.
      
      This fixes the problem with DSS reset on OMAP4, caused by the fact that
      because there's no SW reset for dss_core on OMAP4, the HWMOD framework
      doesn't try to reset dss_core and thus the DSS clocks were never enabled
      at the same time. This causes causes the HWMOD reset to fail for
      dss_dispc and dss_rfbi.
      
      The common reset function will also allow us to fix another problem in
      the future: before doing a reset we need to disable DSS outputs, which
      are in some cases enabled by the bootloader, as otherwise DSS HW seems
      to get more or less stuck, requiring a power reset to recover.
      Signed-off-by: NTomi Valkeinen <tomi.valkeinen@ti.com>
      [paul@pwsan.com: modified to build arch/arm/mach-omap2/display.o
       unconditionally to avoid an error when !CONFIG_OMAP2_DSS]
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      13662dc5
  2. 22 9月, 2011 1 次提交
  3. 16 9月, 2011 3 次提交
  4. 15 9月, 2011 1 次提交
  5. 09 9月, 2011 1 次提交
    • F
      usb: musb: fix build breakage · b3c3dc22
      Felipe Balbi 提交于
      This patch fixes the compilation brekage which
      commits 208466dc ("usb: otg:OMAP4430: Powerdown
      the internal PHY when USB is disabled") and
      fb91cde4 ("usb: musb: OMAP4430: Power down
      the PHY during board init") introduced when
      building a OMAP2-only kernel.
      
        LD      .tmp_vmlinux1
      arch/arm/mach-omap2/built-in.o:(.data+0x7ce0): undefined reference to
      +`omap4430_phy_init'
      arch/arm/mach-omap2/built-in.o:(.data+0x7ce4): undefined reference to
      +`omap4430_phy_exit'
      arch/arm/mach-omap2/built-in.o:(.data+0x7ce8): undefined reference to
      +`omap4430_phy_power'
      arch/arm/mach-omap2/built-in.o:(.data+0x7cec): undefined reference to
      +`omap4430_phy_set_clk'
      arch/arm/mach-omap2/built-in.o:(.data+0x7cf0): undefined reference to
      +`omap4430_phy_suspend'
      make: *** [.tmp_vmlinux1] Error 1
      Reported-by: NPaul Walmsley <paul@pwsan.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      b3c3dc22
  6. 23 8月, 2011 1 次提交
  7. 10 7月, 2011 2 次提交
  8. 04 7月, 2011 1 次提交
  9. 28 6月, 2011 1 次提交
    • T
      omap2+: Rename timer-gp.c into timer.c to combine timer init functions · 0f622e8c
      Tony Lindgren 提交于
      We can keep everything sys_timer and gptimer.c related code in
      timer.c as the code will be very minimal.
      
      Later on we can also remove timer-mpu.c, as it can be called from
      omap4_timer_init function.
      
      This allows us to get rid of confusing existing files. We currently
      have timer-gp.c, timer-mpu.c, and patches have been posted to add
      dmtimer.c. There's no need to have these multiple files, we can
      put everything into timer.c.
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      0f622e8c
  10. 17 5月, 2011 1 次提交
  11. 03 5月, 2011 1 次提交
  12. 29 4月, 2011 1 次提交
  13. 26 4月, 2011 1 次提交
  14. 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
  15. 09 3月, 2011 2 次提交
  16. 08 3月, 2011 2 次提交
  17. 01 3月, 2011 1 次提交
  18. 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
  19. 23 2月, 2011 1 次提交
  20. 18 2月, 2011 1 次提交
  21. 17 2月, 2011 2 次提交
  22. 28 1月, 2011 1 次提交
  23. 10 1月, 2011 1 次提交
  24. 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
  25. 22 12月, 2010 3 次提交
    • P
      OMAP4: PRCM: add OMAP4-specific accessor/mutator functions · 2ace831f
      Paul Walmsley 提交于
      In some ways, the OMAP4 PRCM register layout is quite different than
      the OMAP2/3 PRCM register layout.  For example, on OMAP2/3, from a
      register layout point of view, all CM instances were located in the CM
      subsystem, and all PRM instances were located in the PRM subsystem.
      OMAP4 changes this.  Now, for example, some CM instances, such as
      WKUP_CM and EMU_CM, are located in the system PRM subsystem.  And a
      "local PRCM" exists for the MPU - this PRCM combines registers that
      would normally appear in both CM and PRM instances, but uses its own
      register layout which matches neither the OMAP2/3 PRCM layout nor the
      OMAP4 PRCM layout.
      
      To try to deal with this, introduce some new functions, omap4_cminst*
      and omap4_prminst*.  The former is to be used when writing to a CM
      instance register (no matter what subsystem or hardware module it
      exists in), and the latter, similarly, with PRM instance registers.
      To determine which "PRCM partition" to write to, the functions take a
      PRCM instance ID argument.  Subsequent patches add these partition IDs
      to the OMAP4 powerdomain and clockdomain definitions.
      
      As far as I can see, there's really no good way to handle these types
      of register access inconsistencies.  This patch seemed like the least
      bad approach.
      
      Moving forward, the long-term goal is to remove all direct PRCM
      register access from the PM code.  PRCM register access should go
      through layers such as the powerdomain and clockdomain code that can
      hide the details of how to interact with the specific hardware
      variant.
      
      While here, rename cm4xxx.c to cm44xx.c to match the naming convention
      of the other OMAP4 PRCM files.
      
      Thanks to Santosh Shilimkar <santosh.shilimkar@ti.com>, Rajendra Nayak
      <rnayak@ti.com>, and Benoît Cousson <b-cousson@ti.com> for some comments.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      Cc: Rajendra Nayak <rnayak@ti.com>
      Cc: Santosh Shilimkar <santosh.shilimkar@ti.com>
      2ace831f
    • P
      OMAP2/3: PRCM: split OMAP2/3-specific PRCM code into OMAP2/3-specific files · 59fb659b
      Paul Walmsley 提交于
      In preparation for adding OMAP4-specific PRCM accessor/mutator
      functions, split the existing OMAP2/3 PRCM code into OMAP2/3-specific
      files.  Most of what was in mach-omap2/{cm,prm}.{c,h} has now been
      moved into mach-omap2/{cm,prm}2xxx_3xxx.{c,h}, since it was
      OMAP2xxx/3xxx-specific.
      
      This process also requires the #includes in each of these files to be
      changed to reference the new file name.  As part of doing so, add some
      comments into plat-omap/sram.c and plat-omap/mcbsp.c, which use
      "sideways includes", to indicate that these users of the PRM/CM includes
      should not be doing so.
      
      Thanks to Felipe Contreras <felipe.contreras@gmail.com> for comments on this
      patch.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Jarkko Nikula <jhnikula@gmail.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@nokia.com>
      Cc: Liam Girdwood <lrg@slimlogic.co.uk>
      Cc: Omar Ramirez Luna <omar.ramirez@ti.com>
      Acked-by: NOmar Ramirez Luna <omar.ramirez@ti.com>
      Cc: Felipe Contreras <felipe.contreras@gmail.com>
      Acked-by: NFelipe Contreras <felipe.contreras@gmail.com>
      Cc: Greg Kroah-Hartman <greg@kroah.com>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Reviewed-by: NKevin Hilman <khilman@deeprootsystems.com>
      Tested-by: NKevin Hilman <khilman@deeprootsystems.com>
      Tested-by: NRajendra Nayak <rnayak@ti.com>
      Tested-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      59fb659b
    • P
      OMAP2+: clockdomains: move clockdomain static data to .c files · dc0b3a70
      Paul Walmsley 提交于
      Static data should be declared in .c files, not .h files.  It should be
      possible to #include .h files at any point without creating multiple
      copies of the same data.
      
      We converted the clock data to .c files some time ago.  This patch does
      the same for the clockdomain data.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Reviewed-by: NKevin Hilman <khilman@deeprootsystems.com>
      Tested-by: NKevin Hilman <khilman@deeprootsystems.com>
      Tested-by: NSantosh Shilimkar <santosh.shilimkar@ti.com>
      Tested-by: NRajendra Nayak <rnayak@ti.com>
      dc0b3a70