On 25 November 2015 at 14:57, Linus Walleij <[email protected]> wrote:
> There are no in-kernel users of the MVSDIO platform data method
> (instantiating from a board file) so just delete this code and
> make this a DT-only driver. We depend on OF and check that we have
> an OF node in probe().
>
> Cc: Nicolas Pitre <[email protected]>
> Cc: Andrew Lunn <[email protected]>
> Cc: Sebastian Hesselbarth <[email protected]>
> Signed-off-by: Linus Walleij <[email protected]>
Thanks, applied for next!
I decided to keep the patches as is, because I think the split
provided an easy way to review the changes.
Kind regards
Uffe
> ---
> drivers/mmc/host/Kconfig | 1 +
> drivers/mmc/host/mvsdio.c | 63
> +++++++++++------------------------------------
> 2 files changed, 15 insertions(+), 49 deletions(-)
>
> diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
> index 1dee533634c9..1526b8a10b09 100644
> --- a/drivers/mmc/host/Kconfig
> +++ b/drivers/mmc/host/Kconfig
> @@ -455,6 +455,7 @@ config MMC_TIFM_SD
> config MMC_MVSDIO
> tristate "Marvell MMC/SD/SDIO host driver"
> depends on PLAT_ORION
> + depends on OF
> ---help---
> This selects the Marvell SDIO host driver.
> SDIO may currently be found on the Kirkwood 88F6281 and 88F6192
> diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
> index 18c70380ea93..42296e55b9de 100644
> --- a/drivers/mmc/host/mvsdio.c
> +++ b/drivers/mmc/host/mvsdio.c
> @@ -20,8 +20,6 @@
> #include <linux/scatterlist.h>
> #include <linux/irq.h>
> #include <linux/clk.h>
> -#include <linux/gpio.h>
> -#include <linux/of_gpio.h>
> #include <linux/of_irq.h>
> #include <linux/mmc/host.h>
> #include <linux/mmc/slot-gpio.h>
> @@ -36,12 +34,6 @@
> static int maxfreq;
> static int nodma;
>
> -struct mvsdio_platform_data {
> - unsigned int clock;
> - int gpio_card_detect;
> - int gpio_write_protect;
> -};
> -
> struct mvsd_host {
> void __iomem *base;
> struct mmc_request *mrq;
> @@ -709,6 +701,10 @@ static int mvsd_probe(struct platform_device *pdev)
> struct resource *r;
> int ret, irq;
>
> + if (!np) {
> + dev_err(&pdev->dev, "no DT node\n");
> + return -ENODEV;
> + }
> r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> irq = platform_get_irq(pdev, 0);
> if (!r || irq < 0)
> @@ -732,8 +728,12 @@ static int mvsd_probe(struct platform_device *pdev)
> * fixed rate clock).
> */
> host->clk = devm_clk_get(&pdev->dev, NULL);
> - if (!IS_ERR(host->clk))
> - clk_prepare_enable(host->clk);
> + if (IS_ERR(host->clk)) {
> + dev_err(&pdev->dev, "no clock associated\n");
> + ret = -EINVAL;
> + goto out;
> + }
> + clk_prepare_enable(host->clk);
>
> mmc->ops = &mvsd_ops;
>
> @@ -749,45 +749,10 @@ static int mvsd_probe(struct platform_device *pdev)
> mmc->max_seg_size = mmc->max_blk_size * mmc->max_blk_count;
> mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count;
>
> - if (np) {
> - if (IS_ERR(host->clk)) {
> - dev_err(&pdev->dev, "DT platforms must have a clock
> associated\n");
> - ret = -EINVAL;
> - goto out;
> - }
> -
> - host->base_clock = clk_get_rate(host->clk) / 2;
> - ret = mmc_of_parse(mmc);
> - if (ret < 0)
> - goto out;
> - } else {
> - const struct mvsdio_platform_data *mvsd_data;
> -
> - mvsd_data = pdev->dev.platform_data;
> - if (!mvsd_data) {
> - ret = -ENXIO;
> - goto out;
> - }
> - mmc->caps = MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ |
> - MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED;
> - host->base_clock = mvsd_data->clock / 2;
> - /* GPIO 0 regarded as invalid for backward compatibility */
> - if (mvsd_data->gpio_card_detect &&
> - gpio_is_valid(mvsd_data->gpio_card_detect)) {
> - ret = mmc_gpio_request_cd(mmc,
> - mvsd_data->gpio_card_detect,
> - 0);
> - if (ret)
> - goto out;
> - } else {
> - mmc->caps |= MMC_CAP_NEEDS_POLL;
> - }
> -
> - if (mvsd_data->gpio_write_protect &&
> - gpio_is_valid(mvsd_data->gpio_write_protect))
> - mmc_gpio_request_ro(mmc,
> mvsd_data->gpio_write_protect);
> - }
> -
> + host->base_clock = clk_get_rate(host->clk) / 2;
> + ret = mmc_of_parse(mmc);
> + if (ret < 0)
> + goto out;
> if (maxfreq)
> mmc->f_max = maxfreq;
>
> --
> 2.4.3
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html