diff mbox series

mmc: sdhci-esdhc-imx: Convert the driver to DT-only

Message ID 20201117113750.25053-1-festevam@gmail.com
State New
Headers show
Series mmc: sdhci-esdhc-imx: Convert the driver to DT-only | expand

Commit Message

Fabio Estevam Nov. 17, 2020, 11:37 a.m. UTC
Since 5.10-rc1 i.MX is a devicetree-only platform, so simplify the code
by removing the unused non-DT support.

Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
 drivers/mmc/host/sdhci-esdhc-imx.c | 91 +-----------------------------
 1 file changed, 2 insertions(+), 89 deletions(-)

Comments

Bough Chen Nov. 17, 2020, 12:30 p.m. UTC | #1
> -----Original Message-----

> From: Fabio Estevam [mailto:festevam@gmail.com]

> Sent: 2020年11月17日 19:38

> To: ulf.hansson@linaro.org

> Cc: adrian.hunter@intel.com; shawnguo@kernel.org; kernel@pengutronix.de;

> Bough Chen <haibo.chen@nxp.com>; linux-mmc@vger.kernel.org; Fabio

> Estevam <festevam@gmail.com>

> Subject: [PATCH] mmc: sdhci-esdhc-imx: Convert the driver to DT-only

> 

> Since 5.10-rc1 i.MX is a devicetree-only platform, so simplify the code by

> removing the unused non-DT support.

> 

> Signed-off-by: Fabio Estevam <festevam@gmail.com>


Reviewed-by: Haibo Chen <haibo.chen@nxp.com>


> ---

>  drivers/mmc/host/sdhci-esdhc-imx.c | 91 +-----------------------------

>  1 file changed, 2 insertions(+), 89 deletions(-)

> 

> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c

> b/drivers/mmc/host/sdhci-esdhc-imx.c

> index fce8fa7e6b30..16ed19f47939 100644

> --- a/drivers/mmc/host/sdhci-esdhc-imx.c

> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c

> @@ -296,22 +296,6 @@ struct pltfm_imx_data {

>  	struct pm_qos_request pm_qos_req;

>  };

> 

> -static const struct platform_device_id imx_esdhc_devtype[] = {

> -	{

> -		.name = "sdhci-esdhc-imx25",

> -		.driver_data = (kernel_ulong_t) &esdhc_imx25_data,

> -	}, {

> -		.name = "sdhci-esdhc-imx35",

> -		.driver_data = (kernel_ulong_t) &esdhc_imx35_data,

> -	}, {

> -		.name = "sdhci-esdhc-imx51",

> -		.driver_data = (kernel_ulong_t) &esdhc_imx51_data,

> -	}, {

> -		/* sentinel */

> -	}

> -};

> -MODULE_DEVICE_TABLE(platform, imx_esdhc_devtype);

> -

>  static const struct of_device_id imx_esdhc_dt_ids[] = {

>  	{ .compatible = "fsl,imx25-esdhc", .data = &esdhc_imx25_data, },

>  	{ .compatible = "fsl,imx35-esdhc", .data = &esdhc_imx35_data, }, @@

> -1531,72 +1515,6 @@ sdhci_esdhc_imx_probe_dt(struct platform_device

> *pdev,  }  #endif

> 

> -static int sdhci_esdhc_imx_probe_nondt(struct platform_device *pdev,

> -			 struct sdhci_host *host,

> -			 struct pltfm_imx_data *imx_data)

> -{

> -	struct esdhc_platform_data *boarddata = &imx_data->boarddata;

> -	int err;

> -

> -	if (!host->mmc->parent->platform_data) {

> -		dev_err(mmc_dev(host->mmc), "no board data!\n");

> -		return -EINVAL;

> -	}

> -

> -	imx_data->boarddata = *((struct esdhc_platform_data *)

> -				host->mmc->parent->platform_data);

> -	/* write_protect */

> -	if (boarddata->wp_type == ESDHC_WP_GPIO) {

> -		host->mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;

> -

> -		err = mmc_gpiod_request_ro(host->mmc, "wp", 0, 0);

> -		if (err) {

> -			dev_err(mmc_dev(host->mmc),

> -				"failed to request write-protect gpio!\n");

> -			return err;

> -		}

> -	}

> -

> -	/* card_detect */

> -	switch (boarddata->cd_type) {

> -	case ESDHC_CD_GPIO:

> -		err = mmc_gpiod_request_cd(host->mmc, "cd", 0, false, 0);

> -		if (err) {

> -			dev_err(mmc_dev(host->mmc),

> -				"failed to request card-detect gpio!\n");

> -			return err;

> -		}

> -		fallthrough;

> -

> -	case ESDHC_CD_CONTROLLER:

> -		/* we have a working card_detect back */

> -		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;

> -		break;

> -

> -	case ESDHC_CD_PERMANENT:

> -		host->mmc->caps |= MMC_CAP_NONREMOVABLE;

> -		break;

> -

> -	case ESDHC_CD_NONE:

> -		break;

> -	}

> -

> -	switch (boarddata->max_bus_width) {

> -	case 8:

> -		host->mmc->caps |= MMC_CAP_8_BIT_DATA |

> MMC_CAP_4_BIT_DATA;

> -		break;

> -	case 4:

> -		host->mmc->caps |= MMC_CAP_4_BIT_DATA;

> -		break;

> -	case 1:

> -	default:

> -		host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA;

> -		break;

> -	}

> -

> -	return 0;

> -}

> -

>  static int sdhci_esdhc_imx_probe(struct platform_device *pdev)  {

>  	const struct of_device_id *of_id =

> @@ -1616,8 +1534,7 @@ static int sdhci_esdhc_imx_probe(struct

> platform_device *pdev)

> 

>  	imx_data = sdhci_pltfm_priv(pltfm_host);

> 

> -	imx_data->socdata = of_id ? of_id->data : (struct esdhc_soc_data *)

> -						  pdev->id_entry->driver_data;

> +	imx_data->socdata = of_id->data;

> 

>  	if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)

>  		cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0); @@

> -1713,10 +1630,7 @@ static int sdhci_esdhc_imx_probe(struct

> platform_device *pdev)

>  			goto disable_ahb_clk;

>  	}

> 

> -	if (of_id)

> -		err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data);

> -	else

> -		err = sdhci_esdhc_imx_probe_nondt(pdev, host, imx_data);

> +	err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data);

>  	if (err)

>  		goto disable_ahb_clk;

> 

> @@ -1929,7 +1843,6 @@ static struct platform_driver

> sdhci_esdhc_imx_driver = {

>  		.of_match_table = imx_esdhc_dt_ids,

>  		.pm	= &sdhci_esdhc_pmops,

>  	},

> -	.id_table	= imx_esdhc_devtype,

>  	.probe		= sdhci_esdhc_imx_probe,

>  	.remove		= sdhci_esdhc_imx_remove,

>  };

> --

> 2.17.1
Ulf Hansson Nov. 23, 2020, 4:06 p.m. UTC | #2
On Tue, 17 Nov 2020 at 12:38, Fabio Estevam <festevam@gmail.com> wrote:
>

> Since 5.10-rc1 i.MX is a devicetree-only platform, so simplify the code

> by removing the unused non-DT support.

>

> Signed-off-by: Fabio Estevam <festevam@gmail.com>


Applied for next, thanks!

Kind regards
Uffe


> ---

>  drivers/mmc/host/sdhci-esdhc-imx.c | 91 +-----------------------------

>  1 file changed, 2 insertions(+), 89 deletions(-)

>

> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c

> index fce8fa7e6b30..16ed19f47939 100644

> --- a/drivers/mmc/host/sdhci-esdhc-imx.c

> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c

> @@ -296,22 +296,6 @@ struct pltfm_imx_data {

>         struct pm_qos_request pm_qos_req;

>  };

>

> -static const struct platform_device_id imx_esdhc_devtype[] = {

> -       {

> -               .name = "sdhci-esdhc-imx25",

> -               .driver_data = (kernel_ulong_t) &esdhc_imx25_data,

> -       }, {

> -               .name = "sdhci-esdhc-imx35",

> -               .driver_data = (kernel_ulong_t) &esdhc_imx35_data,

> -       }, {

> -               .name = "sdhci-esdhc-imx51",

> -               .driver_data = (kernel_ulong_t) &esdhc_imx51_data,

> -       }, {

> -               /* sentinel */

> -       }

> -};

