@ -224,9 +224,73 @@ static inline u8 dwmci_readb(struct dwmci_host *host, int reg)
return readb ( host - > ioaddr + reg ) ;
}
# ifdef CONFIG_BLK
/**
* dwmci_setup_cfg ( ) - Set up the configuration for DWMMC
*
* This is used to set up a DWMMC device when you are using CONFIG_BLK .
*
* This should be called from your MMC driver ' s probe ( ) method once you have
* the information required .
*
* Generally your driver will have a platform data structure which holds both
* the configuration ( struct mmc_config ) and the MMC device info ( struct mmc ) .
* For example :
*
* struct rockchip_mmc_plat {
* struct mmc_config cfg ;
* struct mmc mmc ;
* } ;
*
* . . .
*
* Inside U_BOOT_DRIVER ( ) :
* . platdata_auto_alloc_size = sizeof ( struct rockchip_mmc_plat ) ,
*
* To access platform data :
* struct rockchip_mmc_plat * plat = dev_get_platdata ( dev ) ;
*
* See rockchip_dw_mmc . c for an example .
*
* @ cfg : Configuration structure to fill in ( generally & plat - > mmc )
* @ name : Device name ( normally dev - > name )
* @ buswidth : Bus width ( in bits , such as 4 or 8 )
* @ caps : Host capabilities ( MMC_MODE_ . . . )
* @ max_clk : Maximum supported clock speed in HZ ( e . g . 400000 )
* @ min_clk : Minimum supported clock speed in HZ ( e . g . 150000000 )
*/
void dwmci_setup_cfg ( struct mmc_config * cfg , const char * name , int buswidth ,
uint caps , u32 max_clk , u32 min_clk ) ;
/**
* dwmci_bind ( ) - Set up a new MMC block device
*
* This is used to set up a DWMMC block device when you are using CONFIG_BLK .
* It should be called from your driver ' s bind ( ) method .
*
* See rockchip_dw_mmc . c for an example .
*
* @ dev : Device to set up
* @ mmc : Pointer to mmc structure ( normally & plat - > mmc )
* @ cfg : Empty configuration structure ( generally & plat - > cfg ) . This is
* normally all zeroes at this point . The only purpose of passing
* this in is to set mmc - > cfg to it .
* @ return 0 if OK , - ve if the block device could not be created
*/
int dwmci_bind ( struct udevice * dev , struct mmc * mmc , struct mmc_config * cfg ) ;
# else
/**
* add_dwmci ( ) - Add a new DWMMC interface
*
* This is used when you are not using CONFIG_BLK . Convert your driver over !
*
* @ host : DWMMC host structure
* @ max_clk : Maximum supported clock speed in HZ ( e . g . 400000 )
* @ min_clk : Minimum supported clock speed in HZ ( e . g . 150000000 )
* @ return 0 if OK , - ve on error
*/
int add_dwmci ( struct dwmci_host * host , u32 max_clk , u32 min_clk ) ;
# endif /* !CONFIG_BLK */
# endif /* __DWMMC_HW_H */