Nut/OS  4.10.3
API Reference
at91_mci.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

MMC Control Register

#define MCI_CR_OFF   0x00000000
 Control register offset.
#define MCI_CR   (MCI_BASE + MCI_CR_OFF)
 Control register address.
#define MCI_MCIEN   0x00000001
 Interface enable.
#define MCI_MCIDIS   0x00000002
 Interface disable.
#define MCI_PWSEN   0x00000004
 Power save mode enable.
#define MCI_PWSDIS   0x00000008
 Power save mode disable.
#define MCI_SWRST   0x00000080
 Software reset.

MMC Mode Register

#define MCI_MR_OFF   0x00000004
 Mode register offset.
#define MCI_MR   (MCI_BASE + MCI_MR_OFF)
 Mode register address.
#define MCI_CLKDIV   0x000000FF
 Clock divider mask.
#define MCI_CLKDIV_LSB   0
 Clock divider LSB.
#define MCI_PWSDIV   0x00000700
 Power saving divider mask.
#define MCI_PWSDIV_LSB   8
 Power saving divider LSB.
#define MCI_RDPROOF   0x00000800
 Enable read proof.
#define MCI_WRPROOF   0x00001000
 Enable write proof.
#define MCI_PDCFBYTE   0x00002000
 Force PDC byte transfer.
#define MCI_PDCPADV   0x00004000
 PDC padding value.
#define MCI_PDCMODE   0x00008000
 PDC-oriented mode.
#define MCI_BLKLEN   0xFFFF0000
 Data block length mask.
#define MCI_BLKLEN_LSB   16
 Data block length LSB.

MMC Data Timeout Register

#define MCI_DTOR_OFF   0x00000008
 Data timeout register offset.
#define MCI_DTOR   (MCI_BASE + MCI_DTOR_OFF)
 Data timeout register address.
#define MCI_DTOCYC   0x0000000F
 Data timeout cycle number mask.
#define MCI_DTOCYC_LSB   0
 Data timeout cycle number LSB.
#define MCI_DTOMUL   0x00000070
 Data timeout multiplier mask.
#define MCI_DTOMUL_1   0x00000000
 Data timeout multiplier 1.
#define MCI_DTOMUL_16   0x00000010
 Data timeout multiplier 16.
#define MCI_DTOMUL_128   0x00000020
 Data timeout multiplier 128.
#define MCI_DTOMUL_256   0x00000030
 Data timeout multiplier 256.
#define MCI_DTOMUL_1K   0x00000040
 Data timeout multiplier 1024.
#define MCI_DTOMUL_4K   0x00000050
 Data timeout multiplier 4096.
#define MCI_DTOMUL_64K   0x00000060
 Data timeout multiplier 65536.
#define MCI_DTOMUL_1M   0x00000070
 Data timeout multiplier 1048576.

MMC SDCard/SDIO Register

#define MCI_SDCR_OFF   0x0000000C
 SDC/SDIO register offset.
#define MCI_SDCR   (MCI_BASE + MCI_SDCR_OFF)
 SDC/SDIO register address.
#define MCI_SDCSEL   0x00000003
 SDC/SDIO slot mask.
#define MCI_SDCSEL_SLOTA   0x00000000
 Slot A selected.
#define MCI_SDCSEL_SLOTB   0x00000001
 Slot B selected.
#define MCI_SDCBUS   0x00000080
 SDC/SDIO 4-bit bus.

MMC Argument Register

#define MCI_ARGR_OFF   0x00000010
 Argument register offset.
#define MCI_ARGR   (MCI_BASE + MCI_ARGR_OFF)
 Argument register address.

MMC Command Register

#define MCI_CMDR_OFF   0x00000014
 Command register offset.
#define MCI_CMDR   (MCI_BASE + MCI_CMDR_OFF)
 Command register address.
#define MCI_CMDNB   0x0000003F
 Command number mask.
#define MCI_CMDNB_LSB   0
 Command number LSB.
#define MCI_RSPTYP   0x000000C0
 Response type mask.
#define MCI_RSPTYP_NONE   0x00000000
 No response.
#define MCI_RSPTYP_48   0x00000040
 48-bit response.
#define MCI_RSPTYP_136   0x00000080
 136-bit response.
#define MCI_SPCMD   0x00000700
 Special command mask.
#define MCI_SPCMD_NONE   0x00000000
 Not a special command.
#define MCI_SPCMD_INIT   0x00000100
 Initialization command.
#define MCI_SPCMD_SYNC   0x00000200
 Synchronized command.
#define MCI_SPCMD_ICMD   0x00000400
 Interrupt command.
#define MCI_SPCMD_IRSP   0x00000500
 Interrupt response.