> -MODULE_DEVICE_TABLE(platform, imx_esdhc_devtype);

> -

>  static const struct of_device_id imx_esdhc_dt_ids[] = {

>         { .compatible = "fsl,imx25-esdhc", .data = &esdhc_imx25_data, },

>         { .compatible = "fsl,imx35-esdhc", .data = &esdhc_imx35_data, },

> @@ -1531,72 +1515,6 @@ sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,

>  }

>  #endif

>

> -static int sdhci_esdhc_imx_probe_nondt(struct platform_device *pdev,

> -                        struct sdhci_host *host,

> -                        struct pltfm_imx_data *imx_data)

> -{

> -       struct esdhc_platform_data *boarddata = &imx_data->boarddata;

> -       int err;

> -

> -       if (!host->mmc->parent->platform_data) {

> -               dev_err(mmc_dev(host->mmc), "no board data!\n");

> -               return -EINVAL;

> -       }

> -

> -       imx_data->boarddata = *((struct esdhc_platform_data *)

> -                               host->mmc->parent->platform_data);

> -       /* write_protect */

> -       if (boarddata->wp_type == ESDHC_WP_GPIO) {

> -               host->mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;

> -

> -               err = mmc_gpiod_request_ro(host->mmc, "wp", 0, 0);

> -               if (err) {

> -                       dev_err(mmc_dev(host->mmc),

> -                               "failed to request write-protect gpio!\n");

> -                       return err;

> -               }

> -       }

> -

> -       /* card_detect */

> -       switch (boarddata->cd_type) {

> -       case ESDHC_CD_GPIO:

> -               err = mmc_gpiod_request_cd(host->mmc, "cd", 0, false, 0);

> -               if (err) {

> -                       dev_err(mmc_dev(host->mmc),

> -                               "failed to request card-detect gpio!\n");

> -                       return err;

> -               }

> -               fallthrough;

> -

> -       case ESDHC_CD_CONTROLLER:

> -               /* we have a working card_detect back */

> -               host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;

> -               break;

> -

> -       case ESDHC_CD_PERMANENT:

> -               host->mmc->caps |= MMC_CAP_NONREMOVABLE;

> -               break;

> -

> -       case ESDHC_CD_NONE:

> -               break;

> -       }

> -

> -       switch (boarddata->max_bus_width) {

> -       case 8:

> -               host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA;

> -               break;

> -       case 4:

> -               host->mmc->caps |= MMC_CAP_4_BIT_DATA;

> -               break;

> -       case 1:

> -       default:

> -               host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA;

> -               break;

> -       }

> -

> -       return 0;

> -}

> -

>  static int sdhci_esdhc_imx_probe(struct platform_device *pdev)

>  {

>         const struct of_device_id *of_id =

> @@ -1616,8 +1534,7 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)

>

>         imx_data = sdhci_pltfm_priv(pltfm_host);

>

> -       imx_data->socdata = of_id ? of_id->data : (struct esdhc_soc_data *)

> -                                                 pdev->id_entry->driver_data;

> +       imx_data->socdata = of_id->data;

>

>         if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)

>                 cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0);

> @@ -1713,10 +1630,7 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)

>                         goto disable_ahb_clk;

>         }

>

> -       if (of_id)

> -               err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data);

> -       else

> -               err = sdhci_esdhc_imx_probe_nondt(pdev, host, imx_data);

> +       err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data);

>         if (err)

>                 goto disable_ahb_clk;

>

> @@ -1929,7 +1843,6 @@ static struct platform_driver sdhci_esdhc_imx_driver = {

>                 .of_match_table = imx_esdhc_dt_ids,

>                 .pm     = &sdhci_esdhc_pmops,

>         },

> -       .id_table       = imx_esdhc_devtype,

>         .probe          = sdhci_esdhc_imx_probe,

>         .remove         = sdhci_esdhc_imx_remove,

>  };

> --

> 2.17.1

>
diff mbox series

Patch

diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index fce8fa7e6b30..16ed19f47939 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -296,22 +296,6 @@  struct pltfm_imx_data {
 	struct pm_qos_request pm_qos_req;
 };
 
