diff mbox series

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

Message ID 20200330033158.26751-3-walter.lozano@collabora.com
State RFC
Delegated to: Stefano Babic
Headers show
Series mx6cuboxi: enable OF_PLATDATA with MMC support | expand

Commit Message

Walter Lozano March 30, 2020, 3:31 a.m. UTC
Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
---
 drivers/mmc/fsl_esdhc_imx.c | 71 ++++++++++++++++++++++---------------
 1 file changed, 42 insertions(+), 29 deletions(-)

Comments

Simon Glass April 6, 2020, 3:42 a.m. UTC | #1
Hi Walter

On Sun, 29 Mar 2020 at 21:32, Walter Lozano <walter.lozano@collabora.com> wrote:
>

All of these commits need a commit message please.

> Signed-off-by: Walter Lozano <walter.lozano@collabora.com>
> ---
>  drivers/mmc/fsl_esdhc_imx.c | 71 ++++++++++++++++++++++---------------
>  1 file changed, 42 insertions(+), 29 deletions(-)
>

Reviewed-by: SImon Glass <sjg@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.

> +       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
Walter Lozano April 7, 2020, 8:05 p.m. UTC | #2
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@collabora.com>  wrote:
> All of these commits need a commit message please.

Thank you for pointing it.

>> Signed-off-by: Walter Lozano<walter.lozano@collabora.com>
>> ---
>>   drivers/mmc/fsl_esdhc_imx.c | 71 ++++++++++++++++++++++---------------
>>   1 file changed, 42 insertions(+), 29 deletions(-)
>>
> Reviewed-by: SImon Glass<sjg@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
diff mbox series

Patch

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)
+	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,