Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp290172imm; Fri, 10 Aug 2018 11:16:59 -0700 (PDT) X-Google-Smtp-Source: AA+uWPzcq7fOCwo5ckNA1+Cpiidp3lP7jFTM3JIbVVPX9pGqfhZeDYyxE77e8GufrOH2ATf3aD8C X-Received: by 2002:a17:902:2006:: with SMTP id n6-v6mr6992629pla.325.1533925019220; Fri, 10 Aug 2018 11:16:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533925019; cv=none; d=google.com; s=arc-20160816; b=isdU1CgpTU7ffNl3m6lNyuz6RMnKkNRXvNyTvvKTBDarI90PGBTVSrTjV/RfWAkbfL ep3+Jol+aN/9588gX2hbDAkAXrnLfNKLXjEtK7eRJTPI/pFlrJfhXxylzXAQ6j/NScw9 x06mo4KMSgX7sZlFelyKkdo6zBe509hhOTzyS7xsDA0Tvm9/kgtkTnhR9yW5IP3fDzWY KNcgvsR4X5xxbEv1tQbYwLZL2sW4v8/RhqpEmM1ywh3WKTXtopUxekuk9gZF7zhSl2S3 R1jp0YARVdfudzdH5tcMNnRzIJX5tpVl/DnPYO609wHg5e2d3BND6YMm6DrBdO6THcVO EXeQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=09i1cNdcppAeCgxPNwvLtVuj6jaH4dHlpyQMWhCtOuk=; b=ujhnjOEiYbX1CrorUxGDBilwBT9k9UmxLBpd+Wx07lF4TA1ENLVIqsNmLVxuevctrb vCvLiO5IGZISz4nWTVluCAYaO+zxa8w3vH5dUda23kMVHUdbxery1uTbjUJa/iNleh5S cbvCFQ7tOen1pqpUJO3UX2KEAmp9mCkzGfnU5pfdR/TeaQv4phs0FlAr8tofnGvgydZI RhvNHGh9FIavHexX6+ioHYURAr8CpDLyp4xxO1Q7Ay5V5vsQv8mjqTro9hc6pnSiY6In VKWYEscyvBE5NMq6/OKfRp3tC1vmqGArzZXWraVCP0NeTVKqSKvcHvAteJqE13EYKysT H5yw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id p13-v6si9529694pgi.317.2018.08.10.11.16.44; Fri, 10 Aug 2018 11:16:59 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730084AbeHJUpS (ORCPT + 99 others); Fri, 10 Aug 2018 16:45:18 -0400 Received: from hqemgate15.nvidia.com ([216.228.121.64]:11873 "EHLO hqemgate15.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728017AbeHJUpR (ORCPT ); Fri, 10 Aug 2018 16:45:17 -0400 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqemgate15.nvidia.com (using TLS: TLSv1, AES128-SHA) id ; Fri, 10 Aug 2018 11:14:05 -0700 Received: from HQMAIL101.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Fri, 10 Aug 2018 11:14:20 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Fri, 10 Aug 2018 11:14:20 -0700 Received: from HQMAIL106.nvidia.com (172.18.146.12) by HQMAIL101.nvidia.com (172.20.187.10) with Microsoft SMTP Server (TLS) id 15.0.1347.2; Fri, 10 Aug 2018 18:14:19 +0000 Received: from hqnvemgw01.nvidia.com (172.20.150.20) by HQMAIL106.nvidia.com (172.18.146.12) with Microsoft SMTP Server (TLS) id 15.0.1347.2 via Frontend Transport; Fri, 10 Aug 2018 18:14:19 +0000 Received: from dhcp-10-21-25-168.Nvidia.com (Not Verified[10.21.25.201]) by hqnvemgw01.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Fri, 10 Aug 2018 11:14:19 -0700 From: Aapo Vienamo To: Ulf Hansson , Rob Herring , Mark Rutland , Thierry Reding , Jonathan Hunter , Adrian Hunter , Mikko Perttunen CC: , , , , Aapo Vienamo Subject: [PATCH v2 3/8] mmc: tegra: Implement HS400 enhanced strobe Date: Fri, 10 Aug 2018 21:14:00 +0300 Message-ID: <1533924845-1466-4-git-send-email-avienamo@nvidia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1533924845-1466-1-git-send-email-avienamo@nvidia.com> References: <1533924845-1466-1-git-send-email-avienamo@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Implement eMMC HS400 enhanced strobe. Enhanced strobe is an alternative mechanism to the HS400 tuning procedure. Signed-off-by: Aapo Vienamo --- drivers/mmc/host/sdhci-tegra.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/drivers/mmc/host/sdhci-tegra.c b/drivers/mmc/host/sdhci-tegra.c index 6ec92bc..c0bb0f0 100644 --- a/drivers/mmc/host/sdhci-tegra.c +++ b/drivers/mmc/host/sdhci-tegra.c @@ -43,6 +43,9 @@ #define SDHCI_CLOCK_CTRL_PADPIPE_CLKEN_OVERRIDE BIT(3) #define SDHCI_CLOCK_CTRL_SPI_MODE_CLKEN_OVERRIDE BIT(2) +#define SDHCI_TEGRA_VENDOR_SYS_SW_CTRL 0x104 +#define SDHCI_TEGRA_SYS_SW_CTRL_ENHANCED_STROBE BIT(31) + #define SDHCI_TEGRA_VENDOR_CAP_OVERRIDES 0x10c #define SDHCI_TEGRA_CAP_OVERRIDES_DQS_TRIM_MASK 0x00003f00 #define SDHCI_TEGRA_CAP_OVERRIDES_DQS_TRIM_SHIFT 8 @@ -272,6 +275,23 @@ static void tegra_sdhci_set_tap(struct sdhci_host *host, unsigned int tap) } } +static void tegra_sdhci_hs400_enhanced_strobe(struct mmc_host *mmc, + struct mmc_ios *ios) +{ + struct sdhci_host *host = mmc_priv(mmc); + u32 val; + + val = sdhci_readl(host, SDHCI_TEGRA_VENDOR_SYS_SW_CTRL); + + if (ios->enhanced_strobe) + val |= SDHCI_TEGRA_SYS_SW_CTRL_ENHANCED_STROBE; + else + val &= ~SDHCI_TEGRA_SYS_SW_CTRL_ENHANCED_STROBE; + + sdhci_writel(host, val, SDHCI_TEGRA_VENDOR_SYS_SW_CTRL); + +} + static void tegra_sdhci_reset(struct sdhci_host *host, u8 mask) { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); @@ -950,6 +970,9 @@ static int sdhci_tegra_probe(struct platform_device *pdev) sdhci_tegra_start_signal_voltage_switch; } + host->mmc_host_ops.hs400_enhanced_strobe = + tegra_sdhci_hs400_enhanced_strobe; + rc = mmc_of_parse(host->mmc); if (rc) goto err_parse_dt; -- 2.7.4