-static const struct platform_device_id imx_esdhc_devtype[] = {
-	{
-		.name = "sdhci-esdhc-imx25",
-		.driver_data = (kernel_ulong_t) &esdhc_imx25_data,
-	}, {
-		.name = "sdhci-esdhc-imx35",
-		.driver_data = (kernel_ulong_t) &esdhc_imx35_data,
-	}, {
-		.name = "sdhci-esdhc-imx51",
-		.driver_data = (kernel_ulong_t) &esdhc_imx51_data,
-	}, {
-		/* sentinel */
-	}
-};
-MODULE_DEVICE_TABLE(platform, imx_esdhc_devtype);
-
 static const struct of_device_id imx_esdhc_dt_ids[] = {
 	{ .compatible = "fsl,imx25-esdhc", .data = &esdhc_imx25_data, },
 	{ .compatible = "fsl,imx35-esdhc", .data = &esdhc_imx35_data, },
@@ -1531,72 +1515,6 @@  sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
 }
 #endif
 
-static int sdhci_esdhc_imx_probe_nondt(struct platform_device *pdev,
-			 struct sdhci_host *host,
-			 struct pltfm_imx_data *imx_data)
-{
-	struct esdhc_platform_data *boarddata = &imx_data->boarddata;
-	int err;
-
-	if (!host->mmc->parent->platform_data) {
-		dev_err(mmc_dev(host->mmc), "no board data!\n");
-		return -EINVAL;
-	}
-
-	imx_data->boarddata = *((struct esdhc_platform_data *)
-				host->mmc->parent->platform_data);
-	/* write_protect */
-	if (boarddata->wp_type == ESDHC_WP_GPIO) {
-		host->mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
-
-		err = mmc_gpiod_request_ro(host->mmc, "wp", 0, 0);
-		if (err) {
-			dev_err(mmc_dev(host->mmc),
-				"failed to request write-protect gpio!\n");
-			return err;
-		}
-	}
-
-	/* card_detect */
-	switch (boarddata->cd_type) {
-	case ESDHC_CD_GPIO:
-		err = mmc_gpiod_request_cd(host->mmc, "cd", 0, false, 0);
-		if (err) {
-			dev_err(mmc_dev(host->mmc),
-				"failed to request card-detect gpio!\n");
-			return err;
-		}
-		fallthrough;
-
-	case ESDHC_CD_CONTROLLER:
-		/* we have a working card_detect back */
-		host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
-		break;
-
-	case ESDHC_CD_PERMANENT:
-		host->mmc->caps |= MMC_CAP_NONREMOVABLE;
-		break;
-
-	case ESDHC_CD_NONE:
-		break;
-	}
-
-	switch (boarddata->max_bus_width) {
-	case 8:
-		host->mmc->caps |= MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA;
-		break;
-	case 4:
-		host->mmc->caps |= MMC_CAP_4_BIT_DATA;
-		break;
-	case 1:
-	default:
-		host->quirks |= SDHCI_QUIRK_FORCE_1_BIT_DATA;
-		break;
-	}
-
-	return 0;
-}
-
 static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
 {
 	const struct of_device_id *of_id =
@@ -1616,8 +1534,7 @@  static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
 
 	imx_data = sdhci_pltfm_priv(pltfm_host);
 
-	imx_data->socdata = of_id ? of_id->data : (struct esdhc_soc_data *)
-						  pdev->id_entry->driver_data;
+	imx_data->socdata = of_id->data;
 
 	if (imx_data->socdata->flags & ESDHC_FLAG_PMQOS)
 		cpu_latency_qos_add_request(&imx_data->pm_qos_req, 0);
@@ -1713,10 +1630,7 @@  static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
 			goto disable_ahb_clk;
 	}
 
-	if (of_id)
-		err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data);
-	else
-		err = sdhci_esdhc_imx_probe_nondt(pdev, host, imx_data);
+	err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data);
 	if (err)
 		goto disable_ahb_clk;
 
@@ -1929,7 +1843,6 @@  static struct platform_driver sdhci_esdhc_imx_driver = {
 		.of_match_table = imx_esdhc_dt_ids,
 		.pm	= &sdhci_esdhc_pmops,
 	},
-	.id_table	= imx_esdhc_devtype,
 	.probe		= sdhci_esdhc_imx_probe,
 	.remove		= sdhci_esdhc_imx_remove,
 };