Hi Simon,
On 06/13/2016 02:30 PM, Simon Glass wrote: > These comments were missed when the original code was written. Add them to > help people port their drivers over. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > include/dwmmc.h | 64 > +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 64 insertions(+) > > diff --git a/include/dwmmc.h b/include/dwmmc.h > index 335af51..0199def 100644 > --- a/include/dwmmc.h > +++ b/include/dwmmc.h > @@ -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) e,g is need to swap max_clk <-> min_clk? > + */ > 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 > + */ Ditto. I'm starting to covert to DM for dwmmc exynos... After finishing convert for dwmmc_exynos, I will check in more detail on dwmmc core side. Sorry for checking too late. Best Regards, Jaehoon Chung > int add_dwmci(struct dwmci_host *host, u32 max_clk, u32 min_clk); > +#endif /* !CONFIG_BLK */ > + > #endif /* __DWMMC_HW_H */ > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot