mmc: sdhci_am654: Add Support for TI's AM64 SoC
authorFaiz Abbas <faiz_abbas@ti.com>
Wed, 13 Jan 2021 11:59:08 +0000 (17:29 +0530)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 1 Feb 2021 10:54:45 +0000 (11:54 +0100)
Add support for the controller present on the AM64x SoC.

There are instances:
sdhci0: 8bit bus width, max 400 MBps
sdhci1: 4bit bus width, max 100 MBps

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
Link: https://lore.kernel.org/r/20210113115908.3882-3-a-govindraju@ti.com
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci_am654.c

index a64ea14..7a34649 100644 (file)
@@ -514,6 +514,26 @@ static const struct sdhci_am654_driver_data sdhci_j721e_4bit_drvdata = {
        .flags = IOMUX_PRESENT,
 };
 
+static const struct sdhci_pltfm_data sdhci_am64_8bit_pdata = {
+       .ops = &sdhci_j721e_8bit_ops,
+       .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
+};
+
+static const struct sdhci_am654_driver_data sdhci_am64_8bit_drvdata = {
+       .pdata = &sdhci_am64_8bit_pdata,
+       .flags = DLL_PRESENT | DLL_CALIB,
+};
+
+static const struct sdhci_pltfm_data sdhci_am64_4bit_pdata = {
+       .ops = &sdhci_j721e_4bit_ops,
+       .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
+};
+
+static const struct sdhci_am654_driver_data sdhci_am64_4bit_drvdata = {
+       .pdata = &sdhci_am64_4bit_pdata,
+       .flags = IOMUX_PRESENT,
+};
+
 static const struct soc_device_attribute sdhci_am654_devices[] = {
        { .family = "AM65X",
          .revision = "SR1.0",
@@ -737,6 +757,14 @@ static const struct of_device_id sdhci_am654_of_match[] = {
                .compatible = "ti,j721e-sdhci-4bit",
                .data = &sdhci_j721e_4bit_drvdata,
        },
+       {
+               .compatible = "ti,am64-sdhci-8bit",
+               .data = &sdhci_am64_8bit_drvdata,
+       },
+       {
+               .compatible = "ti,am64-sdhci-4bit",
+               .data = &sdhci_am64_4bit_drvdata,
+       },
        { /* sentinel */ }
 };
 MODULE_DEVICE_TABLE(of, sdhci_am654_of_match);