Micron MT29F NAND driver

Definition at line 1986 of file nand_MT29F_lld.c.

References BIT_USED_TO_POLL, CMD_READ_MODE, CMD_READ_STATUS, NAND_SUCCESS, NAND_TIMEOUT, NUM_OF_TICKS_TO_TIMEOUT, PLATFORM_ReadData(), and PLATFORM_SendCmd().

                            {
   MT_uint8 ret;

   #ifdef TIMEOUT_SUPPORT
      MT_uint32 clock_start = (MT_uint32) clock();
   #endif

   PLATFORM_SendCmd(CMD_READ_STATUS);

   #ifndef TIMEOUT_SUPPORT

      while (BIT_USED_TO_POLL != (BIT_USED_TO_POLL & PLATFORM_ReadData()))
         { /* do nothing */   }

      PLATFORM_SendCmd(CMD_READ_MODE);
      return SUCCESS;

   #else

      while ( (BIT_USED_TO_POLL != (BIT_USED_TO_POLL & PLATFORM_ReadData())) \
            && ((MT_uint32) clock() < (MT_uint32) (clock_start + NUM_OF_TICKS_TO_TIMEOUT)) )
         {  /* do nothing */ }

      /* check exit condition */
      if(clock() >= clock_start + NUM_OF_TICKS_TO_TIMEOUT)
         ret = NAND_TIMEOUT;
      else
         ret = NAND_SUCCESS;

      PLATFORM_SendCmd(CMD_READ_MODE);
      return ret;

   #endif

}