• Ludovic Barre's avatar
    mmc: mmci_sdmmc: fix power on issue due to pwr_reg initialization · 33ba6fec
    Ludovic Barre authored
    This patch fix a power-on issue, and avoid to retry the power sequence.
    
    In power off sequence: sdmmc must set pwr_reg in "power-cycle" state
    (value 0x2), to prevent the card from being supplied through the signal
    lines (all the lines are driven low).
    
    In power on sequence: when the power is stable, sdmmc must set pwr_reg
    in "power-off" state (value 0x0) to drive all signal to high before to
    set "power-on".
    
    To avoid writing the same value to the power register several times, this
    register is cached by the pwr_reg variable. At probe pwr_reg is initialized
    to 0 by kzalloc of mmc_alloc_host.
    
    Like pwr_reg value is 0 at probing, the power on sequence fail because
    the "power-off" state is not writes (value 0x0) and the lines
    remain drive to low.
    
    This patch initializes "pwr_reg" variable with power register value.
    This it done in sdmmc variant init to not disturb default mmci behavior.
    Signed-off-by: default avatarLudovic Barre <ludovic.barre@st.com>
    Link: https://lore.kernel.org/r/20200420161831.5043-1-ludovic.barre@st.comSigned-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    33ba6fec
mmci_stm32_sdmmc.c 13.5 KB