mmc: remove cns3xxx driver
authorArnd Bergmann <arnd@arndb.de>
Fri, 30 Sep 2022 11:09:59 +0000 (13:09 +0200)
committerArnd Bergmann <arnd@arndb.de>
Tue, 10 Jan 2023 22:10:26 +0000 (23:10 +0100)
The cns3xxx platform is gone, so this driver is now orphaned.

Cc: Krzysztof Halasa <khalasa@piap.pl>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
drivers/mmc/host/Kconfig
drivers/mmc/host/Makefile
drivers/mmc/host/sdhci-cns3xxx.c [deleted file]

index 5e19a96..30c9b16 100644 (file)
@@ -262,17 +262,6 @@ config MMC_SDHCI_CADENCE
 
          If unsure, say N.
 
-config MMC_SDHCI_CNS3XXX
-       tristate "SDHCI support on the Cavium Networks CNS3xxx SoC"
-       depends on ARCH_CNS3XXX || COMPILE_TEST
-       depends on MMC_SDHCI_PLTFM
-       help
-         This selects the SDHCI support for CNS3xxx System-on-Chip devices.
-
-         If you have a controller with this interface, say Y or M here.
-
-         If unsure, say N.
-
 config MMC_SDHCI_ESDHC_MCF
        tristate "SDHCI support for the Freescale eSDHC ColdFire controller"
        depends on M5441x
index ba0c6d0..76bbde0 100644 (file)
@@ -77,7 +77,6 @@ obj-$(CONFIG_MMC_REALTEK_USB) += rtsx_usb_sdmmc.o
 
 obj-$(CONFIG_MMC_SDHCI_PLTFM)          += sdhci-pltfm.o
 obj-$(CONFIG_MMC_SDHCI_CADENCE)                += sdhci-cadence.o
-obj-$(CONFIG_MMC_SDHCI_CNS3XXX)                += sdhci-cns3xxx.o
 obj-$(CONFIG_MMC_SDHCI_ESDHC_MCF)       += sdhci-esdhc-mcf.o
 obj-$(CONFIG_MMC_SDHCI_ESDHC_IMX)      += sdhci-esdhc-imx.o
 obj-$(CONFIG_MMC_SDHCI_DOVE)           += sdhci-dove.o
diff --git a/drivers/mmc/host/sdhci-cns3xxx.c b/drivers/mmc/host/sdhci-cns3xxx.c
deleted file mode 100644 (file)
index 2a29c7a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * SDHCI support for CNS3xxx SoC
- *
- * Copyright 2008 Cavium Networks
- * Copyright 2010 MontaVista Software, LLC.
- *
- * Authors: Scott Shu
- *         Anton Vorontsov <avorontsov@mvista.com>
- */
-
-#include <linux/delay.h>
-#include <linux/device.h>
-#include <linux/mmc/host.h>
-#include <linux/module.h>
-#include "sdhci-pltfm.h"
-
-static unsigned int sdhci_cns3xxx_get_max_clk(struct sdhci_host *host)
-{
-       return 150000000;
-}
-
-static void sdhci_cns3xxx_set_clock(struct sdhci_host *host, unsigned int clock)
-{
-       struct device *dev = mmc_dev(host->mmc);
-       int div = 1;
-       u16 clk;
-       unsigned long timeout;
-
-       host->mmc->actual_clock = 0;
-
-       sdhci_writew(host, 0, SDHCI_CLOCK_CONTROL);
-
-       if (clock == 0)
-               return;
-
-       while (host->max_clk / div > clock) {
-               /*
-                * On CNS3xxx divider grows linearly up to 4, and then
-                * exponentially up to 256.
-                */
-               if (div < 4)
-                       div += 1;
-               else if (div < 256)
-                       div *= 2;
-               else
-                       break;
-       }
-
-       dev_dbg(dev, "desired SD clock: %d, actual: %d\n",
-               clock, host->max_clk / div);
-
-       /* Divide by 3 is special. */
-       if (div != 3)
-               div >>= 1;
-
-       clk = div << SDHCI_DIVIDER_SHIFT;
-       clk |= SDHCI_CLOCK_INT_EN;
-       sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
-
-       timeout = 20;
-       while (!((clk = sdhci_readw(host, SDHCI_CLOCK_CONTROL))
-                       & SDHCI_CLOCK_INT_STABLE)) {
-               if (timeout == 0) {
-                       dev_warn(dev, "clock is unstable");
-                       break;
-               }
-               timeout--;
-               mdelay(1);
-       }
-
-       clk |= SDHCI_CLOCK_CARD_EN;
-       sdhci_writew(host, clk, SDHCI_CLOCK_CONTROL);
-}
-
-static const struct sdhci_ops sdhci_cns3xxx_ops = {
-       .get_max_clock  = sdhci_cns3xxx_get_max_clk,
-       .set_clock      = sdhci_cns3xxx_set_clock,
-       .set_bus_width  = sdhci_set_bus_width,
-       .reset          = sdhci_reset,
-       .set_uhs_signaling = sdhci_set_uhs_signaling,
-};
-
-static const struct sdhci_pltfm_data sdhci_cns3xxx_pdata = {
-       .ops = &sdhci_cns3xxx_ops,
-       .quirks = SDHCI_QUIRK_BROKEN_DMA |
-                 SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK |
-                 SDHCI_QUIRK_INVERTED_WRITE_PROTECT |
-                 SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN |
-                 SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
-};
-
-static int sdhci_cns3xxx_probe(struct platform_device *pdev)
-{
-       return sdhci_pltfm_register(pdev, &sdhci_cns3xxx_pdata, 0);
-}
-
-static struct platform_driver sdhci_cns3xxx_driver = {
-       .driver         = {
-               .name   = "sdhci-cns3xxx",
-               .probe_type = PROBE_PREFER_ASYNCHRONOUS,
-               .pm     = &sdhci_pltfm_pmops,
-       },
-       .probe          = sdhci_cns3xxx_probe,
-       .remove         = sdhci_pltfm_unregister,
-};
-
-module_platform_driver(sdhci_cns3xxx_driver);
-
-MODULE_DESCRIPTION("SDHCI driver for CNS3xxx");
-MODULE_AUTHOR("Scott Shu, "
-             "Anton Vorontsov <avorontsov@mvista.com>");
-MODULE_LICENSE("GPL v2");