Main Page | Modules | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals | Related Pages | Examples

Low Level MMC Interface
[Block Devices]

Collaboration diagram for Low Level MMC Interface:


Detailed Description

Bit banging SPI for MMC.


Data Structures

struct  _MMCDCB
 Private data of NPL card interface. More...

Defines

#define SPI0_CS_BIT   6
 Port bit for SPI chip select.
#define SPI0_CLK_BIT   4
 Port bit for SPI clock.
#define SPI0_MOSI_BIT   5
 Port bit for SPI MOSI line.
#define SPI0_MISO_BIT   3
 Port bit for SPI MISO line.
#define MMC0_CLR_BIT(n)   outr(SPI0_SOD_REG, inr(SPI0_SOD_REG) & ~_BV(n))
#define MMC0_SET_BIT(n)   outr(SPI0_SOD_REG, inr(SPI0_SOD_REG) | _BV(n))
#define MMC0_IS_BIT_SET(n)   ((inr(SPI0_SOD_REG) & _BV(n)) == _BV(n))
#define MMC0_TST_BIT(n)   ((inr(SPI0_PDS_REG) & _BV(n)) == _BV(n))
 Query status of a specified MMC input.

Typedefs

typedef _MMCDCB MMCDCB
 Private data of NPL card interface.

Functions

int SbiMmCard0Avail (void)
 Check if card is available in slot 0.
int SbiMmCard0WrProt (void)
 Check if card in slot 0 is write protected.

Variables

NUTDEVICE devSbiMmc0
 Multimedia card device information structure.


Function Documentation

int SbiMmCard0Avail void   ) 
 

Check if card is available in slot 0.

Todo:
Card change should verify the card identifier. Right now any detection of removing and re-inserting a card counts as a card change.
Returns:
0 if no card is detected, 1 if a card is available or 2 if a card change had been detected after the last mount.

int SbiMmCard0WrProt void   ) 
 

Check if card in slot 0 is write protected.

Todo:
Not implemented.
Returns:
Always 0.


Variable Documentation

NUTDEVICE devSbiMmc0
 

Initial value:

 {
    0,                          
    {'M', 'M', 'C', '0', 0, 0, 0, 0, 0}
    ,                           
    0,                          
    0,                          
    0,                          
    &mmc0_ifc,                  
    &mmc0_dcb,                  
    SbiMmcIfcInit,              
    MmCardIOCtl,                
    MmCardBlockRead,            
    MmCardBlockWrite,           

    MmCardBlockWrite_P,         

    MmCardMount,                
    MmCardUnmount,              
    0                           
}
Multimedia card device information structure.

A pointer to this structure must be passed to NutRegisterDevice() to bind this driver to the Nut/OS kernel. An application may then call /verbatim _open("MMC0:", _O_RDWR | _O_BINARY); /endverbatim to mount the first active primary partition with any previously registered file system driver (typically devPhat0).


© 2000-2006 by egnite Software GmbH - visit http://www.ethernut.de/