dm: mmc: Add a way to bind MMC devices with driver model

Binding an MMC device when CONFIG_BLK is enabled requires that a block
device be bound as a child of the MMC device. Add a function to do this.
The mmc_create() method will be used only when DM_BLK is disabled.

Add an unbind method also.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2016-05-01 13:52:40 -06:00
parent 8ef761ed4c
commit ad27dd5e13
2 changed files with 70 additions and 0 deletions

View File

@@ -409,7 +409,29 @@ enum mmc_hwpart_conf_mode {
int mmc_register(struct mmc *mmc);
struct mmc *mmc_create(const struct mmc_config *cfg, void *priv);
/**
* mmc_bind() - Set up a new MMC device ready for probing
*
* A child block device is bound with the IF_TYPE_MMC interface type. This
* allows the device to be used with CONFIG_BLK
*
* @dev: MMC device to set up
* @mmc: MMC struct
* @cfg: MMC configuration
* @return 0 if OK, -ve on error
*/
int mmc_bind(struct udevice *dev, struct mmc *mmc,
const struct mmc_config *cfg);
void mmc_destroy(struct mmc *mmc);
/**
* mmc_unbind() - Unbind a MMC device's child block device
*
* @dev: MMC device
* @return 0 if OK, -ve on error
*/
int mmc_unbind(struct udevice *dev);
int mmc_initialize(bd_t *bis);
int mmc_init(struct mmc *mmc);
int mmc_read(struct mmc *mmc, u64 src, uchar *dst, int size);