]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
mmc: sdhci: Add support for platform/board specific tuning
authorSiva Durga Prasad Paladugu <siva.durga.paladugu@xilinx.com>
Wed, 1 Feb 2017 19:40:43 +0000 (01:10 +0530)
committerMichal Simek <michal.simek@xilinx.com>
Thu, 2 Feb 2017 09:29:28 +0000 (10:29 +0100)
Add support to execute platform/board specific tuning needed
for SDR104 and SDR50 UHS modes.This patch adds hook routine
to support specific tuning requirements.

Signed-off-by: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
drivers/mmc/sdhci.c
include/sdhci.h

index 2b6ca06d9ee5d73d26805f087cbb70f11fc3cf73..20cfdb3e454916e911eb7377028e3898e415edea 100644 (file)
@@ -309,11 +309,19 @@ static int sdhci_execute_tuning(struct mmc *mmc, u8 opcode)
        struct mmc_cmd cmd;
        struct mmc_data data;
        u32 ctrl;
+       int err;
        u8 tuning_loop_counter = 40;
        struct sdhci_host *host = mmc->priv;
 
        debug("%s\n", __func__);
 
+       if (host->platform_execute_tuning) {
+               err = host->platform_execute_tuning(mmc, opcode);
+               if (err)
+                       return err;
+               return 0;
+       }
+
        ctrl = sdhci_readw(host, SDHCI_HOST_CTRL2);
        ctrl |= SDHCI_CTRL_EXEC_TUNING;
        sdhci_writew(host, ctrl, SDHCI_HOST_CTRL2);
index 20138b35d5cdf2aae73ab5084d601d010adfcacf..a8b5257198837c7a5ad61ec116b5ddb82e9daaba 100644 (file)
@@ -269,6 +269,7 @@ struct sdhci_host {
 
        void (*set_control_reg)(struct sdhci_host *host);
        void (*set_clock)(int dev_index, unsigned int div);
+       int (*platform_execute_tuning)(struct mmc *host, u8 opcode);
        uint    voltages;
 
        struct mmc_config cfg;