📄 lh7a400_mmc.h
字号:
/***********************************************************************
* $Workfile: lh7a400_mmc.h $
* $Revision: 1.0 $
* $Author: WellsK $
* $Date: Jun 09 2003 14:31:34 $
*
* Project: LH7A400 MMC definitions
*
* Description:
* This file contains the structure definitions and manifest
* constants for the LH7A400 component:
* Multi-Media Card Controller
*
* Revision History:
* $Log: //smaicnt2/pvcs/VM/sharpmcu/archives/sharpmcu/software/csps/lh7a400/include/lh7a400_mmc.h-arc $
*
* Rev 1.0 Jun 09 2003 14:31:34 WellsK
* Initial revision.
*
*
***********************************************************************
* SHARP MICROELECTRONICS OF THE AMERICAS MAKES NO REPRESENTATION
* OR WARRANTIES WITH RESPECT TO THE PERFORMANCE OF THIS SOFTWARE,
* AND SPECIFICALLY DISCLAIMS ANY RESPONSIBILITY FOR ANY DAMAGES,
* SPECIAL OR CONSEQUENTIAL, CONNECTED WITH THE USE OF THIS SOFTWARE.
*
* SHARP MICROELECTRONICS OF THE AMERICAS PROVIDES THIS SOFTWARE SOLELY
* FOR THE PURPOSE OF SOFTWARE DEVELOPMENT INCORPORATING THE USE OF A
* SHARP MICROCONTROLLER OR SYSTEM-ON-CHIP PRODUCT. USE OF THIS SOURCE
* FILE IMPLIES ACCEPTANCE OF THESE CONDITIONS.
*
* COPYRIGHT (C) 2001 SHARP MICROELECTRONICS OF THE AMERICAS, INC.
* CAMAS, WA
**********************************************************************/
#ifndef LH7A400_MMC_H
#define LH7A400_MMC_H
#include "SMA_types.h"
//#include "abl_types.h"
//#include "lh7a400_chip.h"
/***********************************************************************
* MMC Module Register Structure
**********************************************************************/
/* MMC Module Register Structure */
typedef struct
{
volatile UNS_32 clock_control; /* MMC Clock control register */
volatile UNS_32 status; /* MMC Controller status register */
volatile UNS_32 clock_rate; /* MMC clock divider register */
volatile UNS_32 clock_prediv; /* MMC clock pre-divider register*/
volatile UNS_32 spi; /* MMC SPI mode control register */
volatile UNS_32 cmd_control; /* MMC Command control register */
volatile UNS_32 response_to; /* MMC Response timeout register */
volatile UNS_32 read_to; /* MMC Read timeout register */
volatile UNS_32 block_len; /* MMC Block length register */
volatile UNS_32 block_count; /* MMC Block count register */
volatile UNS_32 int_status; /* MMC Interrupt status register */
volatile UNS_32 int_clear; /* MMC Interrupt clear register */
volatile UNS_32 reserved1;
volatile UNS_32 int_mask; /* MMC Interrupt enable register */
volatile UNS_32 command; /* MMC Command Number register */
volatile UNS_32 argument; /* MMC Command Argument register */
volatile UNS_32 response_fifo; /* MMC Response FIFO register */
volatile UNS_32 reserved2;
volatile UNS_32 data_fifo; /* MMC Data FIFO register */
volatile UNS_32 buf_part_full; /* MMC Partial buf for stream mode */
} MMCREGS;
/***********************************************************************
* MMC clock start/stop register definitions
**********************************************************************/
/* MMC clock start/stop register stop clock bit */
#define MMC_CTRL_STOP_CLK 0x00000001
/* MMC clock start/stop register start clock bit */
#define MMC_CTRL_START_CLK 0x00000002
/***********************************************************************
* MMC status register definitions
**********************************************************************/
/* MMC status register read timeout bit */
#define MMC_STATUS_READ_TO 0x00000001
/* MMC status register response timeout bit */
#define MMC_STATUS_RESPONSE_TO 0x00000002
/* MMC status register CRC write error bit */
#define MMC_STATUS_CRC_ERROR_WRITE 0x00000004
/* MMC status register CRC read error bit */
#define MMC_STATUS_CRC_ERROR_READ 0x00000008
/* MMC status register SPI read error token bit */
#define MMC_STATUS_SPI_READ_ERROR_TOKEN 0x00000010
/* MMC status register response CRC error bit */
#define MMC_STATUS_CRC_ERROR_RESPONSE 0x00000020
/* MMC status register FIFO empty bit */
#define MMC_STATUS_FIFO_EMPTY 0x00000040
/* MMC status register FIFO full bit */
#define MMC_STATUS_FIFO_FULL 0x00000080
/* MMC status register clock enabled bit */
#define MMC_STATUS_CLOCK_ENABLED 0x00000100
/* MMC status register data transfer done bit */
#define MMC_STATUS_DATA_TRANSFER_DONE 0x00000800
/* MMC status register program done bit */
#define MMC_STATUS_PROGRAM_DONE 0x00001000
/* MMC status register command response complete bit */
#define MMC_STATUS_END_COMMAND_RESPONSE 0x00002000
#define MMC_CMD_RESPONSE_FORMAT(n) _SBF(0, (n & 0x3))
/***********************************************************************
* MMC clock rate register definitions
**********************************************************************/
/* MMC clock rate register load macro */
#define MMC_CLOCK_RATE(n) _SBF(0, ((n) & 0x7))
/* MMC clock rate register divide by 1 load value */
#define MMC_CLOCK_DIV1 0
/* MMC clock rate register divide by 2 load value */
#define MMC_CLOCK_DIV2 1
/* MMC clock rate register divide by 4 load value */
#define MMC_CLOCK_DIV4 2
/* MMC clock rate register divide by 8 load value */
#define MMC_CLOCK_DIV8 3
/* MMC clock rate register divide by 16 load value */
#define MMC_CLOCK_DIV16 4
/* MMC clock rate register divide by 32 load value */
#define MMC_CLOCK_DIV32 5
/* MMC clock rate register divide by 64 load value */
#define MMC_CLOCK_DIV64 6
/***********************************************************************
* MMC clock predivide register definitions
**********************************************************************/
/* MMC clock predivide register load macro */
#define MMC_PREDIV(n) _SBF(0, ((n) & 0xF))
/* MMC clock predivide MMC clock gate bit */
#define MMC_PREDIV_EN 0x00000010
/* MMC clock predivide APB read enable bit */
#define MMC_PREDIV_APB_RD_EN 0x00000020
/***********************************************************************
* MMC SPI register definitions
**********************************************************************/
/* MMC SPI register SPI mode enable bit */
#define MMC_SPI_EN 0x00000001
/* MMC SPI register CRC mode enable bit */
#define MMC_SPI_CRC_ON 0x00000002
/* MMC SPI register SPI chip select enable bit */
#define MMC_SPI_CS_EN 0x00000004
/* MMC SPI register SPI chip select address 1 bit */
#define MMC_SPI_CS_ADDR 0x00000008
/***********************************************************************
* MMC command/data register definitions
**********************************************************************/
/* MMC command/data register response format none value */
#define MMC_CMD_RESPONSE_NONE _SBF(0, ((n) & 0x0))
/* MMC command/data register response format R1 value */
#define MMC_CMD_RESPONSE_R1 _SBF(0, ((n) & 0x1))
/* MMC command/data register response format R2 value */
#define MMC_CMD_RESPONSE_R2 _SBF(0, ((n) & 0x2))
/* MMC command/data register response format R3 value */
#define MMC_CMD_RESPONSE_R3 _SBF(0, ((n) & 0x3))
/* MMC command/data register data enable bit */
#define MMC_CMD_DATA_EN 0x00000004
/* MMC command/data register write enable bit */
#define MMC_CMD_WRITE 0x00000008
/* MMC command/data register stream enable bit */
#define MMC_CMD_STREAM 0x00000010
/* MMC command/data register busy signal expectation bit */
#define MMC_CMD_BUSY 0x00000020
/* MMC command/data register initialize enable bit */
#define MMC_CMD_INITIALIZE 0x00000040
/***********************************************************************
* MMC response timeout register definitions
**********************************************************************/
/* MMC response timeout register load macro */
#define MMC_RESPONSE_TO(n) ((n) & 0x0000007F)
/***********************************************************************
* MMC read timeout register definitions
**********************************************************************/
/* MMC read timeout register load macro */
#define MMC_READ_TO(n) ((n) & 0x0000FFFF)
/***********************************************************************
* MMC block length register definitions
**********************************************************************/
/* MMC block length register load macro */
#define MMC_BLOCK_LEN(n) ((n) & 0x000003FF)
/***********************************************************************
* MMC block count register definitions
**********************************************************************/
/* MMC block count register load macro */
#define MMC_BLOCK_COUNT(n) ((n) & 0x0000FFFF)
/***********************************************************************
* MMC interrupt register definitions
**********************************************************************/
/* MMC interrupt register data transfer done bit */
#define MMC_INT_DATA_TRANSFER_DONE 0x00000001
/* MMC interrupt register program done bit */
#define MMC_INT_PROGRAM_DONE 0x00000002
/* MMC interrupt register end command bit */
#define MMC_INT_END_CMD_RESPONSE 0x00000004
/* MMC interrupt register buffer ready bit */
#define MMC_INT_BUFFER_READY 0x00000008
/* MMC interrupt register bus clock stopped bit */
#define MMC_INT_CLOCK_DISABLED 0x00000010
/***********************************************************************
* MMC command number register definitions
**********************************************************************/
/* MMC command number register load macro */
#define MMC_CMD_NUM(n) _SBF(0, ((n) & 0x3F))
/***********************************************************************
* MMC buffer partially full register definitions
**********************************************************************/
/* MMC buffer partially full register partial FIFO written bit */
#define MMC_BUF_PART_FULL 0x00000001
/* Macro pointing to interrupt controller registers */
//#define MMC ((MMC_REGS_T *)(MMC_BASE))
#endif /* LH7A400_MMC_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -