29 Aug, 2016

1 commit


15 Apr, 2016

4 commits

  • GPMC provides 2 interrupts for NAND use. i.e. fifoevent and termcount.
    Use IRQ domain for this. NAND device tree node can then
    get the necessary interrupts by using gpmc as the interrupt parent.

    Legacy boot uses gpmc_get_client_irq to get the
    NAND interrupts from the GPMC IRQ domain.
    Get rid of custom bitmasks and use IRQ domain for that
    as well.

    Signed-off-by: Roger Quadros
    Acked-by: Rob Herring
    Acked-by: Tony Lindgren

    Roger Quadros
     
  • The OMAP GPMC module has certain registers dedicated for NAND
    access and some NAND bits mixed with other GPMC functionality.

    For the NAND dedicated registers we have the struct gpmc_nand_regs.

    The NAND driver needs to access NAND specific bits from the
    following non-dedicated registers
    - EMPTYWRITEBUFFERSTATUS from GPMC_STATUS

    For accessing these bits we introduce the struct gpmc_nand_ops.

    Add gpmc_omap_get_nand_ops() that returns the gpmc_nand_ops along
    with updating the gpmc_nand_regs. This API will be called by the
    OMAP NAND driver to access the necessary bits in GPMC register space.

    Signed-off-by: Roger Quadros
    Acked-by: Tony Lindgren

    Roger Quadros
     
  • Add device_timings, gpmc_timings and gpmc_setting to
    gpmc platform data.

    Signed-off-by: Roger Quadros
    Acked-by: Tony Lindgren

    Roger Quadros
     
  • Add a platform data structure for GPMC. It contains all the necessary
    platform information that needs to be passed from platform init code
    to GPMC driver.

    Signed-off-by: Roger Quadros
    Acked-by: Tony Lindgren

    Roger Quadros
     

08 Feb, 2016

1 commit

  • In order to support extended timings parameters on hardware supporting the
    "AAD" mode like the AM335x or DM816x, add these entries into the GPMC driver
    if the hardware is capable.

    Tested on DM816x and AM335x.

    Signed-off-by: Neil Armstrong
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Neil Armstrong
     

06 Mar, 2015

1 commit

  • The WAITMONITORINGTIME is expressed as a number of GPMC_CLK clock cycles,
    even though the access is defined as asynchronous, and no GPMC_CLK clock
    is provided to the external device. Still, GPMCFCLKDIVIDER is used as a divider
    for the GPMC clock, so it must be programmed to define the
    correct WAITMONITORINGTIME delay.

    Calculate GPMCFCLKDIVIDER independent of gpmc,sync-clk-ps in DT for
    pure asynchronous accesses, i.e. both read and write asynchronous.

    Signed-off-by: Robert ABEL
    Acked-by: Tony Lindgren
    Signed-off-by: Roger Quadros

    Robert ABEL
     

21 Nov, 2014

1 commit

  • We still need to support platform data for omap3 until it's booting
    in device tree only mode. So let's add platform_data/omap-gpmc.h for
    that, and a minimal linux/omap-gpmc.h for the save and restore used
    by the PM code.

    Let's also keep a minimal mach-omap2/gpmc.h still around to avoid
    churn on the board-*.c files. Once omap3 boots in device tree only
    mode, we can drop mach-omap2/gpmc.h and we can make the data
    structures in platform_data/omap-gpmc.h private to the GPMC driver.

    Note that we can now also remove gpmc-nand.h and gpmc-onenand.h.

    Cc: Arnd Bergmann
    Acked-by: Roger Quadros
    Signed-off-by: Tony Lindgren

    Tony Lindgren