1. 09 7月, 2009 2 次提交
    • H
      [ARM] 5578/1: ep93xx: add ep93xx-keypad clock · 701fac82
      Hartley Sweeten 提交于
      Add clkdev support for the ep93xx_keypad driver.
      
      A matrix keypad driver for the ep93xx just got merged via the
      input subsystem group.  For this driver to work the keypad clock
      needs to be added to the ep93xx clkdev support.  In order to
      accomplish this the following changes are implemented:
      
        1) Move the EP93XX_EXT_*_RATE defines to mach/include/hardware.h.
        2) Add EP93XX_KEYTCHCLK_DIV{4/16} for the keypad driver.
        3) Add support for programmable clocks (set_rate() callback).
        4) Add clk_keypad for the keypad driver.
        5) tab indent the clk_lookup table for easier reading.
        6) Add the set_rate() callback to program the keypad clock.
           This callback is generalized since the ADC clock (touchscreen)
           can use the same callback.
        7) Use the ep93xx_syscon_swlocked_write() core function for updating
           the software locked register.
      Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com>
      Acked-by: NRyan Mallon <ryan@bluewatersys.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      701fac82
    • H
      [ARM] 5577/2: ep93xx: syscon locked register functions · 02239f0a
      Hartley Sweeten 提交于
      Add core functions to handle writes to the ep93xx software locked
      registers.
      
      There are a number of registers in the EP93xx System Controller
      that require a write to the software lock register before they
      can be updated. This patch adds a number of exported functions
      to the ep93xx core that handle this access.
      
      The software locked clock divider registers, VidClkDiv, MIRClkDiv,
      I2SClkDiv and KeyTchClkDiv would typically involve writing a
      specific value to the register. To support this the
      ep93xx_syscon_swlocked_write() function is provided.
      
      For the DeviceCfg register it's more typical to only need to
      set or clear a single bit. A generic ep93xx_devcfg_set_clear()
      function is provided to handle both operations. Two inline
      functions, ep93xx_devcfg_set_bits() and ep93xx_devcfg_clear_bits()
      are also provided to improve code readability.
      
      In addition, the remaining bits in the System Controller Device
      Config Register have been documented and the previously defined
      names shortened.
      
      All code paths that use this functionality have been updated
      except for arch/arm/kernel/crunch.c. That code is in a context
      switch path, which is not reentrant, so it is safe against itself.
      
      Cc: Lennert Buytenhek <buytenh@wantstofly.org>
      Cc: Matthias Kaehlcke <matthias@kaehlcke.net>
      Signed-off-by: NH Hartley Sweeten <hsweeten@visionengravers.com>
      Acked-by: NRyan Mallon <ryan@bluewatersys.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      02239f0a
  2. 27 6月, 2009 3 次提交
  3. 25 6月, 2009 35 次提交