1. 09 Jul, 2009 3 commits
    • Hartley Sweeten's avatar
      [ARM] 5592/1: ep93xx: cleanup platform header includes · 583ddafe
      Hartley Sweeten authored
      arch/arm/mach-ep93xx/include/mach/hardware.h
        1. Properly name the include files so that they are loaded
           from the <mach/*> directory and not the local directory.
        2. Remove including the ts72xx.h header.  This header is not
           generic to the ep93xx platform.  It should only be included
           by the ts72xx specific files that require it.  The only
           two users in the tree are arch/arm/mach-ep93xx/ts72xx.c
           and drivers/mtd/nand/ts7250.c.
      
      arch/arm/mach-ep93xx/include/mach/ts72xx.h
        1. <linux/io.h> should already be included by any user of this
           header.  Doing the include here hides it from being needed
           by the calling source file.
      
      arch/arm/mach-ep93xx/core.c
        1. Remove unnecessary headers.  They were probably included
           originally due to cut-and-paste from other files.
        2. <linux/io.h> should be included not <mach/gpio.h>
      
      arch/arm/mach-ep93xx/adsphere.c
      arch/arm/mach-ep93xx/edb93xx.c
      arch/arm/mach-ep93xx/gesbc9312.c
      arch/arm/mach-ep93xx/micro9.c
      arch/arm/mach-ep93xx/ts72xx.c
        1. Remove unnecessary headers.
      
      arch/arm/mach-ep93xx/ts72xx.c
        1. Remove unnecessary headers.
        2. Add platform specific header <mach/ts72xx.h>.
      
      drivers/mtd/nand/ts7250.c
        1. <linux/io.h> should be included not <asm/io.h>.
        2. Add platform specific header <mach/ts72xx.h>.
      
      Cc: Ryan Mallon <ryan@bluewatersys.com>
      Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      583ddafe
    • Hartley Sweeten's avatar
      [ARM] 5578/1: ep93xx: add ep93xx-keypad clock · 701fac82
      Hartley Sweeten authored
      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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Acked-by: default avatarRyan Mallon <ryan@bluewatersys.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      701fac82
    • Hartley Sweeten's avatar
      [ARM] 5577/2: ep93xx: syscon locked register functions · 02239f0a
      Hartley Sweeten authored
      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: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
      Acked-by: default avatarRyan Mallon <ryan@bluewatersys.com>
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      02239f0a
  2. 27 Jun, 2009 3 commits
  3. 24 Jun, 2009 34 commits