16 Dec, 2009

1 commit

  • This driver was merged before the ep93xx core support was added
    for the keypad clock and acquiring/releasing the necessary gpio's.
    Now that the proper support is in the ep93xx core this driver
    needs to be updated to work correctly.

    Summary of changes:
    1) Remove some unused members from the platform data.
    2) Remove the custom KEY macro and use the ones available in

    3) Remove the keypad_{readl/writel} macros and just use
    __raw_{readl/writel} directly.
    4) Update the clk_set_rate() call to work with the core support.
    5) Cleanup the probe routine and remove some unneeded messages.
    6) Use the ep93xx core functions to acquire and release the gpio's.
    7) Fix the clk_get() call to get the keypad clock.

    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Dmitry Torokhov

    H Hartley Sweeten
     

24 Nov, 2009

3 commits


06 Nov, 2009

1 commit


21 Oct, 2009

2 commits


14 Oct, 2009

1 commit


10 Oct, 2009

3 commits

  • The clock generation system in the ep93xx uses two external oscillator's
    and two internal PLLs to derive all the internal clocks. Many of these
    internal clocks can be stopped to save power.

    This introduces a "parent" hierarchy for the clocks so that the users
    count can be correctly tracked for power management.

    The "parent" for the video clock can either be one of the PLL outputs
    or the external oscillator. In order to correctly track the "parent"
    for the video clock calc_clk_div() needed to be modified. It now
    returns an error code if the desired rate cannot be generated.

    Signed-off-by: H Hartley Sweeten
    Acked-by: Ryan Mallon
    Signed-off-by: Russell King

    Hartley Sweeten
     
  • Update the ep93xx i2c support:

    1) The platform init code passes the configuration data for the
    i2c-gpio driver. This allows any gpio pin do be used for the
    sda and scl pins. It also allows the platform to specify the
    udelay and timeout.
    2) Program the gpio configuration register to enable/disable the
    open drain drivers. Note that this really only works if the
    sda and scl pins are set to EP93XX_GPIO_LINE_EEDAT and
    EP93XX_GPIO_LINE_EECLK.
    3) Update the edb93xx.c platform init to use the new support.

    Signed-off-by: H Hartley Sweeten
    Acked-by: Ryan Mallon
    Signed-off-by: Russell King

    Hartley Sweeten
     
  • Most of the EP93XX_GPIO_*_INT_* register defines in ep93xx-regs.h
    not required due to how the ep93xx core and gpiolib support handle
    gpio interrupts. Remove the defines to prevent future confusion.

    Signed-off-by: H Hartley Sweeten
    Acked-by: Ryan Mallon
    Signed-off-by: Russell King

    Hartley Sweeten
     

07 Oct, 2009

6 commits


23 Sep, 2009

1 commit


12 Sep, 2009

2 commits


03 Aug, 2009

1 commit

  • The kernel.h macro DIV_ROUND_CLOSEST performs the computation
    (x + d/2)/d but is perhaps more readable.

    The semantic patch that makes this change is as follows:
    (http://www.emn.fr/x-info/coccinelle/)

    //
    @haskernel@
    @@

    @depends on haskernel@
    expression x,__divisor;
    @@

    - (((x) + ((__divisor) / 2)) / (__divisor))
    + DIV_ROUND_CLOSEST(x,__divisor)
    //

    Signed-off-by: Julia Lawall
    Acked-by: H Hartley Sweeten
    Signed-off-by: Russell King

    Julia Lawall
     

31 Jul, 2009

1 commit

  • The EP93xx features two PWMs (one on the EP9307) with the following
    features:

    * Configurable dual output
    * Separate input clocks for each PWM output
    * 16-bit resolution
    * Programmable pulse width (duty cycle), interval (frequency), and
    polarity

    This adds the necessary core support as well as the driver. A sysfs
    interface is provided to control the PWM outputs.

    Signed-off-by: Matthieu Crapet
    Signed-off-by: H Hartley Sweeten
    Acked-by: Ryan Mallon
    Signed-off-by: Russell King

    Hartley Sweeten
     

23 Jul, 2009

1 commit

  • Update the NOR flash support for TS-7200.

    The TS-7200 models all have 16-bit NOR flash. Update the platform
    init to support this.

    Remove the private TS72XX_NOR_* defines and use the common ep93xx
    defines for the external chip select physical base address instead.

    Move the NOR flash registration into a static __init function. When
    the NAND flash support is updated this function will also be used
    to register the NAND flash for the TS-7250 and TS-7260.

    Tested-by: Matthieu Crapet
    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Russell King

    Hartley Sweeten
     

22 Jul, 2009

1 commit

  • The EP93xx has two gpio pins specifically assigned to drive
    external LEDs. Add core support for these LEDs.

    On the EDB93xx development boards, the rdled is connected to
    an external reset circuit. Turning this led on for an extended
    amount of time will cause the circuit to issue a manual reset.

    Refer to Cirrus App Note AN258 for more information.

    http://www.cirrus.com/en/pubs/appNote/AN258REV2.pdf

    This led can be safely used as the system heartbeat with the
    ledtrig-heartbeat driver.

    echo heartbeat > /sys/class/leds/platform:rdled/trigger

    The grled can be used for any desired purpose.

    Tested-by: Matthieu Crapet
    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Russell King

    Hartley Sweeten
     

17 Jul, 2009

4 commits


12 Jul, 2009

1 commit


09 Jul, 2009

5 commits

  • To ensure typesafe io, the enable_reg variable should be a
    void __iomem pointer not u32.

    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Russell King

    Hartley Sweeten
     
  • arch/arm/mach-ep93xx/include/mach/hardware.h
    1. Properly name the include files so that they are loaded
    from the 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. 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. should be included not

    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 .

    drivers/mtd/nand/ts7250.c
    1. should be included not .
    2. Add platform specific header .

    Cc: Ryan Mallon
    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Russell King

    Hartley Sweeten
     
  • was getting included by , is should be
    included by this file.

    Signed-off-by: H Hartley Sweeten
    Signed-off-by: Russell King

    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: H Hartley Sweeten
    Acked-by: Ryan Mallon
    Signed-off-by: Russell King

    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
    Cc: Matthias Kaehlcke
    Signed-off-by: H Hartley Sweeten
    Acked-by: Ryan Mallon
    Signed-off-by: Russell King

    Hartley Sweeten
     

27 Jun, 2009

3 commits


21 Jun, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (35 commits)
    Input: add driver for Synaptics I2C touchpad
    Input: synaptics - add support for reporting x/y resolution
    Input: ALPS - handle touchpoints buttons correctly
    Input: gpio-keys - change timer to workqueue
    Input: ads7846 - pin change interrupt support
    Input: add support for touchscreen on W90P910 ARM platform
    Input: appletouch - improve finger detection
    Input: wacom - clear Intuos4 wheel data when finger leaves proximity
    Input: ucb1400 - move static function from header into core
    Input: add driver for EETI touchpanels
    Input: ads7846 - more detailed model name in sysfs
    Input: ads7846 - support swapping x and y axes
    Input: ati_remote2 - use non-atomic bitops
    Input: introduce lm8323 keypad driver
    Input: psmouse - ESD workaround fix for OLPC XO touchpad
    Input: tsc2007 - make sure platform provides get_pendown_state()
    Input: uinput - flush all pending ff effects before destroying device
    Input: simplify name handling for certain input handles
    Input: serio - do not use deprecated dev.power.power_state
    Input: wacom - add support for Intuos4 tablets
    ...

    Linus Torvalds
     

12 Jun, 2009

1 commit


11 Jun, 2009

1 commit