/* brief SDIF abort the read data when SDIF card is in suspend state Once assert this bit,data state machine will be reset which is waiting for the next blocking data,used in SDIO card suspend sequence,should call after suspend cmd send param base SDIF peripheral base address. param timeout value to wait this bit self clear which indicate the data machine reset to idle  */
bool SDIF_AbortReadData(SDIF_Type *base, uint32_t timeout)
/* brief SDIF abort the read data when SDIF card is in suspend state Once assert this bit,data state machine will be reset which is waiting for the next blocking data,used in SDIO card suspend sequence,should call after suspend cmd send param base SDIF peripheral base address. param timeout value to wait this bit self clear which indicate the data machine reset to idle  */
bool SDIF_AbortReadData(SDIF_Type *base, uint32_t timeout)
{
    base->CTRL |= SDIF_CTRL_ABORT_READ_DATA_MASK;
    while ((base->CTRL & SDIF_CTRL_ABORT_READ_DATA_MASK) == SDIF_CTRL_ABORT_READ_DATA_MASK)
    {
        if (0UL == timeout)
        {
            break;
        }
        timeout--;
    }
    return IS_SDIF_FLAG_SET(base->CTRL, SDIF_CTRL_ABORT_READ_DATA_MASK) ? false : true;
}