Message ID | 1465795839-16632-2-git-send-email-sjg@chromium.org |
---|---|
State | Accepted |
Commit | e7a773a0bcceb130e441398d8bc97febacb0d499 |
Delegated to: | Simon Glass |
Headers | show |
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 <sjg@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 */ >
Hi Jaehoon, On 27 June 2016 at 04:54, Jaehoon Chung <jh80.chung@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 <sjg@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
On 3 July 2016 at 16:28, Simon Glass <sjg@chromium.org> wrote: > Hi Jaehoon, > > On 27 June 2016 at 04:54, Jaehoon Chung <jh80.chung@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 <sjg@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.
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) + */ 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 */
These comments were missed when the original code was written. Add them to help people port their drivers over. Signed-off-by: Simon Glass <sjg@chromium.org> --- include/dwmmc.h | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+)