• Allen Xu's avatar
    mtd: spi-nor: fsl-quadspi: i.MX6SX: fixed the random QSPI access failed issue · cacbef40
    Allen Xu authored
    We found there is a low probability(5%) QSPI access timeout issue,
    usually it happened on kernel boot stage, the first time kernel tried to
    access QSPI chip. The READ_ID command was sent but not executed,
    consequently the probe function failed.
    
    The root cause is that the divider is not glitchless in i.MX6SX chip.
    If qspi clock enabled then change clock frequency by call clk_set_rate,
    there will be glitch at low possiblity rate and pass to qspi controller.
    The controler will be hang by this glitch.
    
    Based on the new clock flag(CLK_SET_RATE_GATE) and new framework, we
    need to change the approach of seting clock rate.
    1. Disable clock.
    2. call clk_set_rate.
    3. Enable clock again.
    Signed-off-by: default avatarHan Xu <han.xu@freescale.com>
    Signed-off-by: default avatarFrank Li <Frank.Li@freescale.com>
    Signed-off-by: default avatarBrian Norris <computersforpeace@gmail.com>
    cacbef40
fsl-quadspi.c 28.2 KB