[U-Boot] [PATCH 01/27] dm: mmc: dwmmc: Add comments to the dwmmc setup functions

Simon Glass sjg at chromium.org
Mon Jul 4 00:28:07 CEST 2016


Hi Jaehoon,

On 27 June 2016 at 04:54, Jaehoon Chung <jh80.chung at 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 at 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


More information about the U-Boot mailing list