From nobody Wed Apr 8 13:08:31 2026 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (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 8B7E43A5426 for ; Tue, 7 Apr 2026 08:26:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775550367; cv=none; b=uyzQgn5a22uKOpCczJKSXh5WZi0fLRRvRyjs7VsRIo0danMeR0XiAeCXj4F6MPbxpYbVWAg8ZANJc3GEHKS38562PnYgrpD0ERUDYgJpSwQQywpnTXHKhIgaaQqlBonhf+t7PYevMmP9/EYtMPJSobqH4Tdygjrxj4/bq0w7Rug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775550367; c=relaxed/simple; bh=pYJvYi3wGayZHU9DE3xysB2ygNEcNECfzw4JJTA9oS4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bvIeMHX2jAQ63EB9hpni+eg6YJSTpJvVKQh2emnnxtyvh0+zozL8/RgHF0Z/CGfKHn2N/bjLdnVcxgK9Nd63daAfPZkCOU7ikUgmju41F5vcs90pUCOfCChRb+QR6qJDUzpHIPFVLmABEOBNc47N4n/XuoymtMTfe/N2j4srAa8= 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=UosiLVRO; arc=none smtp.client-ip=209.85.221.47 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="UosiLVRO" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-43cfe71e5d3so4169451f8f.0 for ; Tue, 07 Apr 2026 01:26:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775550364; x=1776155164; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=peA/baapFwTx+WaActDGaVNbab5ZZYgiEvN0ikh1DXM=; b=UosiLVRO0f/NtnSvQ3BS0HsaRY0kpZZtGQdEGUEzT1MqivhX++fFHNBDAm2JNhnRkV KF+xqA+rXUSuFQPpHxiPLxNY/MveA/idy46IDYReNUbdkFxzjaBtOzphVOhePToeofJJ ecKUxV76J/j+uwywMRMs3BUGfkLj5Iprb+cPFrhZBsGTGQC3GB3hCKMKTdU4F0wNRCnx N5eTumlAccWimGNYnIJRruehJQirfLSTnL/005zHyyekm1ilN0PcQ29gg0+sw1KP2/n9 rBS8eBbdaWNoACF+MTJiPcBlIjC4gnzc4NRrhYB/gn9JKkk5KD6xBfMGCsVRayk1fhbZ ODjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775550364; x=1776155164; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=peA/baapFwTx+WaActDGaVNbab5ZZYgiEvN0ikh1DXM=; b=mytMBZCU5tep3UDZUdozDHDSfVQDwITGoGO1UDkv7jeFpk+nzS5Zj0aeNis+q+IctU cOK5fSCDG0xQicqG/sL1JJSfOKkym1xQmHnD6YhGIWBl+oG4oBWM75qUhDQmfsa03dCN fhUGcVaRMA1W2DNV9oCCnhtF1qqWrXlWwbxKRjRZg4Q+d9dB66T1DziKXswmEfeo6Z6z R6BD0VDskBqhPgFOQtLnwJV9np90RMNOvX6x1rs2W64mHxholIPnLcBT1ZDBrWpgUVpV MfZrW/22MqGQbfYDSinMTpXN40MqY4foJ7gOUAITA4xH0XTEDWrYQtQzRZDWGof1sP7b 7yaQ== X-Forwarded-Encrypted: i=1; AJvYcCVfgeuvseZRBizUkrAc//5NFD/cCTlxZpTxY2/412zHImN7OZzX+UM07/PO/yyl6ZSlOgDItXFLwaee/p8=@vger.kernel.org X-Gm-Message-State: AOJu0YyifCH1/nk2VgF3x7a3Ewn+zpndBl/K4+Y4KOQhXya7W39lqpnF DjMmIvtCXdPxYA+WlY8x0hllcS/CtMUPwQeZAfISPO0KBoe5mda6uud/ X-Gm-Gg: AeBDiev2xWDT7b7BSaygMxcuwEP9FR9ktGCTI2n7p/5aG+BU3XXOFqxcdQFW39wU7U9 stVwsFGkkTrxVZSe/y/zsv2a7xQAqfnpA3vAejN7Vbd5EvbNHNsWxkzQvjRn0kXlILBpVRvuXmu vGBcuxYiqh+Ctn7g1aZeai9AJTQBvqMI/P/G6NVkvw2B0FKWUHa5BjZrtsUkl/9jcDym0XNNiG8 ovrOt+Wf8iu5h0kR0Sy15xefPBSv0Yl36A4bbKviDKEmQVwbDjymxBO8T6qZHcN1IeKr55c1N2m xEiwb83d81uSPAd6iLf7+2FlU/lhBh7bxfAQRuyoJZF3Cn4jUfdM91dSr6RGxlswqY8+s/tIB7b XWjxmonpFCCWTqh7ADu/dbnk4SETEdNx2wJD60fL/Fei0lpzJ0aXto8Onfk3WsW5hXAz+twxP3j w468+E5IzZ9e8wpDN0cSkpDFzpEcmioCMNlFvdSa2T1tE9c0iHK0z2vsPoYkjo7o2t X-Received: by 2002:a05:6000:1446:b0:439:dfae:8083 with SMTP id ffacd0b85a97d-43d292dbc56mr23436623f8f.38.1775550363826; Tue, 07 Apr 2026 01:26:03 -0700 (PDT) Received: from ipedrosa-thinkpadx1carbongen12.rmtes.csb ([67.218.239.37]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e4d29bbsm48669958f8f.21.2026.04.07.01.26.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Apr 2026 01:26:03 -0700 (PDT) From: Iker Pedrosa Date: Tue, 07 Apr 2026 10:25:22 +0200 Subject: [PATCH v6 2/9] mmc: sdhci-of-k1: enable essential clock infrastructure for SD operation 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" Content-Transfer-Encoding: quoted-printable Message-Id: <20260407-orangepi-sd-card-uhs-v6-2-b5b8a1b2bfc8@gmail.com> References: <20260407-orangepi-sd-card-uhs-v6-0-b5b8a1b2bfc8@gmail.com> In-Reply-To: <20260407-orangepi-sd-card-uhs-v6-0-b5b8a1b2bfc8@gmail.com> To: Ulf Hansson , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Adrian Hunter , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , Yixun Lan , Yixun Lan Cc: 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, Iker Pedrosa , Anand Moon , Trevor Gamblin X-Mailer: b4 0.14.2 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 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 455656f9842df90c7a94a290aeec22157b378fc1..0dd06fc19b8574ae1b00f7e5d09= b7d4c87d06770 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" =20 +#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 *ho= st, u8 mask) =20 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_CT= RL_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); } =20 static void spacemit_sdhci_set_uhs_signaling(struct sdhci_host *host, unsi= gned int timing) --=20 2.53.0