On 3 July 2016 at 16:28, Simon Glass <s...@chromium.org> wrote: > Hi Jaehoon, > > On 27 June 2016 at 04:54, Jaehoon Chung <jh80.ch...@samsung.com> wrote: >> 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. > > OK I see your patches so I'll apply this as is. Your patches are > assigned to Minkyu, so I'll leave them to him. > >> >> 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 */ >>> >> > > Regards, > Simon
Applied to u-boot-dm/next. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot