From nobody Tue Apr 7 04:39:28 2026 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (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 98E6939B976 for ; Mon, 16 Mar 2026 14:04:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773669869; cv=none; b=DTkwYsI166Xdp1uJfqpKqyCaL3tJ3LjCKqVN8KLyiBv4YfTxfRFmN+ZUQicNJ8DBzfI8i7ZmeeSA02d6bO6KaGmzO2UQvqZ5lfaqBtSxgcjf9AEFZQcSsFJL+O9GvDjJ3Jfi/JU3S93WG7yIHAjIPK77LRQYicFhB0J+zxUxn/A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773669869; c=relaxed/simple; bh=vmF2pgWK2VUkaN/torpDV5fO5DqEsvTqOvhELAztUNI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sXYMbGDEt0EdIgh0z0BdwQRKx++WA+L6FNHD8HhQRn3+WLCqCpMWv1ezZnyjUgJkeRuv5XozyzOgJ0fuKwTNyGdgpk20dMBJ8LxPCcm3LDU3gDt/vRsuakE24m2UnDFnAxD0dP/0J6LTabYLsifexUUPSbDlmJ5CJI5fiExRNsw= 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=lKIgGgLB; arc=none smtp.client-ip=209.85.221.43 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="lKIgGgLB" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-439c5b40f60so3607590f8f.0 for ; Mon, 16 Mar 2026 07:04:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773669865; x=1774274665; 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=O74WQNc1aV3W+cT5lrJjmSbPvv2lawW0j0OjNB+99fg=; b=lKIgGgLB1PMNFm0tt7D4siVQ+lCI5xoPwrzyfbFfhFRjfeqqf2wdBI1LNu6g7riP63 lssojq286iErkTocLbjWSieYoKjKGgECUnW5M14q70yvJrX4LHcUHelVbHfae/cMIO+D G+3hu9gFNVVPzC29E5bN/HfMSIi3/BkaVPIeOnryA1PfMZsgoUZV+9WsoSETRYcXQXRe aDQs/5D6JHmZPreEfGMg6ZgrfDuXrRSGuuFcOI3UyvC9ZxeXsbKXZqcYdldK8TwJD6Oi 67V7YJv9Uk9Cg617m/XSFJu1l3RKSKZ2eufjyEjmjiqpFpX2d2AZIM1Y1GLkPICsjwWN 8HRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773669865; x=1774274665; 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=O74WQNc1aV3W+cT5lrJjmSbPvv2lawW0j0OjNB+99fg=; b=Tal53BbJkxtKp8R+cZcE1l9bxvFtOdT3zttBlDXr+yUyiLt7jMOeRIig88p+vP5wRo fEv8mAqz+xMtCGM/dR9WxN/Rwy+1mf5IOtyJLP4rlFF5FqhnECVHlj+t0IG0TyfquV53 whh9UGspIr0MXtfLEMwrWGcEf0Hvg+LqjYANXG1q24oCx4hbE+bjVRzMf63FodV9nT7Z 9DIj0wOIbRb08R3cj4t4jQAW/j0VsBtA7L02zQtGkWpADSDi59KVVbVGbLFLIQBrTnGk /+9B5FcILuXlINoNSkn0wLJuLdW+S3T8PTarFfNOXrXOkEPp3546TBbfGualsHPfXTHM aT3g== X-Forwarded-Encrypted: i=1; AJvYcCUODBmBwHP3Crv6OR00g2lFUTlDx3Y/laofI0g65WrPG2I52+ETnUB+Id3ezpMl7qgO5v8eIVKxUTNjdHI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/3MqlgHOyqOpK/3aQPidaMUX8JHJHR6FQzr1JkUNUOyHkNq6W bHZ9tzVMDCz4DeK4tztxPNcYqxar/sv1N7SGO+h8DmQUYd2n2iWoaj0z X-Gm-Gg: ATEYQzwJqiNwlCd3cP+o0yDG4IU0wY5qkb8rVmpyUkVU44ERsiKjXRtl8yqRctOPQlS 7CLk/1PqX4SSxbDb9x3vYKV2Jd4IYpVa888jKQosGCH0SCei4YzPH2bPHKO9hrCMn5PlQlxIPBI 3w8l1NlV0E10QtuXAy1YZaH32XC92gsgfMR/HsJiXfsEFolULlIKdkGDtHu1BqrpUpR4VgMFTgU m521Q6Ua800XhVzur1noOGFb5abFa/ijjpXrGelWyfAoeZyT16Dj7BTPXhNi3FaXv8eoP+dt0Tt xv7Ij4Rsh8bk2m/UYXOOyUUSXVMj9AU+PaUX81ZvVTZyFsKMmozrPxbUXv845hDuQadbcOu0Bv7 Zhrek3bfQ/1doVf0TgBybZ0dKiUzglIJEHDBOHpfbw/WvxNmoibtQpG9+I5FHeHsTA70KWBoKKv xl+UgBDkkEpg98JNw4pLnvqvKVxCVCCEoOAyxKrw1fEtOL55L4gGofrVBl6xuIr+he X-Received: by 2002:a05:600c:698e:b0:483:1403:c47f with SMTP id 5b1f17b1804b1-485566ca5cdmr217587185e9.6.1773669865177; Mon, 16 Mar 2026 07:04:25 -0700 (PDT) Received: from ipedrosa-thinkpadx1carbongen12.rmtes.csb ([67.218.234.31]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b3a09e453sm20698725f8f.0.2026.03.16.07.04.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Mar 2026 07:04:24 -0700 (PDT) From: Iker Pedrosa Date: Mon, 16 Mar 2026 15:03:29 +0100 Subject: [PATCH v3 1/7] 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: <20260316-orangepi-sd-card-uhs-v3-1-aefd3b7832df@gmail.com> References: <20260316-orangepi-sd-card-uhs-v3-0-aefd3b7832df@gmail.com> In-Reply-To: <20260316-orangepi-sd-card-uhs-v3-0-aefd3b7832df@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 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 Signed-off-by: Iker Pedrosa Acked-by: Adrian Hunter --- 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