u32 XSdPs_FrameCmd()

in portable/Zynq/xsdps.c [1216:1334]


u32 XSdPs_FrameCmd( XSdPs * InstancePtr,
                    u32 Cmd )
{
    u32 RetVal;

    RetVal = Cmd;

    switch( Cmd )
    {
        case CMD0:
            RetVal |= RESP_NONE;
            break;

        case CMD1:
            RetVal |= RESP_R3;
            break;

        case CMD2:
            RetVal |= RESP_R2;
            break;

        case CMD3:
            RetVal |= RESP_R6;
            break;

        case CMD4:
            RetVal |= RESP_NONE;
            break;

        case CMD5:
            RetVal |= RESP_R1B;
            break;

        case CMD6:

            if( InstancePtr->CardType == XSDPS_CARD_SD )
            {
                RetVal |= RESP_R1 | ( u32 ) XSDPS_DAT_PRESENT_SEL_MASK;
            }
            else
            {
                RetVal |= RESP_R1B;
            }

            break;

        case ACMD6:
            RetVal |= RESP_R1;
            break;

        case CMD7:
            RetVal |= RESP_R1;
            break;

        case CMD8:

            if( InstancePtr->CardType == XSDPS_CARD_SD )
            {
                RetVal |= RESP_R1;
            }
            else
            {
                RetVal |= RESP_R1 | ( u32 ) XSDPS_DAT_PRESENT_SEL_MASK;
            }

            break;

        case CMD9:
            RetVal |= RESP_R2;
            break;

        case CMD11:
        case CMD10:
        case CMD12:
        case ACMD13:
        case CMD16:
            RetVal |= RESP_R1;
            break;

        case CMD17:
        case CMD18:
        case CMD19:
        case CMD21:
            RetVal |= RESP_R1 | ( u32 ) XSDPS_DAT_PRESENT_SEL_MASK;
            break;

        case CMD23:
        case ACMD23:
        case CMD24:
        case CMD25:
            RetVal |= RESP_R1 | ( u32 ) XSDPS_DAT_PRESENT_SEL_MASK;

        case ACMD41:
            RetVal |= RESP_R3;
            break;

        case ACMD42:
            RetVal |= RESP_R1;
            break;

        case ACMD51:
            RetVal |= RESP_R1 | ( u32 ) XSDPS_DAT_PRESENT_SEL_MASK;
            break;

        case CMD52:
        case CMD55:
            RetVal |= RESP_R1;
            break;

        case CMD58:
            break;

        default:
            RetVal |= Cmd;
            break;
    }

    return RetVal;
}