From nobody Sat Sep 26 11:01:26 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5435377545; Wed, 2 Sep 2026 08:05:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336303; cv=none; b=I7x4USVLMxyWrNcWH9R6mTpOgpvsPbY6sx79IUaIBvWvdcyIlNvLI69AE8XqXhGJQ0NuHCign95018nDDMq+Eotei9Xc/5r/J4fTb2V9o+U3F3wjLU307+pUw8yYVHzh4UsODCvI6LPJK8scRSPUpw6yD6/SUFVqNl8reaZeBdI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336303; c=relaxed/simple; bh=682mhaKsS9r1G6I55d/fTpJ6+mwgJO/hgJ1+o1H1sR0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UdYWvqZAuSBS0tD56bp96TAd+2hK4M8MwKNaIg1Sisx52CUip088Jd6TDzt11EdCS2P4zwgLzbT+7U8S5DOoR8J7+O5vOIPGn/w3cEyT9+I9MMThA163+iBA1ESME6TX4Fo2azaac32ZNi9wGkXVk9RLQh3po5cXHbAvAu1yFuQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=hSoy0kAe; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="hSoy0kAe" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2DE2A1F00A3A; Wed, 2 Sep 2026 08:05:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788336302; bh=VSy3rEZxd/1rqE63G1l3UhTJKsxc97wUjHaQ0rElp7A=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=hSoy0kAeXB15yJsA1GMGHjlgG0APpaepUDyJh4wr+q1raYeaum5d+r2fMfYNKQ2xG FpyRP4FdPL5LFauT4FQBJJ4Z5V5F2unfnRKOY5YyHFDiSZ8DcDrThWFRoa3ehGmS9N Oy3FNt/Z5DGraNXKqO2UZGelZW9oalJNMfzjtFAm/olo7Ew8077OsPU0lTMtQwlHsK WWiVrOIBOiKwxGSg99kvbNCThpEEeFN5viFjqs73wi2Z3R8M+UpyhqppTxx3dSUbG+ kv/xmgGped65bHQyOEbS2csT1R/lOnJy98SdHPy/1oQ/Y1V0xpL94kBoEyDZUPz4FF x2FhsTtj0LlBw== From: Yixun Lan Date: Wed, 02 Sep 2026 08:04:22 +0000 Subject: [PATCH 1/7] mmc: sdhci-of-k1: no pinctrl state switching 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: <20260902-07-k3-sdhci-fix-v1-1-b15c5d0f64fd@kernel.org> References: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> In-Reply-To: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> To: Adrian Hunter , Ulf Hansson Cc: Long Wan , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Yixun Lan X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1042; i=dlan@kernel.org; h=from:subject:message-id; bh=48HJXbKiYAzT2GXhaKjL8LaaHoDQcdGr+unV8bXxKB8=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBql9iU0tJjEvGw1f3/YZtGzzw/tnFP17dfMSTas TIbsoScW8OJAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCapfYlBsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+2Anw/8CePzgKC8BR7xIncocdkKlVSJTddj5vKjgl2vd870lujK+7faRGlmL Ko/txe1Dwct9cX9otxmrTGAloztuW3tQbL9OCYL4PlDqHmIZpdzeQmCK+Bs5u5na2VlUrZgMVDe DRlEJrQ6xuJMRPJ4/ytvK564mB5fVYfMjkmKRHmTxHedTdcKVZ4Eu7NPl2XcO3higrZcRyfX6qZ 0yNv68Z5gW9ETotgF7BHO3PuGYDVOoHhlmE9TGgqiMnKBfhv58ELWc7Q0BMuSjhdqv1mlSIQ0aM D/HGv84xSEgzu48thBvKhR0eHp5eW1FAc5PyZnMJ9xSkMWpJRG7sqIgQELRxdtiCuIHlsV/1TFu qglA+Tgo9FSdPbELLfLdwvC5mQG0hwJbEXLFwKx4dHeL/3jBJ3D1UWn2vuzS7t8G+KpU5vFitIx +jV8R5EDUvNTZJRTe8pSqgWnVMjH1tbssLtGDj9QVRvK1IPjobzYN2bKuZ/Kz4j8QWH2/STFFZa 7aPRSjPYYL4BTz9wPTewFXnohOojioqAN0/Xsd1yxeWnSgw+E+1abhHLkFrvvQQ9nlVHINMN7zl 0H3p96WHwkYYkzbuEjlSS299f1aO3UwNU2VJC1jZg3BnmpchE/1edvPr29vyPx6yHQTBeMBHNub WKRz7vP19H/48phaL7f6nZ3qUfJdwo= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 From: Long Wan No need to switch pinctrl state if the SDHCI controller only support 1.8v IO voltage which DT will only provide a "default" pinctrl state, otherwise function pinctrl_select_state() will trigger a NULL pointer error. Fixes: 00a97fc57c09 ("mmc: sdhci-of-k1: add regulator and pinctrl voltage s= witching support") Signed-off-by: Long Wan Signed-off-by: Yixun Lan --- drivers/mmc/host/sdhci-of-k1.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c index 37b0911e7cf2..0916340d3265 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -407,7 +407,8 @@ static int spacemit_sdhci_start_signal_voltage_switch(s= truct mmc_host *mmc, if (ret) return ret; =20 - if (!sdhst->pinctrl) + /* No pinctrl or no "uhs" state */ + if (!sdhst->pinctrl || !sdhst->pinctrl_uhs) return 0; =20 /* Select appropriate pinctrl state based on signal voltage */ --=20 2.55.0 From nobody Sat Sep 26 11:01:26 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0AA7237EFE3; Wed, 2 Sep 2026 08:05:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336307; cv=none; b=ZfkPJFEtekX73JjQaTSjfZph2MSGke4tD4UBO5UGil7nvesdattusitfJFmxVGuC5W0h2/c0s0nf9Oes8Vpjq3GrMAZJkUI7MbzxDXCx6NxhsGM+cHv/lyHHhGc3thRx1FV8qCki87BW9nxXop23RbeHm6UMfpYqNjsT9vtN31U= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336307; c=relaxed/simple; bh=TywnkrfNejt6BzR6cv7EHCSdNE4iapaJmw9uveBcbaw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VaF4PjvE+bPTPeaHr1C+he4WAQ3QTDZhlQwkN+JI9PfdpP1XW4TZwxPelbchQi2WsgmpuSGG5tIlwE4aylfxURYFxDg42SimGKEUQj9gkMwxoSwLOHHIL2lCxFNv0qniS7EGAzFT0hv0rU8ipw48blORXSijgvWuVAgsqKG4rek= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VZKdsy4e; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VZKdsy4e" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 062551F000E9; Wed, 2 Sep 2026 08:05:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788336305; bh=oOt6rzGyB9+dcVCWANgFL5IswuKEaIiQvhJRIFhDyWc=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=VZKdsy4ezYtgdIoGNNvPFpCPEWFtOUJhXLtGk+hzU2rpgLgdLa86S/Gv+el2VBXBX 7qJGMZb3fW7F5cpQpe6+t9ogsbvPYEiBUad9XAUL7sL7wrq0q2VmvsgBBAhlSYAo9L 0207pVa6aExNtDCf/47ar1m36tHRXdJQBc8zPq/+I4l7SE8pHDMYKQ24gpbYHZLiYY oOj8lEdkcpncfjXcDSuatozO2ZLDElK70Dtdh3QbF6+lbtyyWDpR60/dMwXJ1+COy5 MSTqijODXDytN09AeohRe7j62SgXTgmX2bURIUw67rkh09KMyk1Ikmby8ED20XaWFC TOBnfsUMnm32w== From: Yixun Lan Date: Wed, 02 Sep 2026 08:04:23 +0000 Subject: [PATCH 2/7] mmc: sdhci-of-k1: drop duplicated voltage settings 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: <20260902-07-k3-sdhci-fix-v1-2-b15c5d0f64fd@kernel.org> References: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> In-Reply-To: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> To: Adrian Hunter , Ulf Hansson Cc: Long Wan , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Yixun Lan X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=984; i=dlan@kernel.org; h=from:subject:message-id; bh=TywnkrfNejt6BzR6cv7EHCSdNE4iapaJmw9uveBcbaw=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBql9iXmWeCcM3ycd95fOAQxxiCl2Tb/s3R1OYru lqOo5IK67GJAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCapfYlxsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+06wxAAoIwJiACs7alFPcjAN1xkJ/eHgS52onSDqrH1BvvPXNSP85XdbnCTu HWSeJZqkmUYHw62VgpnNo0BGzJ1tlVWLlVsPtjctxWOdO0x417o78cWD9Pirhii0L9EvbgX8eGY wkpjiNY6TNVTdBB3kwx5o3ZqotKKlBhFxDFJciDoNgI7gG8M+yIA1hCi54OT4PjKo969KJZrss2 r0l0Z5zpe6ukNYxRAnIbwoeUZawVYAPTQcEihJdcLxPF8Cn2cYf7dzgbLejaDKKwcznD8Lq35sy H0jWG/vgxJF4G88zmcoiehL57wxnwTY2SGlHXdJk1uUA7hrSoX8xik8/PiyvOFtwV3g74JwgEaj onEzYdcTKyxMC5lnDk58UJpY1QbPP/+nUxD9pf3wrcW6sxlIVkfitTzozLjxXVk6QYZv+s5eG7H 9p70sFzckmkBE6p5dsf0zhFrjxClhFYbx3jSlt5xNTDYnmnFQG1EU16W7XdyMFPBq/+8dTnHMQy dbWec12vYdwcsPAmaXIZcn/dffuyOPiH2GK63yPOo9V/LsB7T0UdjK2jUHHkTqupB1hh9oCXw7N EaA/PfSGP6dXYwmaGcYlWYetq7M9zX4YBV0QfrktU0pqYY/5g5w2m9JablMkgbuVSmjKfaHLSMr o9gYu9em+t9oX+OjJHHe6m1UHj6g4A= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 No need to set 1.8V Signal for non-SDIO hosts, it will duplicate what sdhci_start_signal_voltage_switch() already handled there. Fixes: e5502d15b0f3 ("mmc: sdhci-of-k1: add support for SpacemiT K1 SoC") Signed-off-by: Yixun Lan --- drivers/mmc/host/sdhci-of-k1.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c index 0916340d3265..afd9536f2368 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -195,9 +195,6 @@ static void spacemit_sdhci_set_uhs_signaling(struct sdh= ci_host *host, unsigned i spacemit_sdhci_setbits(host, SDHC_MMC_HS400, SPACEMIT_SDHC_MMC_CTRL_REG); =20 sdhci_set_uhs_signaling(host, timing); - - if (!(host->mmc->caps2 & MMC_CAP2_NO_SDIO)) - spacemit_sdhci_setbits(host, SDHCI_CTRL_VDD_180, SDHCI_HOST_CONTROL2); } =20 static void spacemit_sdhci_set_clock(struct sdhci_host *host, unsigned int= clock) --=20 2.55.0 From nobody Sat Sep 26 11:01:26 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC6F436E47E; Wed, 2 Sep 2026 08:05:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336308; cv=none; b=tFdMi333zEotCgDnXMR/vHfQ/8sC17Mt67H5R+2Bvmhse6A1Ju0OZCXi//aEb7Ltcj42TUnE7UkZ/GKQ8Iq42ZrqxkUGx6JAU2moNQbZWFgNSjrFzKXhpatOXiMKihSdD4mGFLqxboP7epcP9Naekhy+izOTwFd6ZYHV4jFL/ko= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336308; c=relaxed/simple; bh=7PePD1SbU/YvM6WSdNSnR8+2grOGT/TlTZPbbFHpWgo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=JdfWZfrqwghNqqSAv8887PEFnEfWerit24J2rEEW5qGwX6OFpZhYEQsOAPVr9tRECIebYB+ksA8jR7evdnGJ+2WwdHK2IZnhk011sY0KeODvSYKGPFu3qdNnGGhf306V7Ul/NQWoBXVkkUt1AtOU1EoXgkU5xeS2VIpj8b7of7c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=XvlTbvek; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="XvlTbvek" Received: by smtp.kernel.org (Postfix) with ESMTPSA id EA9B81F00A3A; Wed, 2 Sep 2026 08:05:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788336307; bh=POBeg5oYSCo+FIQDgbq/vxgIQF5Bm0qqPNwWPMShsUQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=XvlTbvekBbQsDRT9x9URH+yjddUxu44FY3AuDSSfhDjCn347ZrPt4ZnpCjCI2AjDx HKKIKCXqlpyrKMRp4xbCyVsWEQYi61hghQaHnm3+gOgzZx7p1TCC7QopI6Jhtw5l2u vRqr4+Or0CVxQZZLhhcDIGwhr4Nd2ZqcmhtS9ex33Nkl+vYV8IDUu8fk6sN7o6+FlJ p/CN5xxcOXa6YTCb2WQ9xXbbUxmfxQFC246+APtpOOjtGBhhykrZsL/3R5XitOu3qz Y20Tdcsar6heuwzAXDDrZwiyCbBhTsOq224swnXziV0n7U9dgWpjtQVNbqjVoUsPGc dlWJZXDefjllw== From: Yixun Lan Date: Wed, 02 Sep 2026 08:04:24 +0000 Subject: [PATCH 3/7] mmc: sdhci-of-k1: configure PHY mode 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: <20260902-07-k3-sdhci-fix-v1-3-b15c5d0f64fd@kernel.org> References: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> In-Reply-To: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> To: Adrian Hunter , Ulf Hansson Cc: Long Wan , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Yixun Lan X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=2220; i=dlan@kernel.org; h=from:subject:message-id; bh=Jj2IrYEAi5D0nXnzkcztq1+cyG4TMVNHVzNCRfauSlw=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBql9iaaM4UZp/vQE0cYI7qdKb/qkdldb2BP3Yok ZkLj5AwgG+JAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCapfYmhsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+0Msw/+I23tD+FYekZsEEvIjt4vcC+6cm3wV2ysurUvKd4XlKf1zCiQ9cB03 HB+bim6LQ+d4xzQqxagvtewZU4V1P7Lj1cd91eul7iZMYGefmAYQ0LXqDXt6E3MJr5ALW9bqMyZ V3BYHXQF7DvQHLIqNrTerfSI3w6pWmj9CBCd/mlutgF1oC4sYTfEEGTnPKrHXU+X4VgPDNjEzys 1ewJaiPdAYZ8z6FaIEOpyKSPkfObAAjDtbAEZjz0X/g+xBPWAWILN9sPYMe4t9RXtPlXfYU5oTs 1liU5+kMPJ0Pl7CXvo50E+s4C1XRHk0cq+teFSngkGjxYJfict9E7/pghly/t5eP+khEdvYMASs ojG3DoCCSoEgU827w2uyZB+z6RQjjG86O1b40K2I+2l5/gDLn7FeN0LftODzpBJJw02kRfis2uX ziMFQEgRwlUW8tFh4ZZAdz3shf1SH69Ir9n+aMUdwOp9/vnbuA6UqPH6zut4i2XkYvycGedb6tu AdK2FFCBSgz6TYxiHTdcOiCbwxQKy+K+/YYRQUPaW5iKr0hxzpKSe4Z4P86wzbNPG7teOkYljOP 4oGCdOCJnZZ5ZAtx62u8unPe9jHYMJSTSVB+1MtALer1nXfSGF4joEwQQOnj9FVFB0F1WLTQX58 AVnx2jzs6BvE2XwpPeFPc0SfLXlRx8= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 From: Long Wan Apply PHY configuration only for eMMC hosts which enable PHY function mode, and configure drive strength and bias. While for SD/SDIO hosts mode, bypass the PHY mode and select TX internal clock instead. Fixes: f87b273e4b6d ("mmc: sdhci-of-k1: enable essential clock infrastructu= re for SD operation") Signed-off-by: Long Wan Signed-off-by: Yixun Lan --- drivers/mmc/host/sdhci-of-k1.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c index afd9536f2368..5dccdd4b217d 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -169,21 +169,23 @@ static void spacemit_sdhci_reset(struct sdhci_host *h= ost, u8 mask) if (mask !=3D SDHCI_RESET_ALL) return; =20 - spacemit_sdhci_setbits(host, SDHC_PHY_FUNC_EN | SDHC_PHY_PLL_LOCK, - SPACEMIT_SDHC_PHY_CTRL_REG); - - spacemit_sdhci_clrsetbits(host, SDHC_PHY_DRIVE_SEL, - SDHC_RX_BIAS_CTRL | FIELD_PREP(SDHC_PHY_DRIVE_SEL, 4), - SPACEMIT_SDHC_PHY_PADCFG_REG); - - 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) { + /* SD/SDIO: bypass PHY, use TX internal clock */ + spacemit_sdhci_setbits(host, SDHC_TX_INT_CLK_SEL, SPACEMIT_SDHC_TX_CFG_R= EG); =20 - 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); + } else { + /* eMMC: use PHY function mode */ + spacemit_sdhci_setbits(host, SDHC_PHY_FUNC_EN | SDHC_PHY_PLL_LOCK, + SPACEMIT_SDHC_PHY_CTRL_REG); + + spacemit_sdhci_clrsetbits(host, SDHC_PHY_DRIVE_SEL, + SDHC_RX_BIAS_CTRL | FIELD_PREP(SDHC_PHY_DRIVE_SEL, 4), + SPACEMIT_SDHC_PHY_PADCFG_REG); + + spacemit_sdhci_setbits(host, SDHC_MMC_CARD_MODE, SPACEMIT_SDHC_MMC_CTRL_= REG); + } } =20 static void spacemit_sdhci_set_uhs_signaling(struct sdhci_host *host, unsi= gned int timing) --=20 2.55.0 From nobody Sat Sep 26 11:01:26 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AB75390214; Wed, 2 Sep 2026 08:05:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336310; cv=none; b=Rsj8032cP4nGqQW1tFJAgJViRr+H4QRsvmM3ujRFKtxKhLwnfigdqMqscR8AOUgVcHx4ph1z4BgWfC2FZXz1yFOMTBPVd8yq/TsqiACHhCT2bfyfgUGbkPOF9EVqk/qe8UzjzxfrugBH7V1QkeqMWKQ1VVQbS2JgLA4Ys3QZBYo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336310; c=relaxed/simple; bh=TG1nbZjuatmpnqUiwNEy45uI4OKsntHMwN6/FS38ozI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pVvpaP3LWjd+KrFC2qfAfQf8FXrhhIjtGeEbnqVXNh8Z0UXXCMTW5Zcz+LNXRrODEZ+qzBZF/mbiQ3VKjWDoAL9xTFh89QOaTF6NL+1d6HDXeGOTSXBjWdHDydCvtdGKvr4FgUyVLVQQnUhUmSVwgJjXRy2Akt7tG710KE7e/DA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=ROO8Ih8P; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="ROO8Ih8P" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C0E801F000E9; Wed, 2 Sep 2026 08:05:07 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788336309; bh=VTBHZqMzNtfGu0/ii6nYXJrwVNlixijnWIIxoUCWQXk=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=ROO8Ih8PuAw0rLCyOMi8UQ8EKLb0OiVCrXqqpJfz4bOgRcjJE1MrJQqK0OIgtmLMF CcOcDk6E4bB1g1N0fhYG10tQbnvCza1Np2UwW8hBfUkksiNEpSigXyVypds3QLEO3W cHuE2cmI8MaOVv3JwbB7uq13KXZ1zUdvkD8eDOWEIVjF61HezQCRuqJrsbsHIX9sKE YAp0GN3wrcEZ2Ovw0dr+XYm8DpF9S275O9A4iixW0cWG6e4ykKTSswxptKpm/9qyCG W/Zr9HYr4j+Ad8pr0siACb9/P1FXIakgZ6Go10TsRRCKZoy8sNoK0sq552eTUoKb5g ZIrkJlJjGli4A== From: Yixun Lan Date: Wed, 02 Sep 2026 08:04:25 +0000 Subject: [PATCH 4/7] mmc: sdhci-of-k1: Improve power control 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: <20260902-07-k3-sdhci-fix-v1-4-b15c5d0f64fd@kernel.org> References: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> In-Reply-To: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> To: Adrian Hunter , Ulf Hansson Cc: Long Wan , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Yixun Lan X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1065; i=dlan@kernel.org; h=from:subject:message-id; bh=ZZnwSyRWem1cufE+ykT/c74WDL6JDGMXan1pWqJy6GA=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBql9id5/j9bEGbznCN/oeX7c5UcrLyeiwrT9Z/N FnF9u2RecuJAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCapfYnRsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+2Enw/9FeHpWaCDIgagCZFIhkm8Y/pzQR5CPvoPpu7bpu+wTsDFQNtNR3IMz JQG9a+S9AyRyvNo7NVc8Dj1UhfFczYukpA4Q3BhkRMA50VxM1x7kYv0N/kjynX5jpvX1G44eiQX JbDfD7GqZ94q4KxXlemTVuWDytioeDIKwVsw3RAC2+mScY9cadb5Oe5ST8S6ZQZ3QPqDuTdonHC IPi2KvuJU23HuCD2sVQUADpc3JnW5AG/GuciRPRMQBwfj/B7hw0czRRamfhXnp1y+5jSxjXuzEh VaGh2DFcL4ZvDXiKUiFFfWcRyCOxFkeGLCKrYdJJDxPWsmcAwOyzyWYhTqFBbM79llVtEsR/dWk TSXNAI3KX6dAsNqev6VM5HEeTwHEtBHrnakr0MF+6lAhQIeLwXJ6Zv3AQo+wUFSI16FvBl7jfuj oS4b11PhrMvdJc0dWh2mi1AFhe5IjRG0nNX6ztWVXk/RWxyvFjW0UCn0ZqTNYUN8qmQcxOmOPjR MfWvlnY54ufkWsosPaGTuAs/tc4K1l6/wSmV/Xo36wzyMHfBILtHXcivTKU9EV0aG48C8ug1iDP Yge8qgd95ynZgTm/wVqvWPi6A2FeB11VnCE4iMeRxS1lzvvbqBD5LE430I/UaItbkaBtl/A/psc yi6O2byc8WesXkBwG6hWkp2xWhwYVI= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 From: Long Wan The default sdhci_set_power() skips the SD bus voltage select field entirely when a vmmc regulator is present, leaving SD Bus Power in off state of the power control register. To fix this, configure the bus voltage explicitly. Fixes: e5502d15b0f3 ("mmc: sdhci-of-k1: add support for SpacemiT K1 SoC") Signed-off-by: Long Wan Signed-off-by: Yixun Lan --- drivers/mmc/host/sdhci-of-k1.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c index 5dccdd4b217d..be770e8a9884 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -496,6 +496,7 @@ static const struct sdhci_ops spacemit_sdhci_ops =3D { .reset =3D spacemit_sdhci_reset, .set_bus_width =3D sdhci_set_bus_width, .set_clock =3D spacemit_sdhci_set_clock, + .set_power =3D sdhci_set_power_and_bus_voltage, .set_uhs_signaling =3D spacemit_sdhci_set_uhs_signaling, .platform_execute_tuning =3D spacemit_sdhci_execute_tuning, }; --=20 2.55.0 From nobody Sat Sep 26 11:01:26 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1DA8239936D; Wed, 2 Sep 2026 08:05:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336312; cv=none; b=ACkRIM8MxCAYJb+Y4Zb4Uq3UhYfEh7ClSN6VcuOrCDTJmb9oJrV1RdJGkA1pW1J2cnQJa2RIXdiCE2Dzxsj43yUgucMTO+hQq07HSQnZDGUgOkp7Kb3zO286fe6EmD6Y+Ma1kMRA7UIIDptbLktrv714hM6+V+p9Wqey8umluuY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336312; c=relaxed/simple; bh=lq9JgEOgUjRFqITnZEyhYKUAqfLwFlGsgTZt+Dslitw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=FjxKnUIu5u1NCN8SBEtKCcINBzuQ/LygPu6qpL/7XsT0/ZcPTJ3rhtGqbJYY6aCJW3k/fWBxEBSa6gxIT6LrJSoZojcdMH/lVjpKrdvtwxivwTp2tIQbk83zSyNml7pKo93Pu5Mc4d6LGCA075xfcwcA8Svu8PjM12NNhECcBbo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=HJ5KONVc; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="HJ5KONVc" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 965D81F00A3A; Wed, 2 Sep 2026 08:05:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788336311; bh=G/IFPDyfzhIoZFct3RGPm8HsjSQA2NovYHhqihlRERM=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=HJ5KONVceE9WDdEl13snx/1ss5v26p0c90/Uyspgg39/l3AnJVD74qKMvPxTPO0RK f2hSpEoUmq/LS4jl4FWxc5NezuprOt1lZFzOfAkkIdm1Fwujx1tmHg6WF7mcUi/ycC ccEyHML+cCiZGC118eACYi0zu3PyYkjJimitAVpra+G7T99XzWcKC7nbQV6Om5O7yL knWWJGplwNJHsNasXzJlRX51b/qgn19KMail3KWB3BzaSYaymVz+HRbKGgEcSh5Bu+ pLbvn2wHzpK5fwGQvyhAIhxhEedDKFFcICbhKTpar82OENxd9f47GT35ULMKY0U2bX 4TQYLKc7EOYjQ== From: Yixun Lan Date: Wed, 02 Sep 2026 08:04:26 +0000 Subject: [PATCH 5/7] mmc: sdhci-of-k1: Use finest delay granularity for RX tuning 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: <20260902-07-k3-sdhci-fix-v1-5-b15c5d0f64fd@kernel.org> References: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> In-Reply-To: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> To: Adrian Hunter , Ulf Hansson Cc: Long Wan , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Yixun Lan X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=956; i=dlan@kernel.org; h=from:subject:message-id; bh=Qc6WE/5RPjDixK1mUhV9vvXFCMN4SYq/CXesrgV9Q1I=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBql9ihfSPbM8z87ZD5AM1H264Ay5pIZvFam/itK zID5CTkEECJAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCapfYoRsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+1G+BAAgpTS/M0HkvRKnO1EfRhtp88v9Dd2D0E0eHhWTINBKK3fhiO9DvBKb ApPMdK3PNMQIItxwU5/ieJZR5fMdqafc9x1zxVO0yMJOWeLOl14YnvpAnkdcGMxywnQLkQJ2Z+L A6lH9mroEHe0RA60Lq/eCi/7cqtdf2t1EN3dXGdHUrgof9ZQ3tI595+9DVOjBvZkZq3RKH9vr5N mORakmF5dfyj+GuGZegw7qz+4ncvibN8QVRdC2dpStHdzlMt0F1UnrXkaVaDT76ojVspljRb/9t M3MvnkIkLe1SULqSDuy9EsyRQKCDUWuhIIuE47GrCHq4wDs9ut5taN5K2nOX3845UylsQcq1PMC x8cEkXtnyTux1zykVjaIfZV6kP1X8kC6Cx75MMCofn5gqjV56eRkLFZlEOuNcUN7lTM3w8xVU29 goucnrs2fgyHInfDzgXLXzIxTg2be40HKKEhTDyvyUhEc3k94tPjy9N8BkAppj7hr//fGsr4HFP HFj0er/4wYYoest7EEKmeGcQGCSVAc+Bp+/WUZvR1uYjvRVXDZvfNumfgYO4L/3NXiMzjJGOVy4 LThqRSNTT0TuIEwkv7Gq7Lojsvg291gFh5SElyx+vzo1J+/c7aCVVNCReikeFryuj8xeV4ywmWB Z4Y5Ofchn54RiHIeAqjquJ6Rtz2S4Y= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 From: Long Wan Initialize the RX delay line to 0 (finest step size) instead of 9. This improves tuning precision by allowing smaller delay increments when searching for the optimal sampling point. Fixes: e9cb83c10071 ("mmc: sdhci-of-k1: add comprehensive SDR tuning suppor= t") Signed-off-by: Long Wan Signed-off-by: Yixun Lan --- drivers/mmc/host/sdhci-of-k1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c index be770e8a9884..257c954ce587 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -84,7 +84,7 @@ #define SDHC_RX_DLINE_GAIN BIT(8) #define SDHC_TX_DLINE_REG_MASK GENMASK(23, 16) =20 -#define SPACEMIT_RX_DLINE_REG 9 +#define SPACEMIT_RX_DLINE_REG 0 #define SPACEMIT_RX_TUNE_DELAY_MIN 0x0 #define SPACEMIT_RX_TUNE_DELAY_MAX 0xFF =20 --=20 2.55.0 From nobody Sat Sep 26 11:01:26 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E932139F18A; Wed, 2 Sep 2026 08:05:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336314; cv=none; b=TEgNjA6CHSu05COzqO9KCU9dv+2d3Fsj+7to/MyXS0DQVRyRzXkucW5yMNaTZ6y7beuaL32clggAG0wb8FKYPfbmdevbMgHzn0bQbmdtrpJe/k3OmXldq/t/eqTiU01Lofzl716QAm1FZot8Mqg2Oy/AxTp7GHabwnkcHz7wIUI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336314; c=relaxed/simple; bh=SH9UI8A6iNatLp3NjWnuaSxPVUbO96xv+noIo6rn0/E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=i2UX14BtpiOXj3ejucj4b1cSNjXp7/hBYGjBlZoq46ave7q9RgALUdltbLQEAGIYlz8eHFM8Xxsw3eR+BuJUCseEfRnj+Jnf3Rj2T7G116GxatrLrG1BuNva8TPj4Qa7+6dLXznC9Pj5R24kimYgVoTZJoIFap/v4kawhnRhjm8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=FcV1fCpw; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="FcV1fCpw" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 6C15C1F00A3D; Wed, 2 Sep 2026 08:05:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788336312; bh=POmWOknNtTO/bFj1tOVGoSaF82mOopdrhB/HoyO6q9A=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=FcV1fCpwLiSaXYRxlMf0DXaT7DyJ70mcfwu32BA0GH1LFj1LOgK1L76JUQbcJ+N7D V2DztpwkbYO9VAuqt0WTzmgdgUdV4gkms4uXlIVa160uKvzbLUlHY02qu1/4a5bxje ZnG8vACEEV4U1wIxCWzaW2lF4MV2rKDx4tBB6SQDciw3o5sQmW1uyScogYsH/qowo3 ByqHGIxdUQ1SIfeos81IrpoAlLFT/Eaf1TUD0d723YgarGJspp5qN0n2mFQAVirn2L SnWiCd9JpDrVwpdGQlUhAqB8eQ4s3wwl62eT+WbCJGlEb7IRQoEMBc9zjXbSVe/e6v eDoK+ycsWh5DA== From: Yixun Lan Date: Wed, 02 Sep 2026 08:04:27 +0000 Subject: [PATCH 6/7] mmc: sdhci-of-k1: Improve RX tuning window 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: <20260902-07-k3-sdhci-fix-v1-6-b15c5d0f64fd@kernel.org> References: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> In-Reply-To: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> To: Adrian Hunter , Ulf Hansson Cc: Long Wan , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Yixun Lan X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=1088; i=dlan@kernel.org; h=from:subject:message-id; bh=fxIltcJX5Uwnq3dNxRUoyfBOhLTw8pBZO1fExcD0Xrk=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBql9iknDWofrDWeNlh+AiDVUT/uohKMRltmkQ7G tU5ZNSEZ0SJAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCapfYpBsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+18jw/+IsClSoXL1iuwryIUbeeMdJqr3eSUcezMiUhCiVZ0ulvN0d4jGikzk LGs1uxoCBN6kqD6Xy7RB68+0TJ22sjvPxDQlDKevgZsa1XlYq3G9cfFYAroiXtHkZyJ9W9Tw6Tc nB4Yr434vzRuC+ZHzAb+41xSpSoU8Dlg3DzTzfCcj5eTyQniYO3H5p06JXcjbGUaMg2b3VcSy1E PQUxskHTxOgSruQkNOlx7roPoJm6OtlWb8wUHMV8M8tEyLotUNRnSzIUlbUHnkquOfQp62MiBq0 8cWutal+oIrM0uUAe+dcO8PDBT2Ylyb/poaWr1/Dd5FpCGGDeGhEXWGpOJBKlpl+4DHd/xLJqHn jD2jYPEDPegn1p5NH91PB0V0trnlc5nRfDrby3JqeJbgp5WsxAev8Utp+STggeGnXoSYMtIgM94 QjMcJxh1It7LBNvsoUnrM0f1DtForTLocQeqT3mu1Uss8I1oRaWFl6Giz7woaOX4uq2HaFmni0c CpDhaNMTuTUnpmzZ3CGnJlo3FiWBahQGMrNI8HIjiFTW/KTa2vl5soHX0ZGkVzFQEqm9yBFftPQ VBofRkEQvNOVpICPCVt163ZlL44TSD2rWSDLTZncdDUlYWLi8Ahn/GwZtdoovTbz5iT2d4nF+fA RQVAFG9Nnrivu/lw0zZx0pWre2byxY= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 From: Long Wan Raise the minimum delay codes of RX tuning window from 3 to 50, to more accurately retrieve a valid configuration. A window of 3 codes wide leaves no sampling margin, which will result tuning tests reporting success on a configuration that drifts out of the window under thermal or power variation. Fixes: e9cb83c10071 ("mmc: sdhci-of-k1: add comprehensive SDR tuning suppor= t") Signed-off-by: Long Wan Signed-off-by: Yixun Lan --- drivers/mmc/host/sdhci-of-k1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c index 257c954ce587..a07e7db0853e 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -314,7 +314,7 @@ static int spacemit_sdhci_execute_tuning(struct sdhci_h= ost *host, u32 opcode) max_pass_start =3D current_start; } =20 - if (max_pass_len < 3) { + if (max_pass_len < 50) { dev_err(mmc_dev(host->mmc), "Tuning failed: no stable window found\n"); return -EIO; } --=20 2.55.0 From nobody Sat Sep 26 11:01:26 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-alma10-1.taild15c8.ts.net [100.103.45.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C1B95382380; Wed, 2 Sep 2026 08:05:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=100.103.45.18 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336316; cv=none; b=iBrDL9napf3se1ddJ67QEMJpXIpq7Am0bGMJ79s32VGeIRAevX5qpGp0HBYQ1BP8NdkxmXlWqhxNn8bpgiCREw1HX4Vy/7PnHpTH+NZQ8nkzepJnoA8oNA5DouoRK9u3vYsnQxL5qfWu0X6JzsOraLwwXxLwDgJIx/mqIUsTZEI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788336316; c=relaxed/simple; bh=/ZIvAw8yqWGKaG2zienrjgmA7aWZeUru02p2TWxLLvI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sSU+NYBetPjht1ZSfwwwtDqIm2ZFCFkqDqUCTPOQP2Qr4NxFbuGk4KissZ/fLXuSsHKVgTbY8dsnn0MczsuasGCQjaIdFeoTsrcOi5ePY7MHwSpc8fFzWW1FvLhkMgs/gJLwlkJXvp6+7VyP1kZEx6F+TGuIqWxjQ9gnpzaCdqQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=cMt18JAk; arc=none smtp.client-ip=100.103.45.18 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="cMt18JAk" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4374C1F000E9; Wed, 2 Sep 2026 08:05:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1788336314; bh=F0wV2qcV3xxb/dUlan84uLPgJlsVQkSyunOuVaREOOk=; h=From:Date:Subject:References:In-Reply-To:To:Cc; b=cMt18JAki31A4EN00Hj94bVx5jLZjMn81AvQT6ategSfVUWLtHV28QeyfgmIHrLOp z8WsuZ3doV68VHvWpkdWW9nMwVoooDSVSbKXYZ014kOOuXwRFNsz8DHc0RW1HcvrNw TvEsDJeaNqG3J1ExxywiExlhDJ3tEdGBhbSEbg9uzP0K+UB3tWHWxA0V4ajRZT1qSD fZkL48EdM5sNaUOmBRc0vmX0PWKUOYqhQmM4mTQ5Tn0MHfSa86Z//anF2ZyC8IQW/L IUNVNwJzOKyg2SZDfzmiqkXd33VKpNCViH0xlwGl4nJuEp4HxAGH5kTAhJi0jf/+vD BIwCrLlNXB7Zg== From: Yixun Lan Date: Wed, 02 Sep 2026 08:04:28 +0000 Subject: [PATCH 7/7] mmc: sdhci-of-k1: Implement SD clock gating for voltage switch 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: <20260902-07-k3-sdhci-fix-v1-7-b15c5d0f64fd@kernel.org> References: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> In-Reply-To: <20260902-07-k3-sdhci-fix-v1-0-b15c5d0f64fd@kernel.org> To: Adrian Hunter , Ulf Hansson Cc: Long Wan , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Yixun Lan X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4567; i=dlan@kernel.org; h=from:subject:message-id; bh=JcwwxWmRjUMzK+qEox84Kkiw71OgSbs3W3gBg84tHxE=; b=owEB6QIW/ZANAwAKATGq6kdZTbvtAcsmYgBql9in4tLIbAiMHmRZnoPmzJf6TJCSeFaRAdVbc HIQPm/4pM2JAq8EAAEKAJkWIQS1urjJwxtxFWcCI9wxqupHWU277QUCapfYpxsUgAAAAAAEAA5t YW51MiwyLjUrMS4xMiwyLDJfFIAAAAAALgAoaXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5 maWZ0aGhvcnNlbWFuLm5ldEI1QkFCOEM5QzMxQjcxMTU2NzAyMjNEQzMxQUFFQTQ3NTk0REJCRU QACgkQMarqR1lNu+2IBg/5ARLXlb2b/ww0rz6+6x4Vgw8EkL2ssItSyrO9UKUd6GkvgUJDcsXwJ si4YF/6F+cAN7X2IlXZg+EVlRExtSkJFpm5FT/it9bvL0TIt1z2IhtTa91oytciO+NlH+p3+uod /3x9h+gMBYuIc//crPH8G+xynvfXmDWEX8Pqs+c2uWSXnkfD0gclJMUyRHwo3ftyPMqJd5rjepS Swx120eceepZF0txIsZXUVQNlemy4HX/zor7dkdAHTC1iVPxEJwcCGDYwm+tYli1wR7r79YLu05 CRfP6VvD/JqtFjn/Es3W7Kty1MFrg1kOLBLe4vLvKihjY5Um7n0pzxPWv2RwZdkJmcmHEZVpTaG 6VR0zGwGKsik/theLcLG3Ev+AQjq9+GGRfrpQwIhs6cPUcypyacnNQtKhhs3m+SZ9TYY+M7dzcn YCB4BIq1OaDabieOoYrFkB56fOBjutw+Lry99vASpf05A7/JjTXbq+Bz1W4EYYvlPVBZM6dbelS sq7K9EzVV96srxi8TghxV2ZOVgxXHOSyvCjeUiO2F+Yp+RCpjd4m1lzUIaOA/Wff/n4FwnTaoAv S3XzyYiP6yVlYLPrKi6QI+jnAkBHBzL9nwu7/IkL9Je0OxhKujYGTol2F6/wKJY1qz2FnLrT6DY mHFZjn5W5pv/ZUKnFtIYDEJu1Twy40= X-Developer-Key: i=dlan@kernel.org; a=openpgp; fpr=50B03A1A5CBCD33576EF8CD7920C0DBCAABEFD55 From: Long Wan reset() permanently set OVRRD_CLK_OEN and FORCE_CLK_ON for SD/SDIO hosts and never cleared them, so the SD clock was forced on for the lifetime of the controller and hardware auto gating never took effect. These bits are only needed during the CMD11 1.8V voltage switch, where the clock has to keep running so DAT[3:0] can be sampled after the switch. Add a set_clk_gate() helper, force the clock on from set_clock() when CMD11 is in flight, and restore auto gating from card_busy() once the switch completes. card_busy() is registered for all card types since the CMD11 sequence is an SD/SDIO path and the DAT[0] level check is generic. Signed-off-by: Long Wan Signed-off-by: Yixun Lan --- drivers/mmc/host/sdhci-of-k1.c | 49 ++++++++++++++++++++++++++++++++++++++= ---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/host/sdhci-of-k1.c b/drivers/mmc/host/sdhci-of-k1.c index a07e7db0853e..5260421d394c 100644 --- a/drivers/mmc/host/sdhci-of-k1.c +++ b/drivers/mmc/host/sdhci-of-k1.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -162,6 +163,16 @@ static void spacemit_sdhci_prepare_tuning(struct sdhci= _host *host) spacemit_sdhci_setbits(host, SDHC_HS200_USE_RFIFO, SPACEMIT_SDHC_PHY_FUN= C_REG); } =20 +static void spacemit_sdhci_set_clk_gate(struct sdhci_host *host, unsigned = int auto_gate) +{ + if (auto_gate) + spacemit_sdhci_clrbits(host, SDHC_OVRRD_CLK_OEN | SDHC_FORCE_CLK_ON, + SPACEMIT_SDHC_OP_EXT_REG); + else + spacemit_sdhci_setbits(host, SDHC_OVRRD_CLK_OEN | SDHC_FORCE_CLK_ON, + SPACEMIT_SDHC_OP_EXT_REG); +} + static void spacemit_sdhci_reset(struct sdhci_host *host, u8 mask) { sdhci_reset(host, mask); @@ -172,9 +183,6 @@ static void spacemit_sdhci_reset(struct sdhci_host *hos= t, u8 mask) if (host->mmc->caps2 & MMC_CAP2_NO_MMC) { /* SD/SDIO: bypass PHY, use TX internal clock */ spacemit_sdhci_setbits(host, SDHC_TX_INT_CLK_SEL, SPACEMIT_SDHC_TX_CFG_R= EG); - - spacemit_sdhci_setbits(host, SDHC_OVRRD_CLK_OEN | SDHC_FORCE_CLK_ON, - SPACEMIT_SDHC_OP_EXT_REG); } else { /* eMMC: use PHY function mode */ spacemit_sdhci_setbits(host, SDHC_PHY_FUNC_EN | SDHC_PHY_PLL_LOCK, @@ -209,6 +217,20 @@ static void spacemit_sdhci_set_clock(struct sdhci_host= *host, unsigned int clock spacemit_sdhci_clrbits(host, SDHC_TX_INT_CLK_SEL, SPACEMIT_SDHC_TX_CFG_R= EG); =20 sdhci_set_clock(host, clock); + + if (host->mmc->caps2 & MMC_CAP2_NO_MMC) { + /* + * During CMD11 voltage switch to 1.8V, temporarily force the + * clock on to ensure DAT[3:0] can be sampled correctly after + * the switch. Auto gating is restored in card_busy() once the + * switch completes. + */ + if ((SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND)) =3D=3D SD_SWITCH_VO= LTAGE) && + host->mmc->ios.signal_voltage =3D=3D MMC_SIGNAL_VOLTAGE_180) { + if (clock) + spacemit_sdhci_set_clk_gate(host, 0); + } + } }; =20 static void spacemit_sdhci_phy_dll_init(struct sdhci_host *host) @@ -491,6 +513,23 @@ static inline void spacemit_sdhci_get_pins(struct devi= ce *dev, sdhst->pinctrl_default, sdhst->pinctrl_uhs); } =20 +static int spacemit_sdhci_card_busy(struct mmc_host *mmc) +{ + struct sdhci_host *host =3D mmc_priv(mmc); + u32 present_state; + + present_state =3D sdhci_readl(host, SDHCI_PRESENT_STATE); + + if (host->mmc->caps2 & MMC_CAP2_NO_MMC) { + if ((SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND)) =3D=3D SD_SWITCH_VO= LTAGE) && + host->mmc->ios.signal_voltage =3D=3D MMC_SIGNAL_VOLTAGE_180) + /* Recover auto clock after voltage switch */ + spacemit_sdhci_set_clk_gate(host, 1); + } + + return !(present_state & SDHCI_DATA_0_LVL_MASK); +} + static const struct sdhci_ops spacemit_sdhci_ops =3D { .get_max_clock =3D spacemit_sdhci_clk_get_max_clock, .reset =3D spacemit_sdhci_reset, @@ -555,8 +594,10 @@ static int spacemit_sdhci_probe(struct platform_device= *pdev) =20 sdhci_get_of_property(pdev); =20 + mops =3D &host->mmc_host_ops; + mops->card_busy =3D spacemit_sdhci_card_busy; + if (!(host->mmc->caps2 & MMC_CAP2_NO_MMC)) { - mops =3D &host->mmc_host_ops; mops->hs400_prepare_ddr =3D spacemit_sdhci_pre_select_hs400; mops->hs400_complete =3D spacemit_sdhci_post_select_hs400; mops->hs400_downgrade =3D spacemit_sdhci_pre_hs400_to_hs200; --=20 2.55.0