Message ID | 20201117113750.25053-1-festevam@gmail.com |
---|---|
State | New |
Headers | show |
Series | mmc: sdhci-esdhc-imx: Convert the driver to DT-only | expand |
> -----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
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 --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, };
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(-)