04 Feb, 2015

1 commit

  • This patch provides a simple mmc-pwrseq-emmc driver, which controls
    single gpio line. It perform standard eMMC hw reset procedure, as
    descibed by Jedec 4.4 specification. This procedure is performed just
    after MMC core enabled power to the given mmc host (to fix possible
    issues if bootloader has left eMMC card in initialized or unknown
    state), and before performing complete system reboot (also in case of
    emergency reboot call). The latter is needed on boards, which doesn't
    have hardware reset logic connected to emmc card and (limited or broken)
    ROM bootloaders are unable to read second stage from the emmc card if
    the card is left in unknown or already initialized state.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Ulf Hansson

    Marek Szyprowski
     

28 Jan, 2015

2 commits

  • To add the core part for the MMC power sequence, let's start by adding
    initial support for the simple MMC power sequence provider.

    In this initial step, the MMC power sequence node are fetched and the
    compatible string for the simple MMC power sequence provider are
    verified.

    At this point we don't parse the node for any properties, but instead
    that will be handled from following patches. Since there are no
    properties supported yet, let's just implement the ->alloc() and the
    ->free() callbacks.

    Signed-off-by: Ulf Hansson
    Tested-by: Javier Martinez Canillas
    Reviewed-by: Javier Martinez Canillas

    Ulf Hansson
     
  • System on chip designs may specify a specific MMC power sequence. To
    successfully detect an (e)MMC/SD/SDIO card, that power sequence must
    be followed while initializing the card.

    To be able to handle these SOC specific power sequences, let's add a
    MMC power sequence interface. It provides the following functions to
    help the mmc core to deal with these power sequences.

    mmc_pwrseq_alloc() - Invoked from mmc_of_parse(), to initialize data.
    mmc_pwrseq_pre_power_on()- Invoked in the beginning of mmc_power_up().
    mmc_pwrseq_post_power_on()- Invoked at the end in mmc_power_up().
    mmc_pwrseq_power_off()- Invoked from mmc_power_off().
    mmc_pwrseq_free() - Invoked from mmc_free_host(), to free data.

    Each MMC power sequence provider will be responsible to implement a set
    of callbacks. These callbacks mirrors the functions above.

    This patch adds the skeleton, following patches will extend the core of
    the MMC power sequence and add support for a specific simple MMC power
    sequence.

    Do note, since the mmc_pwrseq_alloc() is invoked from mmc_of_parse(),
    host drivers needs to make use of this API to enable the support for
    MMC power sequences. Moreover the MMC power sequence support depends on
    CONFIG_OF.

    Signed-off-by: Ulf Hansson
    Tested-by: Javier Martinez Canillas
    Reviewed-by: Javier Martinez Canillas

    Ulf Hansson
     

11 Jul, 2012

1 commit


12 Jan, 2012

1 commit


16 Mar, 2011

1 commit

  • Some cards have quirks valid for every platforms using current
    platform quirk hooks leads to a lot of code and debug duplication.

    So we inspire a bit from what exists in PCI subsystem and do our own
    per vendorid/deviceid quirk. We still drop the complexity of the pci
    quirk system (with special section tables, and so on).
    That can be added later if needed.

    Signed-off-by: Pierre Tardy
    Acked-by: Linus Walleij
    Acked-by: Ohad Ben-Cohen
    Signed-off-by: Chris Ball

    Pierre Tardy
     

23 Oct, 2010

1 commit

  • The EXTRA_CFLAGS assignment in mmc/Makefile was not accomplishing
    anything because this flag only has effect on sources at the same level
    as the makefile (i.e., per directory). Since card/, core/, and host/
    rely on MMC_DEBUG, the subdir-ccflags-y variant seems to be the
    appropriate choice.

    Signed-off-by: matt mooney
    Signed-off-by: Chris Ball

    matt mooney
     

27 Jul, 2008

1 commit

  • When CONFIG_DEBUG_FS is set, create a few files under /sys/kernel/debug
    containing information about an mmc host's internal state. Currently,
    just a single file is created, "ios", which contains information about
    the current operating parameters for the bus (clock speed, bus width,
    etc.)

    Host drivers can add additional files and directories under the host's
    root directory by passing the debugfs_root field in struct mmc_host as
    the 'parent' parameter to debugfs_create_*.

    Signed-off-by: Haavard Skinnemoen
    Signed-off-by: Pierre Ossman

    Haavard Skinnemoen
     

23 Mar, 2008

1 commit

  • Suppressing uevents turned out to be a bad idea as it screws up the
    order of events, making user space very confused. Change the system to
    use sysfs groups instead.

    This is a regression that, for some odd reason, has gone unnoticed for
    some time. It confuses hal so that the block devices (which have the
    mmc device as a parent) are not registered. End result being that
    desktop magic when cards are inserted won't work.

    Signed-off-by: Pierre Ossman
    Signed-off-by: Linus Torvalds

    Pierre Ossman
     

24 Sep, 2007

5 commits


10 Jul, 2007

2 commits


01 May, 2007

3 commits

  • Delegate protocol handling to "bus handlers". This allows the core to
    just handle the task of arbitrating the bus. Initialisation and
    pampering of cards is now done by the different bus handlers.

    This design also allows MMC and SD (and later SDIO) to be more cleanly
    separated, allowing easier maintenance.

    Signed-off-by: Pierre Ossman

    Pierre Ossman
     
  • Move protocol operations and definitions into their own files
    in an effort to separate protocol handling and bus
    arbitration more clearly.

    Signed-off-by: Pierre Ossman

    Pierre Ossman
     
  • Create a "core" subdirectory to house the central bus handling
    functions.

    Signed-off-by: Pierre Ossman

    Pierre Ossman