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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Fabio Estevam [mailto:festevam@xxxxxxxxx]
> Sent: 2020年11月17日 19:38
> To: ulf.hansson@xxxxxxxxxx
> Cc: adrian.hunter@xxxxxxxxx; shawnguo@xxxxxxxxxx; kernel@xxxxxxxxxxxxxx;
> Bough Chen <haibo.chen@xxxxxxx>; linux-mmc@xxxxxxxxxxxxxxx; Fabio
> Estevam <festevam@xxxxxxxxx>
> 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@xxxxxxxxx>

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

> ---
>  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





[Index of Archives]     [Linux Memonry Technology]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux