From nobody Fri Apr 3 22:33:50 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 6B73438B148 for ; Mon, 23 Mar 2026 10:19:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774261173; cv=none; b=JsKKvN5WF8gtDqmCRvwzdbIVsa04TAIowlca2XFvBXW3zlOKDqmsGzrqzDLlUG7umIZ1qLK+c6Uya+COcCwL9FD4PugSFKN+ERBFy88hFdz/WlP+leMhxbsU7RAasofkRPyyIYPMntNBGlbY44pzN16+NmL7L2z0vtGmNr4TqNg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774261173; c=relaxed/simple; bh=qUA8SRWMHXak4DMGjiU5xSTobYDglxv6lNBrFgz1elQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GB9V2db+iLBFxBXxhJfBtZBQphSTadvmGoo8K7gYxTIOpteXuG4D99z14Zm3+1RJIw6IUFfibSBNC4p6GkQ8JPCatDuCRZ+1/rsnZt8Xq603vaTqvwSXkQ7QlOijorNGtX+FtZk9CvdWZ9gMG95w42VGtzf0Al+nufmvFuAedow= 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=Ga6pgZT7; arc=none smtp.client-ip=209.85.128.41 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="Ga6pgZT7" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-4852afd42ceso32018625e9.2 for ; Mon, 23 Mar 2026 03:19:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1774261171; x=1774865971; 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=AvVWaFSwZuIIuqOAIjURBh3MX19UZqagVH7905iJLbY=; b=Ga6pgZT7b6ytinMbdIhxT7vM3/QrBQvXuef/X5KCzK6RVQt4HJVfTdjvxl1udNN5a9 1Eo8Mi0SKCYZeZpDQhTNNJggRvm8QwIBoPvfJ4MGrJRnFTVJfAj/MlN5wH97geU6bnk2 0rgHwl9bGK+wCW9sVkJWsIQKq3AKXoSu6g+E+7OqPuR/yecINcLhgTdEMviI+bk/pt+J SCpdRkItAxkCulKYi8QUmIyJojM2f5vkeTPHrpUNScKO94LIhHunDWNZMplw1UtXyi/v H4LmlDv1m8v1P8VlNhYQWvqsn+lx2os6Kdl8Wxjjrr0PLo6bXgMoIk46pn9QXW/z/GlP kTHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774261171; x=1774865971; 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=AvVWaFSwZuIIuqOAIjURBh3MX19UZqagVH7905iJLbY=; b=ct6txWPddFddXAO/4uZRIjJcC3WO3tNtSk37+yMXn5lm00GgVXNHlKD///O+VK3HOa GQEATAd5fE2jvDBJW2p2u+BYtJ6WYbUUQN8BegCL27aRpfmXXLDfU913Um7p6AcaAjHH WcAXdxKOhQS7zW+z5wNYTzIXrFApubYyzVahqiUNnMzfNdasUoCkwMPewe7hXSc36A1+ eDzyMcDlPbbJ+wvtQMrneTuydXzmyayoTolS3j5x625bx9wAe0Xfn3sFPcWTtRNQSyZO RqRANxwws6WTGL379JQOTV7WYMj7bfP4Ry+neZzXOQertfm9QxvQG8JsyPveUJS0bSz5 HJgg== X-Forwarded-Encrypted: i=1; AJvYcCXNu9SpliaHy3c0uLHj/E8pmsUIphZKi727TGgZN0yH1kT4y0zz1OZV/DwJIUWKHo/mav4p0nNFzBzEdRY=@vger.kernel.org X-Gm-Message-State: AOJu0YxNSk83R3CMMPsLsnfCVjmBFmvsTjEZHOfpHsG6HsmJCw+OyRm1 oL93bw4BqnCO93SzOz/21dk4WSF4sJiAZnBQIDyKAyRQ85UIPXDG2mum X-Gm-Gg: ATEYQzwEJILPCWWiQkjswoPGtkCCThXhpqN10xpPdxbSRjDw8L8QddMZdJcVAbrBH6v sfKd3TAmceK0r//m5Nw8nnIHB38RjJX4HRKOvIvH05ZOjvXgCqzBMvwGVzR/6NxIPPVOb9kNC2f i3QUii3CoYyg0yc8WNPgiMHPZyzQ129lkLiudhIx3lWfgwlKt2GDoCKdnKS7tXoWOnMBlaJWNlb xeo6QTDzh4ibCzvxFYHsWysKa1t4LcfEb3asC38btH+z6jN6o8sCzj7Y1/yJWK6hOexP6JExDlp xN6hX65iw1Zt9Kg/70Bw4Z5mSZIiemvlYJaam8ZMQf3Kv1KxK3H1NRL9bJPoMVe9/amkT32ap2w oU+vkLSORdOP1krmawQWacd7imf6T1plLwCXtu/9SC6f+9CPDWzwI4Hq+MZMGbVWus2mXV6X1bB nhreQwfUFEMYzJFILbAX2io4cUyasCGBdQUye8HM49w24y0ZRafvfd8JU9XSHNTsy9 X-Received: by 2002:a05:600c:474f:b0:485:3b34:2f62 with SMTP id 5b1f17b1804b1-486feddb659mr165327915e9.14.1774261170709; Mon, 23 Mar 2026 03:19:30 -0700 (PDT) Received: from ipedrosa-thinkpadx1carbongen12.rmtes.csb ([67.218.232.54]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-486fe86acb0sm78755445e9.6.2026.03.23.03.19.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 23 Mar 2026 03:19:30 -0700 (PDT) From: Iker Pedrosa Date: Mon, 23 Mar 2026 11:19:04 +0100 Subject: [PATCH v4 1/8] 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: <20260323-orangepi-sd-card-uhs-v4-1-567c9775fd0e@gmail.com> References: <20260323-orangepi-sd-card-uhs-v4-0-567c9775fd0e@gmail.com> In-Reply-To: <20260323-orangepi-sd-card-uhs-v4-0-567c9775fd0e@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: 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 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