{"id":2232185,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2232185/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260503-dwmmc-exynos-hs400-es-v2-3-3ff1526142a7@disroot.org/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/1.2/projects/18/?format=json","name":"U-Boot","link_name":"uboot","list_id":"u-boot.lists.denx.de","list_email":"u-boot@lists.denx.de","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260503-dwmmc-exynos-hs400-es-v2-3-3ff1526142a7@disroot.org>","list_archive_url":null,"date":"2026-05-03T12:21:28","name":"[v2,3/4] mmc: exynos_dw_mmc: add support for HS400ES","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"86701c3f67295ed08f04faa17725360c6a98ac02","submitter":{"id":88698,"url":"http://patchwork.ozlabs.org/api/1.2/people/88698/?format=json","name":"Kaustabh Chakraborty","email":"kauschluss@disroot.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260503-dwmmc-exynos-hs400-es-v2-3-3ff1526142a7@disroot.org/mbox/","series":[{"id":502575,"url":"http://patchwork.ozlabs.org/api/1.2/series/502575/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=502575","date":"2026-05-03T12:21:25","name":"HS400 and HS400ES support for Exynos DW-MMC drivers","version":2,"mbox":"http://patchwork.ozlabs.org/series/502575/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2232185/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2232185/checks/","tags":{},"related":[],"headers":{"Return-Path":"<u-boot-bounces@lists.denx.de>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=disroot.org header.i=@disroot.org header.a=rsa-sha256\n header.s=mail header.b=I98WuJ4o;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=disroot.org","phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de","phobos.denx.de;\n\tdkim=pass (2048-bit key;\n secure) header.d=disroot.org header.i=@disroot.org header.b=\"I98WuJ4o\";\n\tdkim-atps=neutral","phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=disroot.org","phobos.denx.de;\n spf=pass smtp.mailfrom=kauschluss@disroot.org"],"Received":["from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g7kjQ1pSMz1y04\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 03 May 2026 22:34:02 +1000 (AEST)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id A0CB38460E;\n\tSun,  3 May 2026 14:33:36 +0200 (CEST)","by phobos.denx.de (Postfix, from userid 109)\n id 7C8F283EF9; Sun,  3 May 2026 14:21:47 +0200 (CEST)","from layka.disroot.org (layka.disroot.org [178.21.23.139])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 9E6BF83FEC\n for <u-boot@lists.denx.de>; Sun,  3 May 2026 14:21:45 +0200 (CEST)","from mail01.disroot.lan (localhost [127.0.0.1])\n by disroot.org (Postfix) with ESMTP id 6C21326AAB;\n Sun,  3 May 2026 14:21:45 +0200 (CEST)","from layka.disroot.org ([127.0.0.1])\n by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP\n id f5NfmxIJby3U; Sun,  3 May 2026 14:21:44 +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,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail;\n t=1777810904; bh=YvP4mHZMNAXrNUUHjMCFc3wX39kTiGW7icaWRA0RYT0=;\n h=From:Date:Subject:References:In-Reply-To:To:Cc;\n b=I98WuJ4oyGrVQZZ5OcLlKnnpBCaiz/or1PcF9p7jRszqpH4c1izM3XPLjRW/t0DoY\n /jVfu/lSFLQu2X6FaTB/T2BL1wivjuwNVANnWz9DjtcVgSRwFMZWv0zElsBuuPX8YI\n eHosUr1dhCTxb3WOZn51Cx5s2M1nyIC0YOymvNWCXBRxrXLbOFIL+8x6GqWr5Vt4T2\n nGo+JsJQryD3GJgCTRXLLymgZisXS5hWGDDnzejIGT3JAguM1OJQ3oxJa6E00Ybn8V\n VssbLcb8JtSCQeBjTN71TqGQrxJb6cyYx+sSYPEfDC6sCiVI7LEkf5wiCX2mLbVrZe\n MQoJPBLHC1yWQ==","From":"Kaustabh Chakraborty <kauschluss@disroot.org>","Date":"Sun, 03 May 2026 17:51:28 +0530","Subject":"[PATCH v2 3/4] mmc: exynos_dw_mmc: add support for HS400ES","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"7bit","Message-Id":"<20260503-dwmmc-exynos-hs400-es-v2-3-3ff1526142a7@disroot.org>","References":"<20260503-dwmmc-exynos-hs400-es-v2-0-3ff1526142a7@disroot.org>","In-Reply-To":"<20260503-dwmmc-exynos-hs400-es-v2-0-3ff1526142a7@disroot.org>","To":"Peng Fan <peng.fan@nxp.com>, u-boot@lists.denx.de","Cc":"Minkyu Kang <mk7.kang@samsung.com>, Tom Rini <trini@konsulko.com>,\n Jaehoon Chung <jh80.chung@samsung.com>, Anand Moon <linux.amoon@gmail.com>,\n Sam Protsenko <semen.protsenko@linaro.org>,\n Lukas Timmermann <uboot@timmermann.space>,\n Henrik Grimler <henrik@grimler.se>,\n Kaustabh Chakraborty <kauschluss@disroot.org>","X-Mailman-Approved-At":"Sun, 03 May 2026 14:33:33 +0200","X-BeenThere":"u-boot@lists.denx.de","X-Mailman-Version":"2.1.39","Precedence":"list","List-Id":"U-Boot discussion <u-boot.lists.denx.de>","List-Unsubscribe":"<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>","List-Archive":"<https://lists.denx.de/pipermail/u-boot/>","List-Post":"<mailto:u-boot@lists.denx.de>","List-Help":"<mailto:u-boot-request@lists.denx.de?subject=help>","List-Subscribe":"<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>","Errors-To":"u-boot-bounces@lists.denx.de","Sender":"\"U-Boot\" <u-boot-bounces@lists.denx.de>","X-Virus-Scanned":"clamav-milter 0.103.8 at phobos.denx.de","X-Virus-Status":"Clean"},"content":"Add support for HS400ES. This is trivial as no new init sequence is\nrequired in the driver, add it to the host driver capabilities, and\ndirect the HS400ES mode on reusing the HS400 init sequence.\n\nSigned-off-by: Kaustabh Chakraborty <kauschluss@disroot.org>\n---\n drivers/mmc/exynos_dw_mmc.c | 13 +++++++++----\n 1 file changed, 9 insertions(+), 4 deletions(-)","diff":"diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c\nindex 6558cdc803d..e0c4bbb17cc 100644\n--- a/drivers/mmc/exynos_dw_mmc.c\n+++ b/drivers/mmc/exynos_dw_mmc.c\n@@ -185,6 +185,7 @@ static void exynos_config_hs400(struct dwmci_host *host, enum bus_mode mode)\n \tstrobe = priv->saved_strobe_ctrl;\n \n \tswitch (mode) {\n+\tcase MMC_HS_400_ES:\n \tcase MMC_HS_400:\n \t\tdqs |= DATA_STROBE_EN;\n \t\tstrobe = DQS_CTRL_RD_DELAY(strobe, priv->dqs_delay);\n@@ -205,6 +206,7 @@ static int exynos_dwmci_clksel(struct dwmci_host *host)\n \tu32 timing;\n \n \tswitch (host->mmc->selected_mode) {\n+\tcase MMC_HS_400_ES:\n \tcase MMC_HS_400:\n \t\ttiming = CLKSEL_UP_SAMPLE(priv->hs400_timing, priv->tuned_sample);\n \t\tbreak;\n@@ -224,7 +226,8 @@ static int exynos_dwmci_clksel(struct dwmci_host *host)\n \n \tdwmci_writel(host, priv->chip->clksel, timing);\n \n-\tif (CONFIG_IS_ENABLED(MMC_HS400_SUPPORT))\n+\tif (CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) ||\n+\t    CONFIG_IS_ENABLED(MMC_HS400_ES_SUPPORT))\n \t\texynos_config_hs400(host, host->mmc->selected_mode);\n \n \treturn 0;\n@@ -239,7 +242,8 @@ static unsigned int exynos_dwmci_get_clk(struct dwmci_host *host, uint freq)\n \t/* Should be double rate for DDR or HS mode */\n \tif ((host->mmc->selected_mode == MMC_DDR_52 &&\n \t     host->mmc->bus_width == 8) ||\n-\t    host->mmc->selected_mode == MMC_HS_400) {\n+\t    host->mmc->selected_mode == MMC_HS_400 ||\n+\t    host->mmc->selected_mode == MMC_HS_400_ES) {\n \t\tfreq *= 2;\n \t}\n \n@@ -264,7 +268,8 @@ static void exynos_dwmci_board_init(struct dwmci_host *host)\n {\n \tstruct dwmci_exynos_priv_data *priv = exynos_dwmmc_get_priv(host);\n \n-\tif (CONFIG_IS_ENABLED(MMC_HS400_SUPPORT)) {\n+\tif (CONFIG_IS_ENABLED(MMC_HS400_SUPPORT) ||\n+\t    CONFIG_IS_ENABLED(MMC_HS400_ES_SUPPORT)) {\n \t\tpriv->saved_strobe_ctrl = dwmci_readl(host, DWMCI_HS400_DLINE_CTRL);\n \t\tpriv->saved_dqs_en = dwmci_readl(host, DWMCI_HS400_DQS_EN);\n \t\tpriv->saved_dqs_en |= AXI_NON_BLOCKING_WR;\n@@ -522,7 +527,7 @@ static int exynos_dwmmc_probe(struct udevice *dev)\n \thost->name = dev->name;\n \thost->board_init = exynos_dwmci_board_init;\n \thost->caps = MMC_MODE_DDR_52MHz | MMC_MODE_HS200 | MMC_MODE_HS400 |\n-\t\t     UHS_CAPS;\n+\t\t     MMC_MODE_HS400_ES | UHS_CAPS;\n \thost->clksel = exynos_dwmci_clksel;\n \thost->get_mmc_clk = exynos_dwmci_get_clk;\n \n","prefixes":["v2","3/4"]}