#define MCI_OPDCMD   0x00000800
 Open drain command.
#define MCI_OPCMD   MCI_OPDCMD
 Open drain command. Deprecated spelling.
#define MCI_MAXLAT   0x00001000
 Maximum latency for command to response.
#define MCI_TRCMD   0x00030000
 Transfer command mask.
#define MCI_TRCMD_NONE   0x00000000
 No data transfer.
#define MCI_TRCMD_START   0x00010000
 Start data transfer.
#define MCI_TRCMD_STOP   0x00020000
 Stop data transfer.
#define MCI_TRDIR   0x00040000
 Read transfer.
#define MCI_TRTYP   0x00380000
 Transfer type mask.
#define MCI_TRTYP_MMC_SBLK   0x00000000
 MMC/SDC single block transfer.
#define MCI_TRTYP_MMC_MBLK   0x00080000
 MMC/SDC multiple block transfer.
#define MCI_TRTYP_MMC_STREAM   0x00100000
 MMC stream transfer.
#define MCI_TRTYP_SDIO_BYTE   0x00200000
 SDIO byte transfer.
#define MCI_TRTYP_SDIO_BLK   0x00280000
 SDIO block transfer.
#define MCI_IOSPCMD   0x03000000
 Specila SDIO command mask.
#define MCI_IOSPCMD_NONE   0x00000000
 Not a special SDIO command.
#define MCI_IOSPCMD_SUSPEND   0x01000000
 SDIO suspend command.
#define MCI_IOSPCMD_RESUME   0x02000000
 SDIO resume command.

MMC Block Register

#define MCI_BLKR_OFF   0x00000018
 Block register offset.
#define MCI_BLKR   (MCI_BASE + MCI_BLKR_OFF)
 Block register address.
#define MCI_BCNT   0x0000FFFF
 MMC/SDIO block count or SDIO byte count mask.
#define MCI_BCNT_LSB   0
 MMC/SDIO block count or SDIO byte count LSB.

MMC Response Register

#define MCI_RSPR_OFF   0x00000020
 Response register offset.
#define MCI_RSPR   (MCI_BASE + MCI_RSPR_OFF)
 Response register address.

MMC Receive Data Register

#define MCI_RDR_OFF   0x00000030
 Receive data register offset.
#define MCI_RDR   (MCI_BASE + MCI_RDR_OFF)
 Receive data register address.

MMC Transmit Data Register

#define MCI_TDR_OFF   0x00000034
 Transmit data register offset.
#define MCI_TDR   (MCI_BASE + MCI_TDR_OFF)
 Transmit data register address.

MMC Interrupt and Status Registers

#define MCI_SR_OFF   0x00000040
 Status register offset.
#define MCI_SR   (MCI_BASE + MCI_SR_OFF)
 Status register address.
#define MCI_IER_OFF   0x00000044
 Enable register offset.
#define MCI_IER   (MCI_BASE + MCI_IER_OFF)
 Enable register address.
#define MCI_IDR_OFF   0x00000048
 Disable register offset.
#define MCI_IDR   (MCI_BASE + MCI_IDR_OFF)
 Disable register address.
#define MCI_IMR_OFF   0x0000004C
 Mask register offset.
#define MCI_IMR   (MCI_BASE + MCI_IMR_OFF)
 Mask register address.
#define MCI_CMDRDY   0x00000001
 Command ready.
#define MCI_RXRDY   0x00000002
 Receiver ready.
#define MCI_TXRDY   0x00000004
 Transmit ready.
#define MCI_BLKE   0x00000008
 Data block ended.
#define MCI_DTIP   0x00000010
 Data transfer in progress.
#define MCI_NOTBUSY   0x00000020
 MCI not busy.
#define MCI_ENDRX   0x00000040
 End of receive buffer.
#define MCI_ENDTX   0x00000080
 End of transmit buffer.
#define MCI_SDIOIRQA   0x00000100
 Undocumented.
#define MCI_SDIOIRQB   0x00000200
 Undocumented.
#define MCI_RXBUFF   0x00004000
 Receive buffer full.
#define MCI_TXBUFE   0x00008000
 Transmit buffer empty.
#define MCI_RINDE   0x00010000
 Response index error.
#define MCI_RDIRE   0x00020000
 Response direction error.
#define MCI_RCRCE   0x00040000
 Response CRC error.
#define MCI_RENDE   0x00080000
 Response end bit error.
#define MCI_RTOE   0x00100000
 Response timeout error.
#define MCI_DCRCE   0x00200000
 Data CRC error.
#define MCI_DTOE   0x00400000
 Date timeout error.
#define MCI_OVRE   0x40000000
 Overrun error.
#define MCI_UNRE   0x80000000
 Underrun error.