Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp373716ybh; Thu, 12 Mar 2020 03:44:16 -0700 (PDT) X-Google-Smtp-Source: ADFU+vvEGJg4M9UX4dUbOHOaTonYqk8kcY1qPEf4+ZQHnbIdENCcIbf6hXohhFLHGFqMIg2sMHVY X-Received: by 2002:aca:bfc2:: with SMTP id p185mr2179249oif.57.1584009855824; Thu, 12 Mar 2020 03:44:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1584009855; cv=none; d=google.com; s=arc-20160816; b=dkU2oS7APdVDOsXP7J+sSG2f+Q5TrV6IOTft9OasdIvAa+tDyHuUNwZqbFJg/IjfOz LXHEFP8Ifp7o6+KBMzdtSHmycwS5bXpIqxGkrPEVwKvDyrR4vYz+IArFb3bv9Ucjl5aP 0+w4sODupPEiO6dXdd2WbkeidMkfDmvnvGbWE69wX6bLfShM6fX1xgHrN8qKlPrumg9w 3haUwCdaWuB4lCv2hm92tvxSMdNkEY1iEoSezunymPR1mArAX446ZTtaI0qEECzxS72J aXLNlPtN8/7DqAFPpU7s0RhGC0C4mdyW0xnSzweNi4JNyza1C/vHKn0xpXSgfonG1u2Z vBRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:dkim-filter; bh=cUZIHu3WpQthGwKHqTfTR6+eqUmRT0xXwV9Ie8yoyFU=; b=RGApP4pehRM+jA9BE+VmQqj4fRiU2XgzPebpO1g1qvFvarX9QAkH33KeqJRgxT3944 +2DJYq7PfneZ1sK2DUQh/pj5c7sLzOfE1e8acFuxPAytvAjZ/7/MopyDybIqy0n0QVTH BRmeN9+f6uzj8Rp8+kgvir8CViZYFnQud9WRTucyjxHpM9Oze2bGS18CiXqxJVSKdWRo NTqkK0EmAT8k3kSS/ZX20M1UQXbPRZ+ex4rrqp4z3FC+unQ48UrhaIR3w5m9Hry8stoS cQIuAsIYauEQ/JUtnBd8zbMEzl0E+CWqCPFZ+FE/CEO62OKbDpV82UzL1gtWKjUHrFEm Iu0Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=nNTIzEET; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t22si2391256oth.211.2020.03.12.03.44.03; Thu, 12 Mar 2020 03:44:15 -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; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=nNTIzEET; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726905AbgCLKn2 (ORCPT + 99 others); Thu, 12 Mar 2020 06:43:28 -0400 Received: from conuserg-08.nifty.com ([210.131.2.75]:50275 "EHLO conuserg-08.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725268AbgCLKn2 (ORCPT ); Thu, 12 Mar 2020 06:43:28 -0400 Received: from localhost.localdomain (p14092-ipngnfx01kyoto.kyoto.ocn.ne.jp [153.142.97.92]) (authenticated) by conuserg-08.nifty.com with ESMTP id 02CAh4cj016228; Thu, 12 Mar 2020 19:43:05 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conuserg-08.nifty.com 02CAh4cj016228 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1584009786; bh=cUZIHu3WpQthGwKHqTfTR6+eqUmRT0xXwV9Ie8yoyFU=; h=From:To:Cc:Subject:Date:From; b=nNTIzEETvbJTWfCjfCJ09nCj2Z/kFOqzqEWTxJskoSFJn6XJkaJPq0crXYAxhHJ3N p/uuqKfASY3y7q0pgFDHnaaw7YAlWFNtE1i0K0HSsCbNnyMHYqIB+27lVFQtc+CLGg rTDwR7gKjLfaQW37M8Cx7Vqfp/Zfxamg/54NcFTP68R63aTRP2JhmpDy1GyKb+NW74 n51XS/ednndCiU33z39zNB6N3Kc4q6BlBvOoPeSmhGAhGvHNdxzdhS+YmOWWLXMiWm qS8z2+9WGjKjFvLIQs8PHR8VpO0xKPDrEeNHR8JA33w7dhJVOHsLFfmQSck3Pn12Hl yYwK70uMdPlKw== X-Nifty-SrcIP: [153.142.97.92] From: Masahiro Yamada To: linux-mmc@vger.kernel.org, Adrian Hunter , Ulf Hansson Cc: Masahiro Yamada , linux-kernel@vger.kernel.org Subject: [PATCH] mmc: sdhci-cadence: set SDHCI_QUIRK2_PRESET_VALUE_BROKEN for UniPhier Date: Thu, 12 Mar 2020 19:42:57 +0900 Message-Id: <20200312104257.21017-1-yamada.masahiro@socionext.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The SDHCI_PRESET_FOR_* registers are not set for the UniPhier platform integration. (They are all read as zeros). Set the SDHCI_QUIRK2_PRESET_VALUE_BROKEN quirk flag. Otherwise, the High Speed DDR mode on the eMMC controller (MMC_TIMING_MMC_DDR52) would not work. I split the platform data to give no impact to other platforms, although the UniPhier platform is currently only the upstream user of this IP. The SDHCI_QUIRK2_PRESET_VALUE_BROKEN flag is set if the compatible string matches to "socionext,uniphier-sd4hc". Signed-off-by: Masahiro Yamada --- drivers/mmc/host/sdhci-cadence.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/sdhci-cadence.c b/drivers/mmc/host/sdhci-cadence.c index 5827d3751b81..e573495f8726 100644 --- a/drivers/mmc/host/sdhci-cadence.c +++ b/drivers/mmc/host/sdhci-cadence.c @@ -11,6 +11,7 @@ #include #include #include +#include #include "sdhci-pltfm.h" @@ -235,6 +236,11 @@ static const struct sdhci_ops sdhci_cdns_ops = { .set_uhs_signaling = sdhci_cdns_set_uhs_signaling, }; +static const struct sdhci_pltfm_data sdhci_cdns_uniphier_pltfm_data = { + .ops = &sdhci_cdns_ops, + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, +}; + static const struct sdhci_pltfm_data sdhci_cdns_pltfm_data = { .ops = &sdhci_cdns_ops, }; @@ -334,6 +340,7 @@ static void sdhci_cdns_hs400_enhanced_strobe(struct mmc_host *mmc, static int sdhci_cdns_probe(struct platform_device *pdev) { struct sdhci_host *host; + const struct sdhci_pltfm_data *data; struct sdhci_pltfm_host *pltfm_host; struct sdhci_cdns_priv *priv; struct clk *clk; @@ -350,8 +357,12 @@ static int sdhci_cdns_probe(struct platform_device *pdev) if (ret) return ret; + data = of_device_get_match_data(dev); + if (!data) + data = &sdhci_cdns_pltfm_data; + nr_phy_params = sdhci_cdns_phy_param_count(dev->of_node); - host = sdhci_pltfm_init(pdev, &sdhci_cdns_pltfm_data, + host = sdhci_pltfm_init(pdev, data, struct_size(priv, phy_params, nr_phy_params)); if (IS_ERR(host)) { ret = PTR_ERR(host); @@ -431,7 +442,10 @@ static const struct dev_pm_ops sdhci_cdns_pm_ops = { }; static const struct of_device_id sdhci_cdns_match[] = { - { .compatible = "socionext,uniphier-sd4hc" }, + { + .compatible = "socionext,uniphier-sd4hc", + .data = &sdhci_cdns_uniphier_pltfm_data, + }, { .compatible = "cdns,sd4hc" }, { /* sentinel */ } }; -- 2.17.1