[RFC 2/7] mmc: fsl_esdhc_imx: add ofdata_to_platdata support

Walter Lozano walter.lozano at collabora.com
Tue Apr 7 22:05:46 CEST 2020


Hi Simon,

On 6/4/20 00:42, Simon Glass wrote:
> Hi Walter
>
> On Sun, 29 Mar 2020 at 21:32, Walter Lozano<walter.lozano at collabora.com>  wrote:
> All of these commits need a commit message please.

Thank you for pointing it.

>> Signed-off-by: Walter Lozano<walter.lozano at collabora.com>
>> ---
>>   drivers/mmc/fsl_esdhc_imx.c | 71 ++++++++++++++++++++++---------------
>>   1 file changed, 42 insertions(+), 29 deletions(-)
>>
> Reviewed-by: SImon Glass<sjg at chromium.org>
>
>> diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
>> index 761a4b46e9..049a1b6ea8 100644
>> --- a/drivers/mmc/fsl_esdhc_imx.c
>> +++ b/drivers/mmc/fsl_esdhc_imx.c
>> @@ -1379,41 +1379,20 @@ __weak void init_clk_usdhc(u32 index)
>>   {
>>   }
>>
>> -static int fsl_esdhc_probe(struct udevice *dev)
>> -{
>> -       struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
>> -       struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
>> -       struct fsl_esdhc_priv *priv = dev_get_priv(dev);
>> +static int fsl_esdhc_ofdata_to_platdata(struct udevice *dev){
>> +
>>   #if !CONFIG_IS_ENABLED(OF_PLATDATA)
>> -       const void *fdt = gd->fdt_blob;
>> -       int node = dev_of_offset(dev);
>> -       fdt_addr_t addr;
>> -#else
>> -       struct dtd_fsl_imx6q_usdhc *dtplat = &plat->dtplat;
>> -#endif
>> -       struct esdhc_soc_data *data =
>> -               (struct esdhc_soc_data *)dev_get_driver_data(dev);
>> +       struct fsl_esdhc_priv *priv = dev_get_priv(dev);
>>   #if CONFIG_IS_ENABLED(DM_REGULATOR)
>>          struct udevice *vqmmc_dev;
>> +       int ret;
>>   #endif
>> +       const void *fdt = gd->fdt_blob;
>> +       int node = dev_of_offset(dev);
>> +
>> +       fdt_addr_t addr;
>>          unsigned int val;
>> -       struct mmc *mmc;
>> -#if !CONFIG_IS_ENABLED(BLK)
>> -       struct blk_desc *bdesc;
>> -#endif
>> -       int ret;
>>
>> -#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> -       priv->esdhc_regs = map_sysmem(dtplat->reg[0], dtplat->reg[1]);
>> -       val = plat->dtplat.bus_width;
>> -       if (val == 8)
>> -               priv->bus_width = 8;
>> -       else if (val == 4)
>> -               priv->bus_width = 4;
>> -       else
>> -               priv->bus_width = 1;
>> -       priv->non_removable = 1;
>> -#else
>>          addr = dev_read_addr(dev);
>>          if (addr == FDT_ADDR_T_NONE)
>>                  return -EINVAL;
>> @@ -1483,8 +1462,40 @@ static int fsl_esdhc_probe(struct udevice *dev)
>>          }
>>   #endif
>>   #endif
>> +       return 0;
>> +}
>> +
>> +static int fsl_esdhc_probe(struct udevice *dev)
>> +{
>> +       struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev);
>> +       struct fsl_esdhc_plat *plat = dev_get_platdata(dev);
>> +       struct fsl_esdhc_priv *priv = dev_get_priv(dev);
>> +       struct esdhc_soc_data *data =
>> +               (struct esdhc_soc_data *)dev_get_driver_data(dev);
>> +       struct mmc *mmc;
>> +#if !CONFIG_IS_ENABLED(BLK)
> Should not need to support !BLK now. The migration date has passed.

Thanks.

>> +       struct blk_desc *bdesc;
>> +#endif
>> +       int ret;
>> +
>> +#if CONFIG_IS_ENABLED(OF_PLATDATA)
>> +       struct dtd_fsl_imx6q_usdhc *dtplat = &plat->dtplat;
>> +       unsigned int val;
>> +
>> +       priv->esdhc_regs = map_sysmem(dtplat->reg[0], dtplat->reg[1]);
>> +       val = plat->dtplat.bus_width;
>> +       if (val == 8)
>> +               priv->bus_width = 8;
>> +       else if (val == 4)
>> +               priv->bus_width = 4;
>> +       else
>> +               priv->bus_width = 1;
>> +       priv->non_removable = 1;
>> +#endif
>> +
>>          if (data)
>>                  priv->flags = data->flags;
>> +
>>          /*
>>           * TODO:
>>           * Because lack of clk driver, if SDHC clk is not enabled,
>> @@ -1664,6 +1675,7 @@ U_BOOT_DRIVER(fsl_esdhc) = {
>>          .name   = "fsl-esdhc-mmc",
>>          .id     = UCLASS_MMC,
>>          .of_match = fsl_esdhc_ids,
>> +       .ofdata_to_platdata = fsl_esdhc_ofdata_to_platdata,
>>          .ops    = &fsl_esdhc_ops,
>>   #if CONFIG_IS_ENABLED(BLK)
>>          .bind   = fsl_esdhc_bind,
>> @@ -1677,6 +1689,7 @@ U_BOOT_DRIVER(fsl_esdhc) = {
>>   U_BOOT_DRIVER(fsl_usdhc) = {
>>          .name   = "fsl_imx6q_usdhc",
>>          .id     = UCLASS_MMC,
>> +       .ofdata_to_platdata = fsl_esdhc_ofdata_to_platdata,
>>          .ops    = &fsl_esdhc_ops,
>>   #if CONFIG_IS_ENABLED(BLK)
>>          .bind   = fsl_esdhc_bind,
>> --
>> 2.20.1
>>
> Regards,
> Simon


More information about the U-Boot mailing list