From owner-p4-projects@FreeBSD.ORG Wed Sep 13 00:18:16 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 267D116A47B; Wed, 13 Sep 2006 00:18:16 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0281C16A412 for ; Wed, 13 Sep 2006 00:18:16 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6244043D4C for ; Wed, 13 Sep 2006 00:18:15 +0000 (GMT) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k8D0IFdZ009886 for ; Wed, 13 Sep 2006 00:18:15 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k8D0IFEQ009883 for perforce@freebsd.org; Wed, 13 Sep 2006 00:18:15 GMT (envelope-from imp@freebsd.org) Date: Wed, 13 Sep 2006 00:18:15 GMT Message-Id: <200609130018.k8D0IFEQ009883@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 106038 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 13 Sep 2006 00:18:16 -0000 http://perforce.freebsd.org/chv.cgi?CH=106038 Change 106038 by imp@imp_lighthouse on 2006/09/13 00:17:53 Slightly more consistant Affected files ... .. //depot/projects/arm/src/sys/arm/at91/at91_qdmmc.c#5 edit .. //depot/projects/arm/src/sys/boot/arm/at91/libat91/mci_device.c#13 edit .. //depot/projects/arm/src/sys/boot/arm/at91/libat91/mci_device.h#7 edit .. //depot/projects/arm/src/sys/dev/mmc/mmcreg.h#3 edit Differences ... ==== //depot/projects/arm/src/sys/arm/at91/at91_qdmmc.c#5 (text+ko) ==== @@ -138,8 +138,8 @@ error = RD4(sc, MCI_SR) & MCI_SR_ERROR; if (error) { - if ((cmd != AT91C_SDCARD_APP_OP_COND_CMD) && - (cmd != AT91C_MMC_SEND_OP_COND_CMD)) { + if ((cmd != SDCARD_APP_OP_COND_CMD) && + (cmd != MMC_SEND_OP_COND_CMD)) { //printf("qdmmc: Error 0x%x\n", error); return (error); } @@ -176,12 +176,11 @@ err = 0; /* get all cards into idle state */ - at91_qdmmc_SendCommand(dev, AT91C_MMC_GO_IDLE_STATE_CMD, - AT91C_NO_ARGUMENT); + at91_qdmmc_SendCommand(dev, MMC_GO_IDLE_STATE_CMD, AT91C_NO_ARGUMENT); /* check operating conditions */ do { /* loop on busy */ - err = at91_qdmmc_SendCommand(dev, AT91C_MMC_SEND_OP_COND_CMD, + err = at91_qdmmc_SendCommand(dev, MMC_SEND_OP_COND_CMD, AT91C_MMC_HOST_VOLTAGE_RANGE); if (err != 0) { err = ENXIO; @@ -197,7 +196,7 @@ for(sc->nb_cards = 0; sc->nb_cards < MMC_MAX; sc->nb_cards++) { int status; int card = sc->nb_cards; - status = at91_qdmmc_SendCommand(dev, AT91C_MMC_ALL_SEND_CID_CMD, + status = at91_qdmmc_SendCommand(dev, MMC_ALL_SEND_CID_CMD, AT91C_NO_ARGUMENT); if (status != 0) { break; @@ -237,8 +236,7 @@ month); sc->cards[card].addr = card + MMC_FIRST_RCA; - status = at91_qdmmc_SendCommand(dev, - AT91C_MMC_SET_RELATIVE_ADDR_CMD, + status = at91_qdmmc_SendCommand(dev, MMC_SET_RELATIVE_ADDR_CMD, (sc->cards[card].addr) << 16); if (status != 0) { printf("Failed to set address for MMC %i\n", card); @@ -247,7 +245,7 @@ printf("Set MMC %i address to 0x%x\n", card, sc->cards[card].addr); - status = at91_qdmmc_SendCommand(dev, AT91C_SEND_CSD_CMD, + status = at91_qdmmc_SendCommand(dev, SEND_CSD_CMD, (sc->cards[card].addr) << 16); if (status != 0) { printf("Failed to get CSD for MMC %i\n", card); @@ -532,9 +530,11 @@ bioq_remove(&sc->cards[0].bio_queue, bp); //printf("at91_qdmmc_task: request %p\n", bp); if (bp->bio_cmd == BIO_READ) { - status = at91_qdmmc_SendCommand(sc->dev, AT91C_SEL_DESEL_CARD_CMD, (sc->cards[0].addr) << 16); + status = at91_qdmmc_SendCommand(sc->dev, + SEL_DESEL_CARD_CMD, (sc->cards[0].addr) << 16); //printf("at91_qdmmc_task: select_card-status = 0x%x\n", status); - status = at91_qdmmc_SendCommand(sc->dev, AT91C_SET_BLOCKLEN_CMD, sc->cards[0].sector_size); + status = at91_qdmmc_SendCommand(sc->dev, + SET_BLOCKLEN_CMD, sc->cards[0].sector_size); //printf("at91_qdmmc_task: set_blocklen-status = 0x%x\n", status); //printf("at91_qdmmc_task: read block %lld, bcount %ld\n", bp->bio_pblkno, bp->bio_bcount); uint32_t block; @@ -560,7 +560,8 @@ //printf("status = 0x%x, paddr = %p, RPR = 0x%x, RCR = 0x%x\n", status, paddr, // RD4(sc, PDC_RPR), RD4(sc, PDC_RCR)); - status = at91_qdmmc_SendCommand(sc->dev, AT91C_READ_SINGLE_BLOCK_CMD, block * sc->cards[0].sector_size); + status = at91_qdmmc_SendCommand(sc->dev, + READ_SINGLE_BLOCK_CMD, block * sc->cards[0].sector_size); //printf("at91_qdmmc_task: read-status = 0x%x\n", status); // wait for completion @@ -583,7 +584,8 @@ ((tmp & 0xff) << 24); } } - status = at91_qdmmc_SendCommand(sc->dev, AT91C_SEL_DESEL_CARD_CMD, 0); + status = at91_qdmmc_SendCommand(sc->dev, + SEL_DESEL_CARD_CMD, 0); //printf("at91_qdmmc_task: deselect_card-status = 0x%x\n", status); // Reset Mode Register @@ -600,9 +602,11 @@ WR4(sc, MCI_MR, sc->cards[0].mode | (sc->cards[0].sector_size << 16)); // printf("mode 0x%x\n", RD4(sc, MCI_MR)); - status = at91_qdmmc_SendCommand(sc->dev, AT91C_SEL_DESEL_CARD_CMD, (sc->cards[0].addr) << 16); + status = at91_qdmmc_SendCommand(sc->dev, + SEL_DESEL_CARD_CMD, (sc->cards[0].addr) << 16); // printf("at91_qdmmc_task: select_card-status = 0x%x\n", status); - status = at91_qdmmc_SendCommand(sc->dev, AT91C_SET_BLOCKLEN_CMD, sc->cards[0].sector_size); + status = at91_qdmmc_SendCommand(sc->dev, + SET_BLOCKLEN_CMD, sc->cards[0].sector_size); // printf("at91_qdmmc_task: set_blocklen-status = 0x%x\n", status); //tmpbuf = malloc(sc->cards[0].sector_size, M_DEVBUF, M_WAITOK); @@ -632,7 +636,8 @@ // printf("status = 0x%x, tmpbuf = %p, TPR = 0x%x, TCR = 0x%x\n", status, tmpbuf, // RD4(sc, PDC_TPR), RD4(sc, PDC_TCR)); - status = at91_qdmmc_SendCommand(sc->dev, AT91C_WRITE_BLOCK_CMD, block * sc->cards[0].sector_size); + status = at91_qdmmc_SendCommand(sc->dev, + WRITE_BLOCK_CMD, block * sc->cards[0].sector_size); // printf("at91_qdmmc_task: write-status = 0x%x\n", status); WR4(sc, MCI_IER, MCI_SR_NOTBUSY); WR4(sc, PDC_PTCR, PDC_PTCR_TXTEN); @@ -649,7 +654,8 @@ } //free(tmpbuf, M_DEVBUF); - status = at91_qdmmc_SendCommand(sc->dev, AT91C_SEL_DESEL_CARD_CMD, 0); + status = at91_qdmmc_SendCommand(sc->dev, + SEL_DESEL_CARD_CMD, 0); //printf("at91_qdmmc_task: deselect_card-status = 0x%x\n", status); // Reset Mode Register @@ -661,7 +667,7 @@ out: if (map) bus_dmamap_unload(sc->dmatag, sc->map); - status = at91_qdmmc_SendCommand(sc->dev, AT91C_SEL_DESEL_CARD_CMD, 0); + status = at91_qdmmc_SendCommand(sc->dev, SEL_DESEL_CARD_CMD, 0); //printf("at91_qdmmc_task: deselect_card-status = 0x%x\n", status); AT91_QDMMC_UNLOCK(sc); biofinish(bp, NULL, ENXIO); ==== //depot/projects/arm/src/sys/boot/arm/at91/libat91/mci_device.c#13 (text+ko) ==== @@ -75,8 +75,8 @@ if (error != 0 ) { // if the command is SEND_OP_COND the CRC error flag is // always present (cf : R3 response) - if ((Cmd != AT91C_SDCARD_APP_OP_COND_CMD) && - (Cmd != AT91C_MMC_SEND_OP_COND_CMD)) + if ((Cmd != SDCARD_APP_OP_COND_CMD) && + (Cmd != MMC_SEND_OP_COND_CMD)) return ((AT91C_BASE_MCI->MCI_SR) & AT91C_MCI_SR_ERROR); if (error != AT91C_MCI_RCRCE) return ((AT91C_BASE_MCI->MCI_SR) & AT91C_MCI_SR_ERROR); @@ -98,7 +98,7 @@ // Send the CMD55 for application specific command AT91C_BASE_MCI->MCI_ARGR = (pMCI_Device->pMCI_DeviceFeatures->Relative_Card_Address << 16 ); - AT91C_BASE_MCI->MCI_CMDR = AT91C_APP_CMD; + AT91C_BASE_MCI->MCI_CMDR = APP_CMD; // wait for CMDRDY Status flag to read the response do @@ -112,7 +112,7 @@ return ((AT91C_BASE_MCI->MCI_SR) & AT91C_MCI_SR_ERROR); // check if it is a specific command and then send the command - if ( (Cmd_App && AT91C_SDCARD_APP_ALL_CMD) == 0) + if ( (Cmd_App & SDCARD_APP_ALL_CMD) == 0) return AT91C_CMD_SEND_ERROR; return(AT91F_MCI_SendCommand(Cmd_App,Arg)); @@ -125,7 +125,7 @@ static AT91S_MCIDeviceStatus AT91F_MCI_GetStatus(unsigned int relative_card_address) { - if (AT91F_MCI_SendCommand(AT91C_SEND_STATUS_CMD, + if (AT91F_MCI_SendCommand(SEND_STATUS_CMD, relative_card_address <<16) == AT91C_CMD_SEND_OK) return (AT91C_BASE_MCI->MCI_RSPR[0]); return AT91C_CMD_SEND_ERROR; @@ -229,7 +229,7 @@ AT91C_BASE_PDC_MCI->PDC_RCR = sizeToRead; // Send the Read single block command - if (AT91F_MCI_SendCommand(AT91C_READ_SINGLE_BLOCK_CMD, src) != AT91C_CMD_SEND_OK) + if (AT91F_MCI_SendCommand(READ_SINGLE_BLOCK_CMD, src) != AT91C_CMD_SEND_OK) return AT91C_READ_ERROR; pMCI_Device->pMCI_DeviceDesc->state = AT91C_MCI_RX_SINGLE_BLOCK; @@ -291,7 +291,7 @@ AT91C_BASE_PDC_MCI->PDC_TCR = sizeToWrite; // Send the write single block command - if ( AT91F_MCI_SendCommand(AT91C_WRITE_BLOCK_CMD, dest) != AT91C_CMD_SEND_OK) + if ( AT91F_MCI_SendCommand(WRITE_BLOCK_CMD, dest) != AT91C_CMD_SEND_OK) return AT91C_WRITE_ERROR; pMCI_Device->pMCI_DeviceDesc->state = AT91C_MCI_TX_SINGLE_BLOCK; @@ -332,7 +332,7 @@ if (status > AT91C_MAX_MCI_CARDS) return AT91C_CARD_SELECTED_ERROR; - if (AT91F_MCI_SendCommand(AT91C_SEL_DESEL_CARD_CMD, + if (AT91F_MCI_SendCommand(SEL_DESEL_CARD_CMD, pMCI_Device->pMCI_DeviceFeatures[status].Relative_Card_Address << 16) == AT91C_CMD_SEND_OK) return AT91C_CARD_SELECTED_OK; return AT91C_CARD_SELECTED_ERROR; @@ -347,7 +347,7 @@ AT91F_MCI_GetCSD(unsigned int relative_card_address , unsigned int * response) { - if(AT91F_MCI_SendCommand(AT91C_SEND_CSD_CMD, + if(AT91F_MCI_SendCommand(SEND_CSD_CMD, (relative_card_address << 16)) != AT91C_CMD_SEND_OK) return AT91C_CMD_SEND_ERROR; @@ -366,7 +366,7 @@ AT91S_MCIDeviceStatus AT91F_MCI_SetBlocklength(unsigned int length) { - return( AT91F_MCI_SendCommand(AT91C_SET_BLOCKLEN_CMD, length) ); + return( AT91F_MCI_SendCommand(SET_BLOCKLEN_CMD, length) ); } #if MMC_SUPPORT @@ -380,7 +380,7 @@ unsigned int response =0x0; while(1) { - response = AT91F_MCI_SendCommand(AT91C_MMC_SEND_OP_COND_CMD, + response = AT91F_MCI_SendCommand(MMC_SEND_OP_COND_CMD, AT91C_MMC_HOST_VOLTAGE_RANGE); if (response != AT91C_CMD_SEND_OK) return AT91C_INIT_ERROR; @@ -400,7 +400,7 @@ int Nb_Cards_Found=-1; while (1) { - if(AT91F_MCI_SendCommand(AT91C_MMC_ALL_SEND_CID_CMD, + if(AT91F_MCI_SendCommand(MMC_ALL_SEND_CID_CMD, AT91C_NO_ARGUMENT) != AT91C_CMD_SEND_OK) return Nb_Cards_Found; else { @@ -411,7 +411,7 @@ pMCI_Device->pMCI_DeviceFeatures[Nb_Cards_Found].Card_Inserted = AT91C_MMC_CARD_INSERTED; if (AT91F_MCI_SendCommand( - AT91C_MMC_SET_RELATIVE_ADDR_CMD, + MMC_SET_RELATIVE_ADDR_CMD, (Nb_Cards_Found + AT91C_FIRST_RCA) << 16) != AT91C_CMD_SEND_OK) return AT91C_CMD_SEND_ERROR; @@ -434,7 +434,7 @@ AT91PS_MciDeviceFeatures f; //* Resets all MMC Cards in Idle state - AT91F_MCI_SendCommand(AT91C_MMC_GO_IDLE_STATE_CMD, AT91C_NO_ARGUMENT); + AT91F_MCI_SendCommand(MMC_GO_IDLE_STATE_CMD, AT91C_NO_ARGUMENT); if (AT91F_MCI_MMC_GetAllOCR(pMCI_Device) == AT91C_INIT_ERROR) return AT91C_INIT_ERROR; @@ -492,7 +492,7 @@ while( (response & AT91C_CARD_POWER_UP_BUSY) != AT91C_CARD_POWER_UP_BUSY ) { response = AT91F_MCI_SDCard_SendAppCommand(pMCI_Device, - AT91C_SDCARD_APP_OP_COND_CMD, + SDCARD_APP_OP_COND_CMD, AT91C_MMC_HOST_VOLTAGE_RANGE); if (response != AT91C_CMD_SEND_OK) return AT91C_INIT_ERROR; @@ -509,7 +509,7 @@ static AT91S_MCIDeviceStatus AT91F_MCI_SDCard_GetCID(unsigned int *response) { - if (AT91F_MCI_SendCommand(AT91C_ALL_SEND_CID_CMD, + if (AT91F_MCI_SendCommand(ALL_SEND_CID_CMD, AT91C_NO_ARGUMENT) != AT91C_CMD_SEND_OK) return AT91C_CMD_SEND_ERROR; @@ -537,7 +537,7 @@ while((ret_value > 0) && ((ret_value & AT91C_SR_READY_FOR_DATA) == 0)); // Select Card - AT91F_MCI_SendCommand(AT91C_SEL_DESEL_CARD_CMD, + AT91F_MCI_SendCommand(SEL_DESEL_CARD_CMD, (pMCI_Device->pMCI_DeviceFeatures->Relative_Card_Address)<<16); // Set bus width for Sdcard @@ -546,7 +546,8 @@ else bus_width = AT91C_BUS_WIDTH_1BIT; - if (AT91F_MCI_SDCard_SendAppCommand(pMCI_Device,AT91C_SDCARD_SET_BUS_WIDTH_CMD,bus_width) != AT91C_CMD_SEND_OK) + if (AT91F_MCI_SDCard_SendAppCommand(pMCI_Device, + SDCARD_SET_BUS_WIDTH_CMD,bus_width) != AT91C_CMD_SEND_OK) return AT91C_CMD_SEND_ERROR; return AT91C_CMD_SEND_OK; @@ -563,7 +564,7 @@ unsigned int mult,blocknr; AT91PS_MciDeviceFeatures f; - AT91F_MCI_SendCommand(AT91C_GO_IDLE_STATE_CMD, AT91C_NO_ARGUMENT); + AT91F_MCI_SendCommand(GO_IDLE_STATE_CMD, AT91C_NO_ARGUMENT); if (AT91F_MCI_SDCard_GetOCR(pMCI_Device) == AT91C_INIT_ERROR) return AT91C_INIT_ERROR; @@ -572,7 +573,7 @@ if (AT91F_MCI_SDCard_GetCID(tab_response) != AT91C_CMD_SEND_OK) return AT91C_INIT_ERROR; f->Card_Inserted = AT91C_SD_CARD_INSERTED; - if (AT91F_MCI_SendCommand(AT91C_SET_RELATIVE_ADDR_CMD, 0) != + if (AT91F_MCI_SendCommand(SET_RELATIVE_ADDR_CMD, 0) != AT91C_CMD_SEND_OK) return AT91C_INIT_ERROR; f->Relative_Card_Address = (AT91C_BASE_MCI->MCI_RSPR[0] >> 16); ==== //depot/projects/arm/src/sys/boot/arm/at91/libat91/mci_device.h#7 (text+ko) ==== @@ -123,6 +123,22 @@ #include +///////////////////////////////////////////////////////////////////////////////////////////////////// +// Functions returnals +///////////////////////////////////////////////////////////////////////////////////////////////////// +#define AT91C_CMD_SEND_OK 0 // Command ok +#define AT91C_CMD_SEND_ERROR -1 // Command failed +#define AT91C_INIT_OK 2 // Init Successfull +#define AT91C_INIT_ERROR 3 // Init Failed +#define AT91C_READ_OK 4 // Read Successfull +#define AT91C_READ_ERROR 5 // Read Failed +#define AT91C_WRITE_OK 6 // Write Successfull +#define AT91C_WRITE_ERROR 7 // Write Failed +#define AT91C_ERASE_OK 8 // Erase Successfull +#define AT91C_ERASE_ERROR 9 // Erase Failed +#define AT91C_CARD_SELECTED_OK 10 // Card Selection Successfull +#define AT91C_CARD_SELECTED_ERROR 11 // Card Selection Failed + #define AT91C_MCI_SR_ERROR (AT91C_MCI_UNRE | AT91C_MCI_OVRE | AT91C_MCI_DTOE | \ AT91C_MCI_DCRCE | AT91C_MCI_RTOE | AT91C_MCI_RENDE | AT91C_MCI_RCRCE | \ AT91C_MCI_RDIRE | AT91C_MCI_RINDE) ==== //depot/projects/arm/src/sys/dev/mmc/mmcreg.h#3 (text+ko) ==== @@ -107,159 +107,143 @@ /////////////////////////////////////////////////////////////////////////////// // MCI_CMD Register Value /////////////////////////////////////////////////////////////////////////////// -#define AT91C_POWER_ON_INIT \ +#define POWER_ON_INIT \ (0 | MMC_TRCMD_NO | MMC_SPCMD_INIT | MMC_OPDCMD) ///////////////////////////////////////////////////////////////// // Class 0 & 1 commands: Basic commands and Read Stream commands ///////////////////////////////////////////////////////////////// -#define AT91C_GO_IDLE_STATE_CMD \ +#define GO_IDLE_STATE_CMD \ (0 | MMC_TRCMD_NO | MMC_SPCMD_NONE ) -#define AT91C_MMC_GO_IDLE_STATE_CMD \ +#define MMC_GO_IDLE_STATE_CMD \ (0 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_OPDCMD) -#define AT91C_MMC_SEND_OP_COND_CMD \ +#define MMC_SEND_OP_COND_CMD \ (1 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_48 | \ MMC_OPDCMD) -#define AT91C_ALL_SEND_CID_CMD \ +#define ALL_SEND_CID_CMD \ (2 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_136) -#define AT91C_MMC_ALL_SEND_CID_CMD \ +#define MMC_ALL_SEND_CID_CMD \ (2 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_136 | \ MMC_OPDCMD) -#define AT91C_SET_RELATIVE_ADDR_CMD \ +#define SET_RELATIVE_ADDR_CMD \ (3 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_48 | \ MMC_MAXLAT) -#define AT91C_MMC_SET_RELATIVE_ADDR_CMD \ +#define MMC_SET_RELATIVE_ADDR_CMD \ (3 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_48 | \ MMC_MAXLAT | MMC_OPDCMD) -#define AT91C_SET_DSR_CMD \ +#define SET_DSR_CMD \ (4 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_NO | \ MMC_MAXLAT) // no tested -#define AT91C_SEL_DESEL_CARD_CMD \ +#define SEL_DESEL_CARD_CMD \ (7 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_48 | \ MMC_MAXLAT) -#define AT91C_SEND_CSD_CMD \ +#define SEND_CSD_CMD \ (9 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_136 | \ MMC_MAXLAT) -#define AT91C_SEND_CID_CMD \ +#define SEND_CID_CMD \ (10 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_136 | \ MMC_MAXLAT) -#define AT91C_MMC_READ_DAT_UNTIL_STOP_CMD \ +#define MMC_READ_DAT_UNTIL_STOP_CMD \ (11 | MMC_TRTYP_STREAM | MMC_SPCMD_NONE | \ MMC_RSPTYP_48 | MMC_TRDIR | MMC_TRCMD_START | \ MMC_MAXLAT) -#define AT91C_STOP_TRANSMISSION_CMD \ +#define STOP_TRANSMISSION_CMD \ (12 | MMC_TRCMD_STOP | MMC_SPCMD_NONE | MMC_RSPTYP_48 | \ MMC_MAXLAT) -#define AT91C_STOP_TRANSMISSION_SYNC_CMD \ +#define STOP_TRANSMISSION_SYNC_CMD \ (12 | MMC_TRCMD_STOP | MMC_SPCMD_SYNC | MMC_RSPTYP_48 | \ MMC_MAXLAT) -#define AT91C_SEND_STATUS_CMD \ +#define SEND_STATUS_CMD \ (13 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_48 | \ MMC_MAXLAT) -#define AT91C_GO_INACTIVE_STATE_CMD \ +#define GO_INACTIVE_STATE_CMD \ (15 | MMC_RSPTYP_NO) //*------------------------------------------------ //* Class 2 commands: Block oriented Read commands //*------------------------------------------------ -#define AT91C_SET_BLOCKLEN_CMD (16 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_MAXLAT ) -#define AT91C_READ_SINGLE_BLOCK_CMD (17 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_START | MMC_TRTYP_BLOCK | MMC_TRDIR | MMC_MAXLAT) -#define AT91C_READ_MULTIPLE_BLOCK_CMD (18 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_START | MMC_TRTYP_MULTIPLE | MMC_TRDIR | MMC_MAXLAT) +#define SET_BLOCKLEN_CMD (16 | MMC_TRCMD_NO | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_MAXLAT ) +#define READ_SINGLE_BLOCK_CMD (17 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_START | MMC_TRTYP_BLOCK | MMC_TRDIR | MMC_MAXLAT) +#define READ_MULTIPLE_BLOCK_CMD (18 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_START | MMC_TRTYP_MULTIPLE | MMC_TRDIR | MMC_MAXLAT) //*-------------------------------------------- //* Class 3 commands: Sequential write commands //*-------------------------------------------- -#define AT91C_MMC_WRITE_DAT_UNTIL_STOP_CMD (20 | MMC_TRTYP_STREAM| MMC_SPCMD_NONE | MMC_RSPTYP_48 & ~(MMC_TRDIR) | MMC_TRCMD_START | MMC_MAXLAT ) // MMC +#define MMC_WRITE_DAT_UNTIL_STOP_CMD (20 | MMC_TRTYP_STREAM| MMC_SPCMD_NONE | MMC_RSPTYP_48 & ~(MMC_TRDIR) | MMC_TRCMD_START | MMC_MAXLAT ) // MMC //*------------------------------------------------ //* Class 4 commands: Block oriented write commands //*------------------------------------------------ -#define AT91C_WRITE_BLOCK_CMD (24 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_START | (MMC_TRTYP_BLOCK & ~(MMC_TRDIR)) | MMC_MAXLAT) -#define AT91C_WRITE_MULTIPLE_BLOCK_CMD (25 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_START | (MMC_TRTYP_MULTIPLE & ~(MMC_TRDIR)) | MMC_MAXLAT) -#define AT91C_PROGRAM_CSD_CMD (27 | MMC_RSPTYP_48 ) +#define WRITE_BLOCK_CMD (24 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_START | (MMC_TRTYP_BLOCK & ~(MMC_TRDIR)) | MMC_MAXLAT) +#define WRITE_MULTIPLE_BLOCK_CMD (25 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_START | (MMC_TRTYP_MULTIPLE & ~(MMC_TRDIR)) | MMC_MAXLAT) +#define PROGRAM_CSD_CMD (27 | MMC_RSPTYP_48 ) //*---------------------------------------- //* Class 6 commands: Group Write protect //*---------------------------------------- -#define AT91C_SET_WRITE_PROT_CMD (28 | MMC_RSPTYP_48 ) -#define AT91C_CLR_WRITE_PROT_CMD (29 | MMC_RSPTYP_48 ) -#define AT91C_SEND_WRITE_PROT_CMD (30 | MMC_RSPTYP_48 ) +#define SET_WRITE_PROT_CMD (28 | MMC_RSPTYP_48 ) +#define CLR_WRITE_PROT_CMD (29 | MMC_RSPTYP_48 ) +#define SEND_WRITE_PROT_CMD (30 | MMC_RSPTYP_48 ) //*---------------------------------------- //* Class 5 commands: Erase commands //*---------------------------------------- -#define AT91C_TAG_SECTOR_START_CMD (32 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_TAG_SECTOR_END_CMD (33 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_MMC_UNTAG_SECTOR_CMD (34 | MMC_RSPTYP_48 ) -#define AT91C_MMC_TAG_ERASE_GROUP_START_CMD (35 | MMC_RSPTYP_48 ) -#define AT91C_MMC_TAG_ERASE_GROUP_END_CMD (36 | MMC_RSPTYP_48 ) -#define AT91C_MMC_UNTAG_ERASE_GROUP_CMD (37 | MMC_RSPTYP_48 ) -#define AT91C_ERASE_CMD (38 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT ) +#define TAG_SECTOR_START_CMD (32 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define TAG_SECTOR_END_CMD (33 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define MMC_UNTAG_SECTOR_CMD (34 | MMC_RSPTYP_48 ) +#define MMC_TAG_ERASE_GROUP_START_CMD (35 | MMC_RSPTYP_48 ) +#define MMC_TAG_ERASE_GROUP_END_CMD (36 | MMC_RSPTYP_48 ) +#define MMC_UNTAG_ERASE_GROUP_CMD (37 | MMC_RSPTYP_48 ) +#define ERASE_CMD (38 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT ) //*---------------------------------------- //* Class 7 commands: Lock commands //*---------------------------------------- -#define AT91C_LOCK_UNLOCK (42 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) // no tested +#define LOCK_UNLOCK (42 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) // no tested //*----------------------------------------------- // Class 8 commands: Application specific commands //*----------------------------------------------- -#define AT91C_APP_CMD (55 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_GEN_CMD (56 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) // no tested +#define APP_CMD (55 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define GEN_CMD (56 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) // no tested -#define AT91C_SDCARD_SET_BUS_WIDTH_CMD (6 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_SDCARD_STATUS_CMD (13 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_SDCARD_SEND_NUM_WR_BLOCKS_CMD (22 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_SDCARD_SET_WR_BLK_ERASE_COUNT_CMD (23 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_SDCARD_APP_OP_COND_CMD (41 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO ) -#define AT91C_SDCARD_SET_CLR_CARD_DETECT_CMD (42 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_SDCARD_SEND_SCR_CMD (51 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define SDCARD_SET_BUS_WIDTH_CMD (6 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define SDCARD_STATUS_CMD (13 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define SDCARD_SEND_NUM_WR_BLOCKS_CMD (22 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define SDCARD_SET_WR_BLK_ERASE_COUNT_CMD (23 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define SDCARD_APP_OP_COND_CMD (41 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO ) +#define SDCARD_SET_CLR_CARD_DETECT_CMD (42 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) +#define SDCARD_SEND_SCR_CMD (51 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) -#define AT91C_SDCARD_APP_ALL_CMD (AT91C_SDCARD_SET_BUS_WIDTH_CMD +\ - AT91C_SDCARD_STATUS_CMD +\ - AT91C_SDCARD_SEND_NUM_WR_BLOCKS_CMD +\ - AT91C_SDCARD_SET_WR_BLK_ERASE_COUNT_CMD +\ - AT91C_SDCARD_APP_OP_COND_CMD +\ - AT91C_SDCARD_SET_CLR_CARD_DETECT_CMD +\ - AT91C_SDCARD_SEND_SCR_CMD) +#define SDCARD_APP_ALL_CMD (SDCARD_SET_BUS_WIDTH_CMD +\ + SDCARD_STATUS_CMD +\ + SDCARD_SEND_NUM_WR_BLOCKS_CMD +\ + SDCARD_SET_WR_BLK_ERASE_COUNT_CMD +\ + SDCARD_APP_OP_COND_CMD +\ + SDCARD_SET_CLR_CARD_DETECT_CMD +\ + SDCARD_SEND_SCR_CMD) //*---------------------------------------- //* Class 9 commands: IO Mode commands //*---------------------------------------- -#define AT91C_MMC_FAST_IO_CMD (39 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_MAXLAT) -#define AT91C_MMC_GO_IRQ_STATE_CMD (40 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) - -///////////////////////////////////////////////////////////////////////////////////////////////////// -// Functions returnals -///////////////////////////////////////////////////////////////////////////////////////////////////// -#define AT91C_CMD_SEND_OK 0 // Command ok -#define AT91C_CMD_SEND_ERROR -1 // Command failed -#define AT91C_INIT_OK 2 // Init Successfull -#define AT91C_INIT_ERROR 3 // Init Failed -#define AT91C_READ_OK 4 // Read Successfull -#define AT91C_READ_ERROR 5 // Read Failed -#define AT91C_WRITE_OK 6 // Write Successfull -#define AT91C_WRITE_ERROR 7 // Write Failed -#define AT91C_ERASE_OK 8 // Erase Successfull -#define AT91C_ERASE_ERROR 9 // Erase Failed -#define AT91C_CARD_SELECTED_OK 10 // Card Selection Successfull -#define AT91C_CARD_SELECTED_ERROR 11 // Card Selection Failed +#define MMC_FAST_IO_CMD (39 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_MAXLAT) +#define MMC_GO_IRQ_STATE_CMD (40 | MMC_SPCMD_NONE | MMC_RSPTYP_48 | MMC_TRCMD_NO | MMC_MAXLAT) //////////////////////////////////////////////////////////////////////////////// // OCR Register