From patchwork Tue Aug 31 17:49:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksandr Suvorov X-Patchwork-Id: 1522732 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=eo0AyGpG; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GzZTd0SHdz9sT6 for ; Wed, 1 Sep 2021 03:50:13 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C1C54831D8; Tue, 31 Aug 2021 19:50:04 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.b="eo0AyGpG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C84C683464; Tue, 31 Aug 2021 19:50:02 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [IPv6:2a00:1450:4864:20::131]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 61358831D8 for ; Tue, 31 Aug 2021 19:49:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=oleksandr.suvorov@foundries.io Received: by mail-lf1-x131.google.com with SMTP id b4so423348lfo.13 for ; Tue, 31 Aug 2021 10:49:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=G1RBJ6ARW766F6ahFNI+9jkZ1TrwYOlRNiBEJHBAIeQ=; b=eo0AyGpGog2CqFwK3o5JavcouBJPEQDzA0s9N2bxy5/3qd5n7oNSXJ1e5Bhii3fqvs 86ciemRQOblw646zI5U4Nw90wavJf3ESIGut0DoY5pZWTACcSKvQkHBQ49DP9iMx3eqH BGfBNCij2c4mhGWURFeeFCIBGb34KKVW2fxScfVysDIYckIP7ZZHbFXBc5IroQFtkz3W tbVhKgIdLeh6HHCy2wc8L6CKFPfB7nceKhQYBNmDNJ/JZjCybO3gM3/KDAy08CEr42Tn CfRCobsmgyBMTU4xFXeywMWmzII/4EDQM48HP5N4tblxjyCMrkMuodf+tPYzeJTzGIId SMnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=G1RBJ6ARW766F6ahFNI+9jkZ1TrwYOlRNiBEJHBAIeQ=; b=aWdY2lKflGZti2ufhvgZGTsMmCMA5i7A7n/+HOFaQ++OgIiqJ0vx4auWn8qLcgtTvo VvaMzNnpMC0y2fbzp6/N00j/n66AqhnkTkY0xVlLcDJBTZGQ6UjcqLkcHbkL3Myd5Z1B mnOu2ixFS1usUhqSRcxXafIrIY04fvikSEvLVooQEYRDllY+/jxkLk3tNpBEtC3Zr2ct CHt9Ze61KQBgVnmE5ToK/GHDJF6IWfaA+f1sbKqxcWsMnncxgDWf73uClhE99BreePoY 7KpkVfIjD46SsKRpaPCfy6ZjJ+tQICDiZw70M3UmsbjXEVnS0k+mAL4vYcipx9XmUZe6 TJlg== X-Gm-Message-State: AOAM533awxCOhzLNf0Q6EIybe2NjIPBH3+IE8sHTHdwa9AUeGt/Xyspx 65C3tT/YirzBMH78UtQaXjkDEL1HZBGGrg== X-Google-Smtp-Source: ABdhPJxqb3lGUV1pTTbRYmd43/hX2aEonLgV9gHCwYc9iSdIQweJJndu4IkujHfS5fGmfI7s4eyWIw== X-Received: by 2002:a05:6512:3b27:: with SMTP id f39mr21748946lfv.303.1630432197501; Tue, 31 Aug 2021 10:49:57 -0700 (PDT) Received: from cryobook.bearlog ([82.193.109.226]) by smtp.gmail.com with ESMTPSA id x9sm1788277lfa.233.2021.08.31.10.49.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Aug 2021 10:49:56 -0700 (PDT) From: Oleksandr Suvorov To: u-boot@lists.denx.de Cc: Ricardo Salveti , Igor Opaniuk , Jorge Ramirez-Ortiz , Oleksandr Suvorov , Fabio Estevam , Jaehoon Chung , Peng Fan Subject: [PATCH v2 1/2] mmc: fsl_esdhc_imx: initialize data for imx7ulp Date: Tue, 31 Aug 2021 20:49:53 +0300 Message-Id: <20210831174954.72009-1-oleksandr.suvorov@foundries.io> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean From: Jorge Ramirez-Ortiz Import data for eSDHC driver for SoC iMX7ULP from the Linux kernel. Set supported by u-boot flags only. Signed-off-by: Jorge Ramirez-Ortiz Signed-off-by: Ricardo Salveti Co-developed-by: Oleksandr Suvorov Signed-off-by: Oleksandr Suvorov Reviewed-by: Fabio Estevam Reviewed-by: Jaehoon Chung --- Changes in v2: - add a Reviewed-by record drivers/mmc/fsl_esdhc_imx.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c index aabf39535f..6c8f77f9ee 100644 --- a/drivers/mmc/fsl_esdhc_imx.c +++ b/drivers/mmc/fsl_esdhc_imx.c @@ -1706,6 +1706,11 @@ static struct esdhc_soc_data usdhc_imx7d_data = { | ESDHC_FLAG_HS400, }; +static struct esdhc_soc_data usdhc_imx7ulp_data = { + .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING + | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200, +}; + static struct esdhc_soc_data usdhc_imx8qm_data = { .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200 | @@ -1720,7 +1725,7 @@ static const struct udevice_id fsl_esdhc_ids[] = { { .compatible = "fsl,imx6sl-usdhc", }, { .compatible = "fsl,imx6q-usdhc", }, { .compatible = "fsl,imx7d-usdhc", .data = (ulong)&usdhc_imx7d_data,}, - { .compatible = "fsl,imx7ulp-usdhc", }, + { .compatible = "fsl,imx7ulp-usdhc", .data = (ulong)&usdhc_imx7ulp_data,}, { .compatible = "fsl,imx8qm-usdhc", .data = (ulong)&usdhc_imx8qm_data,}, { .compatible = "fsl,imx8mm-usdhc", .data = (ulong)&usdhc_imx8qm_data,}, { .compatible = "fsl,imx8mn-usdhc", .data = (ulong)&usdhc_imx8qm_data,}, From patchwork Tue Aug 31 17:49:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksandr Suvorov X-Patchwork-Id: 1522733 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.a=rsa-sha256 header.s=google header.b=Q97P/u1+; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4GzZTp1v8Nz9sRN for ; Wed, 1 Sep 2021 03:50:22 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E9B688347C; Tue, 31 Aug 2021 19:50:07 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=foundries.io header.i=@foundries.io header.b="Q97P/u1+"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AF65C831D8; Tue, 31 Aug 2021 19:50:03 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id A407F81FC6 for ; Tue, 31 Aug 2021 19:49:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=foundries.io Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=oleksandr.suvorov@foundries.io Received: by mail-lf1-x12c.google.com with SMTP id k13so558926lfv.2 for ; Tue, 31 Aug 2021 10:49:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foundries.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lWpd++eXy8UGFLQ562HZqK7gIX+rfbpr4zcUsbctwXE=; b=Q97P/u1+VOCcOybilkaILfWmP1v3GY0pZUJx46pHZl1mmz4Y6ngv+WoLF9zXwZCQR1 0PohhFLMgpjCc4a6PC9tL3v6b2R5JrUbUSTP2bclhSKJodYZQS8HKurpLoOQj+eOgxzf fwzYdjNDLOK1xkypos/ygPIqIDTZk3aNbD+U0DvCrMzVHj34vMICW7ClBkKEi/SPpxTs 8ReqPaWAIOByt/EepfqCA+f+WzxN3kwJ1SCAubKWZNtvH9ngViukBTr8O1puf/42mlLv nkNBgX8eEdQ/d/RLAcRXaqXm9QqLaLKNwgfCVGFHdOVzLy8MzuAytfZoSYvtmYaSh2MH WiFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=lWpd++eXy8UGFLQ562HZqK7gIX+rfbpr4zcUsbctwXE=; b=lY8j9ATjWm2faohsxiruQLJZkAjJYU7s6MZpQMFjzD5kJxAhbVuDvrrVXfAIq7UBq4 2TkfngWv/7NFajaQc6awHDcX+LHIl+2Ql3pIyTWj76AdxPXjotXa6D+FhmwS4GdKp4fn nNzi1bFA6Yc8B6NW14b8qy4HxC07wfV3NRr+BUWiNfO47jMBPapeLSELx1fcx4RhqMFH /EJkMcZ+d769yQAoQuXqe5uns+1bUx2HslQQ0KNnSTSAl6KCuLnszoG+zd669hBEaE6x 6Mx+f0f3AVDIH96OfJVBAD0uoB85elqGthx3QuzzzpsFLNQyp7Bi486AOgQFbQA5zLSx jD2Q== X-Gm-Message-State: AOAM531Ul878HBgBy47K+gJe70RoyAGwE+3X/+r47dbrtNL2ZlFGf6tE SrLAiPZtd8xeLtYsj7zRDY5v1aLiRPVmOg== X-Google-Smtp-Source: ABdhPJx7xiC0ZdC7ePQS9jfPzrmYzLNKnHT4csQStRZv9yQBI9cAI4hmPRbnBknJvKAXw1FLAQbqRA== X-Received: by 2002:a05:6512:e99:: with SMTP id bi25mr22014021lfb.486.1630432198796; Tue, 31 Aug 2021 10:49:58 -0700 (PDT) Received: from cryobook.bearlog ([82.193.109.226]) by smtp.gmail.com with ESMTPSA id x9sm1788277lfa.233.2021.08.31.10.49.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Aug 2021 10:49:58 -0700 (PDT) From: Oleksandr Suvorov To: u-boot@lists.denx.de Cc: Ricardo Salveti , Igor Opaniuk , Jorge Ramirez-Ortiz , Oleksandr Suvorov , Fabio Estevam , Haibo Chen , Jaehoon Chung , Peng Fan Subject: [PATCH v2 2/2] mmc: sdhci-esdhc-imx: Add HS400 support for iMX7ULP Date: Tue, 31 Aug 2021 20:49:54 +0300 Message-Id: <20210831204945.v2.2.575fac7c32@changeid> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210831174954.72009-1-oleksandr.suvorov@foundries.io> References: <20210831174954.72009-1-oleksandr.suvorov@foundries.io> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean Import HS400 support for iMX7ULP B0 from the Linux kernel: 2eaf5a533afd ("mmc: sdhci-esdhc-imx: Add HS400 support for iMX7ULP") According to IC suggest, need to clear the STROBE_DLL_CTRL_RESET before any setting of STROBE_DLL_CTRL register. USDHC has register bits(bit[27~20] of register STROBE_DLL_CTRL) for slave sel value. If this register bits value is 0, it needs 256 ref_clk cycles to update slave sel value. IC suggest to set bit[27~20] to 0x4, it only need 4 ref_clk cycle to update slave sel value. This will short the lock time of slave. i.MX7ULP B0 will need more time to lock the REF and SLV, so change to add 5us delay. Signed-off-by: Oleksandr Suvorov Reviewed-by: Fabio Estevam Reviewed-by: Jaehoon Chung Reviewed-by: Igor Opaniuk --- Changes in v2: - fixed Series-notes record. - added Reviewed-by records. drivers/mmc/fsl_esdhc_imx.c | 11 ++++++++--- include/fsl_esdhc_imx.h | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c index 6c8f77f9ee..569f099d9b 100644 --- a/drivers/mmc/fsl_esdhc_imx.c +++ b/drivers/mmc/fsl_esdhc_imx.c @@ -727,17 +727,21 @@ static void esdhc_set_strobe_dll(struct mmc *mmc) if (priv->clock > ESDHC_STROBE_DLL_CLK_FREQ) { esdhc_write32(®s->strobe_dllctrl, ESDHC_STROBE_DLL_CTRL_RESET); + /* clear the reset bit on strobe dll before any setting */ + esdhc_write32(®s->strobe_dllctrl, 0); + /* * enable strobe dll ctrl and adjust the delay target * for the uSDHC loopback read clock */ val = ESDHC_STROBE_DLL_CTRL_ENABLE | + ESDHC_STROBE_DLL_CTRL_SLV_UPDATE_INT_DEFAULT | (priv->strobe_dll_delay_target << ESDHC_STROBE_DLL_CTRL_SLV_DLY_TARGET_SHIFT); esdhc_write32(®s->strobe_dllctrl, val); - /* wait 1us to make sure strobe dll status register stable */ - mdelay(1); + /* wait 5us to make sure strobe dll status register stable */ + mdelay(5); val = esdhc_read32(®s->strobe_dllstat); if (!(val & ESDHC_STROBE_DLL_STS_REF_LOCK)) pr_warn("HS400 strobe DLL status REF not lock!\n"); @@ -1708,7 +1712,8 @@ static struct esdhc_soc_data usdhc_imx7d_data = { static struct esdhc_soc_data usdhc_imx7ulp_data = { .flags = ESDHC_FLAG_USDHC | ESDHC_FLAG_STD_TUNING - | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200, + | ESDHC_FLAG_HAVE_CAP1 | ESDHC_FLAG_HS200 + | ESDHC_FLAG_HS400, }; static struct esdhc_soc_data usdhc_imx8qm_data = { diff --git a/include/fsl_esdhc_imx.h b/include/fsl_esdhc_imx.h index 45ed635a77..12e9163382 100644 --- a/include/fsl_esdhc_imx.h +++ b/include/fsl_esdhc_imx.h @@ -194,6 +194,7 @@ #define ESDHC_STROBE_DLL_CTRL_RESET BIT(1) #define ESDHC_STROBE_DLL_CTRL_SLV_DLY_TARGET_DEFAULT 0x7 #define ESDHC_STROBE_DLL_CTRL_SLV_DLY_TARGET_SHIFT 3 +#define ESDHC_STROBE_DLL_CTRL_SLV_UPDATE_INT_DEFAULT (4 << 20) #define ESDHC_STROBE_DLL_STATUS 0x74 #define ESDHC_STROBE_DLL_STS_REF_LOCK BIT(1)