• Johan Rudholm's avatar
    mmc: core: consistent handling of initial values · 2d079c43
    Johan Rudholm authored
    mmc_do_hw_reset(), mmc_power_up() and mmc_power_off() all set similar
    initial values for bus_mode, bus_width, chip_select and timing. Let's
    make this handling simpler and more consistent by sticking them
    together in a common function. This will introduce small changes in
    behavior in the following places:
    
    mmc_power_off():
    
      For SPI hosts, explicitly set bus_mode = MMC_BUSMODE_PUSHPULL and
      chip_select = MMC_CS_HIGH, before we left them as they were.
    
      For non-SPI hosts, set bus_mode = MMC_BUSMODE_PUSHPULL instead of
      MMC_BUSMODE_OPENDRAIN as before.
    
      These two changes should not be a problem since the device will be
      powered off anyway.
    
    mmc_do_hw_reset():
    
      Always set bus_mode = MMC_BUSMODE_PUSHPULL, as required by SD/SDIO
      cards. MMC cards require MMC_BUSMODE_OPENDRAIN, but this is taken
      care of by mmc_init_card() and mmc_attach_mmc().
    Signed-off-by: default avatarJohan Rudholm <johanru@axis.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    2d079c43
core.c 65.6 KB