From nobody Thu Apr 2 07:32:25 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 247943AE707 for ; Mon, 30 Mar 2026 08:38:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774859909; cv=none; b=Kapaa6FEF3Kcj+sUwgF41EkEo5gFRilPMbp1Gpn1ne+YPOC9hIRftwmuTc51JXotakwhPaRtX0W3b5jPaZOaihLQVQNKFFcj83M4coQFJYBRK4qutEG+WXOJMwA1nk8FxiW6MVxA6wl5UVTu27mS4wZpTG6L/eOck4cPJbTqj6c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774859909; c=relaxed/simple; bh=qUA8SRWMHXak4DMGjiU5xSTobYDglxv6lNBrFgz1elQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MUMm6JpBgTVYKmGkbIUXcm6JyStlENbuYPxFjL0PUw+E5o4/jHO7R3ndJl39z5ImyGmn62r/A80cy+DRNGynUEvWSIIdVLr4rRg1saOAA21l1K5/lTEuuYQnRO0P7V29fHl0Dfu/FQ5Ho6GNkv34FNfIaHLqG9vb1PmKpU16hFM= 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=HNQ95Wne; arc=none smtp.client-ip=209.85.128.52 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="HNQ95Wne" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-486fd27754bso41457605e9.3 for ; Mon, 30 Mar 2026 01:38:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1774859906; x=1775464706; 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=HNQ95WnedpGSm0dsrYuIiHdmuQCNr8KQAZGjunr+GGeChI2Ptk5qCY59hZxDtJ6Qvu 6UqVmzXbTSQY7XRi0HABmYmWE79SL9/FzHk/zAk0xBiY1BnD5/6wI11TjqBtmY6xRBRB o8dtdPsdGaJ59A70DlVdTcUxEcliR/pmIQeSNaXK7Z7d/oWT5rwBoIvsnB61hpSx3HgJ 4vFfXNpGH5m/lH4f/ceT7tc12AdBlPlUC+I+nLLnyizh+ljNg6jpbvmobMcmFUw9mWuO D79dSgusqDBhaccKQagzRZBy0qoUdBlipFfd6712+ztQFGDmyPfHCJTqCu+9JMeNHpsL Z1NA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774859906; x=1775464706; 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=ZBCr1K99FAJxChoaoIIWHIuNQieuBmYeP/N4hG/gvQf5mpHlYnU4w4DrJ4NP7Z0+tM u9KtzGPrwPBbSmNjpnFUuj7BopYuHA1D1sCYN/I7ElIDhYzc18iVFeeUTFOeeuiAbo4h NzxjioRSH3gcqEtSmvNhTHbSQSH4TVIRmVsZDIsuKRJu8UYp3cj/3bjmoFjU7nFJCxbE 87Ai9RQyvFL02zqpDDPOijszYSqOL4Ck9dMhAB74qT2GnaTu7cql/SYBeP55pmzFynQn Y3cwnO8eqP2WgKMx+PkI10Ja4eFtaYiKtDWoKbzd53d2WAfVjvneFiZLUTYNStOc8NwW hPUQ== X-Forwarded-Encrypted: i=1; AJvYcCXvP4ulS/vU8kf3OlRO1oX7m2IedxT4mhyVqoxrZZLtelif9iIKffo8v6Uw7gisfrC+DzjeiMjTcC0jAfY=@vger.kernel.org X-Gm-Message-State: AOJu0YxiIKjXhrad4y0YfVGS1pHB6lMdsZGtAWa3qudqgR3I816G5XV7 dZRQpOY1wEeBZZb9gEro4N54P9srwKNr+cPavTM8t8ow3nqGAYJoW3V6 X-Gm-Gg: ATEYQzy/NWusecOnUyCw3p9dEmGIY2sfgyLnOoItVijJd1dv3qRJAosgOFs0nE8ajF+ cyBqDffAhPf1cEQF9qPv7naWnvnrWUGR4pOZnwprcTQrHS3fpp+c1nFHpJOOfeZAKgotLdjxLv4 5VymnB25wEnirx1eH111gLnRMfnhIZ5mrg6tgXg6fUQuSy8qNKqahweVmW5Au2K3YRtNn8mS5GO 99SUGc7YjLnoZ6S2J6p1Oo5WNpFscdFlUDscD5pHnckMgfLIAfSzx0BEPtvRqbKi9mGIVxG0jWQ 6ULUiJCGTiiBT7H4REjrVlN23RmeFKmX4pLUQ9ZqepS+Q8vOgqhAFr7U8hkmxMjPOgHEwISvjlx x9FetaFMKOF/YcJr7QTBDFYxy9u47LzA6DkXBnl34S5FraAGKlpQ+7ZQ90/ro7iQgAdFGmZT6XE zTfd20Gx2YdhybNm2ZXWB5es4OXUhG2MF7w6lwnp5OX2JhomorJemoJLCUJZiz254PEfDJUBY5c r0= X-Received: by 2002:a05:600c:1d0e:b0:485:a4de:f4f9 with SMTP id 5b1f17b1804b1-48727ee54bcmr204093705e9.27.1774859906374; Mon, 30 Mar 2026 01:38:26 -0700 (PDT) Received: from ipedrosa-thinkpadx1carbongen12.rmtes.csb ([67.218.232.54]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4872712c236sm74063315e9.14.2026.03.30.01.38.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Mar 2026 01:38:25 -0700 (PDT) From: Iker Pedrosa Date: Mon, 30 Mar 2026 10:38:03 +0200 Subject: [PATCH v5 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: <20260330-orangepi-sd-card-uhs-v5-2-bd853604322d@gmail.com> References: <20260330-orangepi-sd-card-uhs-v5-0-bd853604322d@gmail.com> In-Reply-To: <20260330-orangepi-sd-card-uhs-v5-0-bd853604322d@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 Reviewed-by: Troy Mitchell --- 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