• Marek Szyprowski's avatar
    sdhci-s3c: add support for new card detection methods · 17866e14
    Marek Szyprowski authored
    On some Samsung SoCs not all SDHCI controllers have card detect (CD) line.
     For some embedded designs it is not even needed, because ususally the
    device (like SDIO flash memory or wifi controller) is permanently wired to
    the controller.  There are also systems which have a card detect line
    connected to some of the external interrupt lines or the presence of the
    card depends on some other actions (like enabling a power regulator).
    
    This patch adds support for all these cases.  The following card detection
    methods are possible:
    
    1. internal sdhci host card detect line
    2. external event
    3. external gpio interrupt
    4. no card detect line, controller will poll for the card
    5. no card detect line, card is permanently wired to the controller
    (once detected host won't poll it any more)
    
    By default, all existing code would use method #1, what is compatible with
    the previous version of the driver.
    
    In case of external event, two callbacks must be provided in platdata:
    ext_cd_init and ext_cd_cleanup.  Both of them get a callback to a function
    that notifies the s3c-sdhci host contoller as their argument.  That
    callback function should be called from the even dispatcher to let host
    notice the card insertion/removal.
    
    In case of external gpio interrupt, a gpio pin number must be provided in
    platdata (ext_cd_gpio parameter), as well as the information about the
    polarity of that gpio pin (ext_cd_gpio_invert).  By default
    (ext_cd_gpio_invert == 0) gpio value 0 means 'card has been removed', but
    this can be changed to 'card has been removed' when ext_cd_gpio_invert ==
    1.
    
    This patch adds all required changes to sdhci-s3c driver.
    Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
    Cc: <linux-mmc@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    17866e14
sdhci.h 13 KB