⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mmc.c

📁 OMAP1030 处理器的ARM 侧硬件测试代码 OMAP1030 是TI的双核处理器
💻 C
字号:
/*===============================================================================
            TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION           
                                                                             
   Property of Texas Instruments 
   For  Unrestricted  Internal  Use  Only 
   Unauthorized reproduction and/or distribution is strictly prohibited.  
   This product is protected under copyright law and trade secret law 
   as an unpublished work.  
   Created 1999, (C) Copyright 1999 Texas Instruments.  All rights reserved.
   Filename             : mmc.c

   Description          : Source file of Multi Media Card Adapter functions 
				  This file manages 16 bits registers

   Project              : PerseusG4

   Author               : FRANCK FERRIZ
   
   
   FUNCTIONS PROVIDED    :
                         MMC_ReadAllCmdReg         -
                         MMC_ReadAllArgReg1        |
                         MMC_ReadAllArgReg2        |
                         MMC_ReadAllFreqRatioReg   |	
                         MMC_ReadAllAdpStReg       |
                         MMC_ReadAllMaskIrqReg     |
                         MMC_ReadAllBufDtReg       |
                         MMC_ReadAllBufConfReg     |
                         MMC_ReadAllBufAfReg       |
                         MMC_ReadAllBufAeReg       | = for MMC_BASE_ADDR as base adress
                         MMC_ReadAllRespReg1        |
                         MMC_ReadAllRespReg2        |
                         MMC_ReadAllRespReg3        |
                         MMC_ReadAllRespReg4        |
                         MMC_ReadAllRespReg5        |
                         MMC_ReadAllRespReg6        |
                         MMC_ReadAllRespReg7        |
                         MMC_ReadAllRespReg8        | 
                         MMC_SetMmcCommand               |
                         MMC_WaitUntilTimeOut           |
MMC_AllClksCutUnlessMmcAdapterClksWithWakeupAfterIrq-
                         
                                
 
===============================================================================
*/


#include "test.h"
#include "mmc.h"


/*
-------------------------------------------------------------------------
 NAME        : MMC_ReadAllCmdReg        
 DESCRIPTION : read MMC command register
                                                         
-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllCmdReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(CMD_REG_ADDR);
 
  return value;
}



/*
-------------------------------------------------------------------------
  MMC_ReadAllArgReg1        
 DESCRIPTION : read MMC argument register 1

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllArgReg1(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(ARG_REG_1_ADDR);
 
  return value;
}


/*
-------------------------------------------------------------------------
  MMC_ReadAllArgReg2        
 DESCRIPTION : read MMc argument register 2 

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllArgReg2(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(ARG_REG_2_ADDR);
 
  return value;
}


/*
-------------------------------------------------------------------------
  MMC_ReadAllFreqRatioReg        
 DESCRIPTION : read MMC frequency ratio register 

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllFreqRatioReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(FREQ_RATIO_REG_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllAdpStReg        
 DESCRIPTION : read MMC status register

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllAdpStReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(ADP_ST_REG_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllMaskIrqReg        
 DESCRIPTION : read MMC mask interrupt register
 
-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllMaskIrqReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(MASK_IRQ_REG_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllReleaseReg        
 DESCRIPTION : read MMC release register
 
-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllReleaseReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RELEASE_REG_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllBufDtReg        
 DESCRIPTION : read MMC buffer data register 

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllBufDtReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(BUF_DT_REG_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllBufConfReg        
 DESCRIPTION : read MMC buffer configuration register

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllBufConfReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(BUF_CONF_REG_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllBufAfReg         
 DESCRIPTION :read MMC buffer almost full level 

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllBufAfReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(BUF_AF_REG_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllBufAeReg         
 DESCRIPTION : read MMC buffer almost empty register

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllBufAeReg(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(BUF_AE_REG_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllRespReg1
 DESCRIPTION : read MMC response register1

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllRespReg1(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RESP_REG1_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllRespReg2
 DESCRIPTION : read MMC response register2

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllRespReg2(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RESP_REG2_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllRespReg3
 DESCRIPTION : read MMC response register3

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllRespReg3(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RESP_REG3_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllRespReg4         
 DESCRIPTION : read MMC response register4
                                                         
-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllRespReg4(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RESP_REG4_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllRespReg5         
 DESCRIPTION : read MMC response register5
 
-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllRespReg5(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RESP_REG5_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllRespReg6         
 DESCRIPTION : read MMC response register6

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllRespReg6(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RESP_REG6_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllRespReg7    
 DESCRIPTION : read MMC response register7

-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllRespReg7(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RESP_REG7_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
  MMC_ReadAllRespReg8         
 DESCRIPTION : read MMC response register8
                                                          
-------------------------------------------------------------------------
*/
UWORD16  MMC_ReadAllRespReg8(void)
{
  
  UWORD16 value = *(REGISTER_UWORD16*)(RESP_REG8_ADDR);
 
  return value;
}

/*
-------------------------------------------------------------------------
 NAME        : MMC_SetMmcCommand        
 DESCRIPTION : set mmc command with its arguments
                                                        
-------------------------------------------------------------------------
*/
void MMC_SetMmcCommand(UWORD16 mmc_arg_reg_1,UWORD16 mmc_arg_reg_2,UWORD16 CMD_number )
{
  mmc_set_all_arg_reg_1(mmc_arg_reg_1);
  mmc_set_all_arg_reg_2(mmc_arg_reg_2);
  mmc_set_all_cmd_reg(CMD_number);
}

/*
-------------------------------------------------------------------------
 NAME        : MMC_WaitUntilTimeOut        
 DESCRIPTION : MMC_WaitUntilTimeOut
                                                        
-------------------------------------------------------------------------
*/
void MMC_WaitUntilTimeOut(UWORD16 time_out)
{
 UWORD8 i;
 
 i=0;
 while(i++ <= time_out) {/* WAIT */}
}

/*
-------------------------------------------------------------------------
 NAME        : MMC_AllClksCutUnlessMmcAdapterClksWithWakeupAfterIrq        
 DESCRIPTION : MMC_AllClksCutUnlessMmcAdapterClksWithWakeupAfterIrq
                                                        
-------------------------------------------------------------------------
*/

void MMC_AllClksCutUnlessMmcAdapterClksWithWakeupAfterIrq(void)
{
 CLKRST_ConfigIdleModule(TIMARM_MODULE_IDLE, SET_IN_IDLE);
 CLKRST_ConfigIdleModule(LCDARM_MODULE_IDLE, SET_IN_IDLE);
 CLKRST_ConfigIdleModule(PERARM_MODULE_IDLE, SET_NOT_IDLE);
 CLKRST_ConfigIdleModule(XORPARM_MODULE_IDLE, SET_NOT_IDLE);
 CLKRST_ConfigIdleModule(WDTARM_MODULE_IDLE, SET_IN_IDLE);
 CLKRST_SetIdle(IDLE_INT_WKUP);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -