[BACK]Return to sdmmc_spi.c CVS log [TXT][DIR] Up to [local] / funnyos / dev / sdmmc

Diff for /funnyos/dev/sdmmc/sdmmc_spi.c between version 1.2 and 1.3

version 1.2, 2007/12/21 17:45:26 version 1.3, 2007/12/24 15:49:40
Line 62 
Line 62 
         spi_cs_high(ddp->ss_sbhp);          spi_cs_high(ddp->ss_sbhp);
         for (i = 0; i < 9; i++)          for (i = 0; i < 9; i++)
                 spi_transmit(ddp->ss_sbhp, 0xff);                  spi_transmit(ddp->ss_sbhp, 0xff);
         /*  
          * Apply 16 clocks.  
          * XXX deassert CS.  
          */  
 //      for (i = 0; i < 2; i ++)  
 //              spi_transmit(ddp->ss_sbhp, 0xff);  
   
         /*          /*
          * Send CMD0_GO_IDLE_STATE.           * Send CMD0_GO_IDLE_STATE.
Line 77 
Line 71 
   
         resp = spisdmmc_get_response(ddp);          resp = spisdmmc_get_response(ddp);
   
         if (resp != 0) {          if (resp & R1_IN_IDLE_STATE != 1) {
                 printf("spisdmmc_init: CMD0_GO_IDLE_STATE failed with %d\n", resp);                  printf("spisdmmc_init: CMD0_GO_IDLE_STATE failed with %d\n", resp);
   
                 return(-1);                  return(-1);
Line 90 
Line 84 
          * CRC is off so we can set it 0xff.           * CRC is off so we can set it 0xff.
          * XXX send 0xff before.           * XXX send 0xff before.
          */           */
 //      spi_transmit(ddp->ss_sbhp, 0xff);  
         do {          do {
                   spi_cs_high(ddp->ss_sbhp);
                   spi_transmit(ddp->ss_sbhp, 0xff);
   
                   spi_cs_low(ddp->ss_sbhp);
   
                 spisdmmc_send_command(ddp, CMD1_SEND_OP_COND, 0, 0xff);                  spisdmmc_send_command(ddp, CMD1_SEND_OP_COND, 0, 0xff);
                 resp = spisdmmc_get_response(ddp);                  resp = spisdmmc_get_response(ddp);
         } while(resp != 0x00);          } while(resp != 0x00);
Line 109 
Line 107 
   
         spisdmmc_read_cid(ddp, &cid);          spisdmmc_read_cid(ddp, &cid);
         printf("cid.pnm: %s%s%s%s%s\n", cid.cid_pnm[0], cid.cid_pnm[1], cid.cid_pnm[2], cid.cid_pnm[3], cid.cid_pnm[4]);          printf("cid.pnm: %s%s%s%s%s\n", cid.cid_pnm[0], cid.cid_pnm[1], cid.cid_pnm[2], cid.cid_pnm[3], cid.cid_pnm[4]);
   
         return(0);          return(0);
 }  }
   
Line 123 
Line 121 
         /* construct frame */          /* construct frame */
         sdcf = sdmmc_command(cmd, arg, crc);          sdcf = sdmmc_command(cmd, arg, crc);
   
         printf("spisdmmc_send_command: sending cmd %d arg 0x%x crc 0x%x\n", sdcf.sc_cmd & ~0xc0, sdcf.sc_arg, sdcf.sc_crc);  //      printf("spisdmmc_send_command: sending cmd %d arg 0x%x crc 0x%x\n", sdcf.sc_cmd & ~0xc0, sdcf.sc_arg, sdcf.sc_crc);
         /* transmit cmd */          /* transmit cmd */
         spi_transmit(ddp->ss_sbhp, sdcf.sc_cmd);          spi_transmit(ddp->ss_sbhp, sdcf.sc_cmd);
   
Line 135 
Line 133 
         spi_transmit(ddp->ss_sbhp, sdcf.sc_crc);          spi_transmit(ddp->ss_sbhp, sdcf.sc_crc);
   
         /* XXX Apply NCR clock pulses */          /* XXX Apply NCR clock pulses */
 //      spi_transmit(ddp->ss_sbhp, 0xff);          spi_transmit(ddp->ss_sbhp, 0xff);
 }  }
   
   
Line 151 
Line 149 
         for(i = 0; i < 64; i++) {          for(i = 0; i < 64; i++) {
                 resp = spi_transmit(ddp->ss_sbhp, 0xff);                  resp = spi_transmit(ddp->ss_sbhp, 0xff);
   
                 if (resp == 0x00 || resp == 0x01)  //              if (resp == 0 || resp == 1)
                   if (resp != 0xff)
                         return(resp);                          return(resp);
         }          }
 }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

CVSweb