Skip to content
  • Tony Lindgren's avatar
    ARM: OMAP2+: Split omap2_hsmmc_init() to properly support I2C GPIO pins · 3b972bf0
    Tony Lindgren authored
    
    
    Otherwise omap_device_build() and omap_mux related functions
    can't be marked as __init when twl is build as a module.
    
    If a board is using GPIO pins or regulators configured by an
    external chip, such as TWL PMIC on I2C bus, the board must
    mark those MMC controllers as deferred. Additionally both
    omap_hsmmc_init() and omap_hsmmc_late_init() must be called
    by the board.
    
    For MMC controllers using internal GPIO pins for card
    detect and regulators the slots don't need to be marked
    deferred. In this case calling omap_hsmmc_init() is sufficient.
    
    Only mark the MMC slots using gpio_cd or gpio_wd as deferred
    as noted by Igor Grinberg <grinberg@compulab.co.il>.
    
    Note that this patch does not change the behaviour for
    board-4430sdp.c board-omap4panda.c. These boards wrongly
    rely on the omap_hsmmc.c init function callback to configure
    the PMIC GPIO interrupt lines on external chip. If the PMIC
    interrupt lines are not configured during init, they will
    fail.
    
    Reported-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: default avatarRajendra Nayak <rnayak@ti.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    3b972bf0