From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 33D77392C2D for ; Mon, 13 Apr 2026 07:25:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776065142; cv=none; b=MGJBT0ggeBJWzSkIN2+H9suII7Okk69Denv1O+/NVvKBwd8AxH5EHYt1muf/9vPgZA5HQxsZVPJsiIbW6zEPNR47Lp57vJTl6CF1gRMYYxt8aYAB/tOD+Ly9xIKMMzO7Ym0wcP+vtfBJTiQHCX7m21qKkdWHayfl8na/qPeB+tQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776065142; c=relaxed/simple; bh=BQj/LtLtvJAa8qPvNururbfdiFEeQmxim48bMkau+Ek=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=d7QHj2VMQJNOLfo+wcbZ7TmdvxDoNq+tvagd0jdM161dsQTz0IIQlcgvP8YVXkZuN319s++4g2VN5t9FNL/6wE6fyOnmDdD0Lq4oFiVKupDSbUXtWzS0sgc8wLRh/p9fLEd+aZEUpWTDbKD1E2LmUHgDLJyNs7lbkv08hHymv28= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Dxy/9DDI; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Dxy/9DDI" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-488b0e1b870so65203575e9.2 for ; Mon, 13 Apr 2026 00:25:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776065140; x=1776669940; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ej5PuXGxv2ijMAzQ8gpPPur0ekJN7jy1Kje2MEZFQ7M=; b=Dxy/9DDIGXJAJR6v/29a5mDLaRTrjrD9EcBfoFTbxau8z+v9R1dY9rNcTY48PzcnCQ TbhKU+pe3JukbEwIBkibrXBxc0ZHkrA2XTgHLeh/RIrw8Po37Othw7sIgHZL7h+1t3Cl 5ZpOER+qdsLYP5CgHCk4I2pBQEfDLl+JqvBuFXP7ykUkaogupyS8PKyFT/3p/QUnH2ki 9/l6WF9URXfu6q19rw/0QKU2Pw8rK4GQbxDUPNxTZR0SFcdv8wVVSENIFCDYNiXNZ64f mIHq/pNAF6x9frYgxqesMYJgfLTBN7aQ89f2nP8UOk3CXwXWJact+blfCGPvZCEsgg6P wUwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776065140; x=1776669940; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Ej5PuXGxv2ijMAzQ8gpPPur0ekJN7jy1Kje2MEZFQ7M=; b=Qp0cAlz40GiwelGONtlg+me+XgaS+PSr5sA07FOZJmXB7Ly6vOxJfUCcqQoDY7xALK 2QMYP/xqzVnOyZg3M10j3yyIRdnn7xEiGvWC+itlhWMID1BFqJCeyt48EK9PeopCJtIw mvRWYmyEuCfeuC+U6ywPLQrr0XnQYA4WInFvtjXZj39V3B8nkh5j7LX1BGXBNAkAYxJi bmqnnsCENjOh1uwoXtNHATUbQxjEsa+d6gTeGJv/vTY/YYaAUhFm4Tsk2at5Xv35ZYG8 wMphYsPknc9Jwc8ajD4eQ1r5VZJCzJSjn0y60N4Vva1s59ukZBzoutZ1rOXLZvF5oO8t trEA== X-Forwarded-Encrypted: i=1; AFNElJ8qJ/A4VrHVgCs5ONmgmvAHJuTjzek8vZOAilb6MdSPl/zzBiNnkd+9mDJB4y10PoHVDy3MValMFtIvHOc=@vger.kernel.org X-Gm-Message-State: AOJu0Yx7oeKQYq9TUO7l5DH4S6uDIxwCRqqOzeWW3eMUst8UJdUXVdGN 2eXU22OC3WJz1Kk7sSVnlFozji2z+zkN/Y/5rdkpjDCDfvDObGs4HcM+ X-Gm-Gg: AeBDievf+FIY//Xo981UFJlhVWSiIwqM5yhdOfwpGNrtMJsY5yoZsmXIqERhyyQsuYC Kzxea6LHHCQ97GCBTueVfBs1neXLlAYnoOO+tmYGn7iVPaoKaieR2PiUiOb1sF+vcrwySQmuu+K 8TOu1lEq46gbAZCjIBhxZm1n59yxmDdssPn3iQn8uXTbMKYUdWhvZfKB1TqXYhKA6shceCFCu0h 7/P+6ybFByevUp8mihmtDfJpe2Ug/c2GUi65D2SVbxqSc3xoFgL2pUECAka4vgsqUVLJikTWajD zJMTeUvvh0jSicTftO34vbwkOHUavoQ3r6Li5l+1CuxigabxhVYV/ayrqAZbo7MfCNFXfgMYs6j si2QRv/VKmjM+rciPf+2luuIvZvjmePQanVDW/ANqwUhWIlePasLNddan6qwQAMLkMstmEpQxA9 QSoCj2oGw6BZEa3r7jQ5lSyoGXsRSXece4WcrwLUE02/WwVSMXNvYDvcSkygzLQ7Vd X-Received: by 2002:a05:600c:8b30:b0:488:b14f:b8ed with SMTP id 5b1f17b1804b1-488d6657928mr167657735e9.0.1776065139301; Mon, 13 Apr 2026 00:25:39 -0700 (PDT) Received: from ipedrosa-thinkpadx1carbongen12.rmtes.csb ([67.218.239.37]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488cd10b1dbsm220827305e9.2.2026.04.13.00.25.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Apr 2026 00:25:38 -0700 (PDT) From: Iker Pedrosa To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Yixun Lan Cc: Iker Pedrosa , Troy Mitchell , Michael Opdenacker , Javier Martinez Canillas , linux-mmc@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Anand Moon , Trevor Gamblin , Vincent Legoll Subject: [PATCH v7 2/9] mmc: sdhci-of-k1: enable essential clock infrastructure for SD operation Date: Mon, 13 Apr 2026 09:24:44 +0200 Message-ID: <20260413-orangepi-sd-card-uhs-v7-2-16650f49c022@gmail.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260413-orangepi-sd-card-uhs-v7-0-16650f49c022@gmail.com> References: <20260413-orangepi-sd-card-uhs-v7-0-16650f49c022@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.3 Content-Transfer-Encoding: 8bit Ensure SD card pins receive clock signals by enabling pad clock generation and overriding automatic clock gating. Required for all SD operation modes. The SDHC_GEN_PAD_CLK_ON setting in LEGACY_CTRL_REG is safe for both SD and eMMC operation as both protocols use the same physical MMC interface pins and require proper clock signal generation at the hardware level for signal integrity and timing. Additional SD-specific clock overrides (SDHC_OVRRD_CLK_OEN and SDHC_FORCE_CLK_ON) are conditionally applied only for SD-only controllers to handle removable card scenarios. Tested-by: Anand Moon Acked-by: Adrian Hunter Tested-by: Trevor Gamblin Reviewed-by: Troy Mitchell Tested-by: Vincent Legoll Signed-off-by: Iker Pedrosa --- drivers/mmc/host/sdhci-of-k1.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c index 455656f9842d..0dd06fc19b85 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -21,6 +21,13 @@ #include "sdhci.h" #include "sdhci-pltfm.h" +#define SPACEMIT_SDHC_OP_EXT_REG 0x108 +#define SDHC_OVRRD_CLK_OEN BIT(11) +#define SDHC_FORCE_CLK_ON BIT(12) + +#define SPACEMIT_SDHC_LEGACY_CTRL_REG 0x10C +#define SDHC_GEN_PAD_CLK_ON BIT(6) + #define SPACEMIT_SDHC_MMC_CTRL_REG 0x114 #define SDHC_MISC_INT_EN BIT(1) #define SDHC_MISC_INT BIT(2) @@ -101,6 +108,12 @@ static void spacemit_sdhci_reset(struct sdhci_host *host, u8 mask) if (!(host->mmc->caps2 & MMC_CAP2_NO_MMC)) spacemit_sdhci_setbits(host, SDHC_MMC_CARD_MODE, SPACEMIT_SDHC_MMC_CTRL_REG); + + spacemit_sdhci_setbits(host, SDHC_GEN_PAD_CLK_ON, SPACEMIT_SDHC_LEGACY_CTRL_REG); + + if (host->mmc->caps2 & MMC_CAP2_NO_MMC) + spacemit_sdhci_setbits(host, SDHC_OVRRD_CLK_OEN | SDHC_FORCE_CLK_ON, + SPACEMIT_SDHC_OP_EXT_REG); } static void spacemit_sdhci_set_uhs_signaling(struct sdhci_host *host, unsigned int timing) -- 2.53.0