From nobody Thu Sep 24 16:07:10 2026 Received: from CH4PR04CU002.outbound.protection.outlook.com (mail-northcentralusazon11013043.outbound.protection.outlook.com [40.107.201.43]) (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 C6B16539775; Tue, 22 Sep 2026 11:12:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.201.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790075573; cv=fail; b=YNyxLZp1hIl9PGU4b+auTbVixEzdcAa26dY+y/i1Y6nXI6nHoL/9sZtq42PoTyZsHhxgrhO14j4X2LJspL/YW4KCEFtBlngBotTRYQsVMWF8sKKb+QwQEf9e3eCxhiBl9rvcg9bpjKs0MgkFROQU89aRBHWn3X4yUB0UEEFSGU0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790075573; c=relaxed/simple; bh=N6X60a0iVOh9vrGN1uw5kSr+NUzxxXwQOAzk4gzt7lQ=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LKZ+YJOjcf9ZDfO8XXVQuHLGKf01D+VnJDETjZX9NDdLpMnHOfD27R2hLNLyl/Q/bIRTItno0XTrsxqsuBBUgjkdFGSNny5zxy3b8/vkxzlIKQ2XQnf6tkPpfoni+977LX+S0TiHDDdJWPROKx3QE7CTK+o7PXdJTvzZZdaRDRY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=hhRsGqs1; arc=fail smtp.client-ip=40.107.201.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="hhRsGqs1" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JxAuaM/ZDcl3ohaD53z3epHS48p7cl1gxZ85CkaIVB55vwruL1vRGVh/v5zdGBbJeaPIeHr979U5G9gcEBK3E2wIqdzkvKfWxnM7mBnf7fVSzA8DWP/Tv93g1w+UiWLWJ4M01HU176gelleSKa54L8up7cbApAgobO1/Cj2V3i2iQHZyGpuWgEWUYcwhbugnhJui3NyWyJYLmUL3mUsDrpnz8H/RqCQC3516AR4qQV1lJEDNeByLCLmAgt0lGIZCeqb/INrIhd4pAdX7AbhI4NCLMU31oEtWoPZIU7bVm1lb79fd72HMuUs/TYBMLJLxmnTLbvcbfTrmN3qt5sXydg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=m4pJdX6k8c4HYzrMnpFNYVI1qpz+CD3UFqSMnT5q9B0=; b=w/X6M4fL2pfSsK5Ygsh/rrY0s1N8uJin+2HkBSXQQqqdccEHwe7ZELhpN9n5gzsNANS+1SD4MccEXRrpTv2ge08hkQbexpp7mGjgGesY2kvtKWPhrcHHDwyqfEbpBA497oyQRIkdopj0JkAighNxEfgd5vrKPIWxX3Pj9+c+4+xfGuAI77sNi9qjQVoFaMRuX87S3Dp4eDO46tn5Q1Hpqy+MYpgg8PICWLjo++IaFPfC/Zu2UnESkbl4mTIxbr48oXevMrztvVjwsCG/n4neZd8SnGFMGGPmJYHOD4k2YOUQZSOVAet0IdR5d22xG3t+FLUPrzjpoGJQXtwBMKGJGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m4pJdX6k8c4HYzrMnpFNYVI1qpz+CD3UFqSMnT5q9B0=; b=hhRsGqs1OpqhhgvyjWWr+4gu02uPiwkVQHTnVxMip/piWB1fkRwm3e+fROYSTKL2SLlkwDPbefV67+OOzWhH3nMGJ01Dn6F3v0mXdt+4+qBfwIsa2SADFygwWZwI4mhV1ULgbWbBLhO7hHu0blq6+0elFIdb63mwDNMDT0I8DA4ZiyS2lEPcu4Ef0wmoWKv3UQxdVcMi5wle4z5VgnzXOb0JtQ3B6zZJfC9mz84FEvY6hUjL+nHNc51pkTktzwhIWFlN0xBQIw5a6/2Npa/+qH8nQ+WYRb6llw3JT9fJubUCjSyK40GxJlOjeyzpJ35BVqc9ybMJqei/1QbS1VPHAQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) by PH0PR03MB989354.namprd03.prod.outlook.com (2603:10b6:510:11a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Tue, 22 Sep 2026 11:12:50 +0000 Received: from SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01]) by SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01%5]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 11:12:50 +0000 From: tze.yee.ng@altera.com To: Adrian Hunter , Ulf Hansson , Tanmay Kathpalia , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Herring , Krzysztof Kozlowski , Conor Dooley , devicetree@vger.kernel.org Subject: [PATCH 1/4] mmc: sdhci-cadence6: add PHY settle delay after tuning DLL re-lock Date: Tue, 22 Sep 2026 19:12:35 +0800 Message-ID: X-Mailer: git-send-email 2.43.7 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0119.namprd05.prod.outlook.com (2603:10b6:a03:334::34) To SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5950:EE_|PH0PR03MB989354:EE_ X-MS-Office365-Filtering-Correlation-Id: b8ab3838-8dd7-4839-f6e7-08df189a7056 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|6133799003|11063799006|10067099003|56012099006|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: hNhsjClLZLrZRi0ews9g/0cB53NURX3GuT795f3aZP9IRF9LsHzkA5i/z1JUfJor/hSkG1p2sQWL823J+LeHW35xw5PQzfm2fFSclIP5CQUGzDQ1f9gLqx036uqDyftQzLsRKBtM/FKi/muFQxfy3okmIPWb+Cx/28zThAyrBajVW+oj9c4a7kzSA50/UGLKKyyg0doUihIRpes9DEqOrnJM2aPu7l6T1eUVBDYmeYE821/YJGRCptvlRHtW7K/nTMRBq+C3hH7QMfu9yRW8XGmOwgS+ZKiznTFEmarnJ264zPy4+454/FxhUIH0RETwr4Pkwc7ZbqgDLsvlqmlg/6HhPIH26hXhp1XvaTrYTslkM+SUNOmJBWLLlUBr7wBaLO/hUZeSyi2svuRiWk8LxQt3VqLDBsr+chP5wszDG1XA8hWO81ZjHcidUczWdTXiJ/GmSA6+niDFjEyMTPeyK8j+4K3uIPXaf6VPVWZ89FRZLCHT/uE2f1mc4hzgfOdwfzWY5Bp1RV9JWmoTIvPGu84e46Kl7fZVnZA2t/vNDjnbXcFr5+DAbfSoJEtWDfX7wv/q42SMNO0GysXsq5l17cvovxOyVEVXUgBp5FkWENIMkXw6GfmuOteTvdSZKX1p0tRkNvCXrtaVgSzsjPRhvq7DId8bAAQ7NP4E/TT8GaQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5950.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(23010399003)(1800799024)(6133799003)(11063799006)(10067099003)(56012099006)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ap/1AplbhqPZ3QDrzI+kpYuRJ0yQCkMVJNos+JIqkzEJ2LiHnOH92XRE/tUz?= =?us-ascii?Q?7qFJ5iB55mkbFBxQgOrkLO71FrHg0/USRSBSzRaWUbLOcyqeDtPMD9RyNVSk?= =?us-ascii?Q?K6rKyCqpQHc0772+Zo5al/9ASyEw5/VfL59Dd4spud4FAt/TCWKD4fxgDq5i?= =?us-ascii?Q?oydKlhp3Wc4izfbZBmmZQqef71jtgFOeh3ufdlQohTgFr0D+A9ucaCxx/erH?= =?us-ascii?Q?SgWou1DBiT1QsjRzBpfe8mYfE7TMQXfnprU7Kx/AFLfqSVSi+0FaWX2yD8El?= =?us-ascii?Q?HhDY3i2fqHIrhZxXQpZzl1Wrtg1lwQ0jWYPHWUafKa5cMKFPsFCcI3ne9bkd?= =?us-ascii?Q?ylt35fYjc6PjceXe6ZxqN9jmX7x5e2uHNyd2zeypHkldshz8M9ODnCKelNc8?= =?us-ascii?Q?7RROESGxq7jur2x6FH3Bgo2ReM8+IMFKP8GrXIAOs1jEDb1Ujc/wipnitTdC?= =?us-ascii?Q?bDg360CZpbTfAR2qw4LCTTzfvASxRjBRW5mcDhNUtcCQq4732n3n4rDugA7q?= =?us-ascii?Q?hVslwJTGnCyjmwvymMxVml2BzWdgHBVPIkNDtGPEyx3UOBXR25s5Nti2Hy4n?= =?us-ascii?Q?ECM7E4MaazFIqx8KTeRw4y443dKmqBgr3Qpl7DqxR9OxaJA8IGQB5vNWeJX/?= =?us-ascii?Q?tMjGSqbj6qLLl0xq3i9QNmNtCO9+Io1maALcAXyblkF1bEunIBgssIIa3ZDj?= =?us-ascii?Q?gUYCmZhLsZ+BQ+JaXZtNmUmLTcpXUvNdIe+aR+zNJM87tI0vxsE7mNYnD3N5?= =?us-ascii?Q?5aKsR94X7nORIZzE9pMYO2bGUzbYfxnLI3VyR/MnW1zSdv5SR0Z+cLNv3jq4?= =?us-ascii?Q?GMv6z8Rt9g1npcxx0R4LHpahG0E6N7zGtokAmYBCK5ljVYgEq5NqkasWjjX2?= =?us-ascii?Q?Te8GUeWBR7mPCa8bCp/bCMe+zttPm98deRXsznMmDdExGQUnUxtvwdMPJCFs?= =?us-ascii?Q?6LzdqOXxIae/d78or2fADUeKZSbBC7xIbbVg1lFNvEQuInhO02m1ISzVY9Ec?= =?us-ascii?Q?JWZWHBFyxpFLSF6pSgnZWy84tW9rPFi0DkbbMEK6UvB/kJ/AOoIJv+DA/EsV?= =?us-ascii?Q?rtSfLS7SEj8JEH7vcwZWRhahL9F32nfi+CC7bkj2e0sePZGBDC2susdk5VVx?= =?us-ascii?Q?L0MviydiuLQIBiPZ9fjsb2b03R2G6iVc34Ul4S7ufH++ojSfxD8WppdU9sb9?= =?us-ascii?Q?v1IZ+fK0wP0aNRLoo5IISTRt/5PbYODhRbXt0+hKTkoGga+kS3MrsZSs8Xq8?= =?us-ascii?Q?1whg6i4HTAkQOAypScKmbtztL4uqcXwuaV+yChSSCMmiEEW4g8V07gAwYA1i?= =?us-ascii?Q?UvjZoCSdRb9R2QfcO1jQMcwR/1Ik7+4ZNeonepyscLX9Iw7Pg368sW66QTF1?= =?us-ascii?Q?mu7W+du8Lk8FFX0ZkpRO0J8ga8FgzW3OxWymcYcSftyCxvyTXIRANKwNKc7u?= =?us-ascii?Q?rNd/ppf8hOReUst3hUVn8x29WbgwSM0sPTnQi98CQe03vNdV9iNR6UFYV2ym?= =?us-ascii?Q?XnEG7QNg+Ll5mvPuodj3+B++VpeNP0VHYnUS8iwvvX+YOR8epiulbDxUV5c4?= =?us-ascii?Q?FvVUeEEI4RzSiMbQ/upKOPGRJCmPMZYzqXNcnuxK9pYh9Uoi8HXRkRhlyEYj?= =?us-ascii?Q?GlrX5BRiU/TXMWXUNb+19N5aTpxsCJ3pNMmHn3jmG7b0do9AmgxiRLDnE+Mv?= =?us-ascii?Q?+unaxC1/intTS3iBKA4DRODvEKab+YYXcTlf032A3577CaoevFpUi4pDMskC?= =?us-ascii?Q?StVaUHrbmQ=3D=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: b8ab3838-8dd7-4839-f6e7-08df189a7056 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5950.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 11:12:50.2204 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IltW32eWJusM2bKM9nZbE/hFLT8e8v7A/fLpJnhTnUNRaC0xJbHGiF0mbd00rdKRCSv3k8jGIlf5hnfWIIzbVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB989354 Content-Type: text/plain; charset="utf-8" From: Tze Yee Ng After re-locking the DLL, allow the same 5 to 5.5 ms for the clock and PHY signals to stabilize as sdhci_cdns6_phy_init() does. Without this settle time the command issued immediately after tuning (e.g. the R1b CMD6 that switches eMMC from HS200 down to HS during HS400 selection) can time out. Signed-off-by: Tze Yee Ng Acked-by: Adrian Hunter --- drivers/mmc/host/sdhci-cadence-phy-v6.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/mmc/host/sdhci-cadence-phy-v6.c b/drivers/mmc/host/sdh= ci-cadence-phy-v6.c index 22d56bb46d75..35f35ef9c710 100644 --- a/drivers/mmc/host/sdhci-cadence-phy-v6.c +++ b/drivers/mmc/host/sdhci-cadence-phy-v6.c @@ -811,6 +811,9 @@ int sdhci_cdns6_set_tune_val(struct sdhci_host *host, u= nsigned int val) if (ret) dev_warn(mmc_dev(host->mmc), "%s: DLL reset release failed: %d\n", __fun= c__, ret); =20 + /* Allow 5 to 5.5 ms for clock and PHY signals to stabilize after configu= ration */ + usleep_range(5000, 5500); + return ret; } =20 --=20 2.43.7 From nobody Thu Sep 24 16:07:10 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010014.outbound.protection.outlook.com [52.101.85.14]) (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 1C90853A390; Tue, 22 Sep 2026 11:12:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.14 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790075576; cv=fail; b=G0n1Am+Z8Qc5M9wglqDBuBy1y+U8aSdBNMIFUkwI82m55GyG5PJ9ZsHuMOizDHmP7nZ+IJgkieA10T/K9FEtSLK0VCYOsSlF1KcIBTwiCZqZn12GM+TvQjUq02i+mpNSvbywZdsqGHJw9Pbg8fX5Fl/KEDCujqYCIMZoEWD4YAw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790075576; c=relaxed/simple; bh=2xAYgWBRXwCnORyQWVfn0dwcxhPQ1LweOwU0CPqM1UM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EEwOS4xBhCQZXeQN5DE0CIoeZiJIkAQdWjFt2FQnx8Zgdfz4UbtpvUvaK/V3vrcXPLyENcL+NHqNV0uWVY26oIGqvW/13WDARhJLdlUR75PYdJrh9AZYVs+YcUmuwlGtymqUQeI/LUElmGdb85MM31s/Iq2hWpy55Vep4VO98+o= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=DyKwG+Sf; arc=fail smtp.client-ip=52.101.85.14 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="DyKwG+Sf" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AKryGWaz1hm8rk/JQbb4sHDIv/ntQAVdh4R05pH6wh5DDiwpe3aLPkyE+EGte2lg0DR4gF+MMZRW/EudznloNISVb630sXqx5YSpBry/EHPWlM9ILRCRYmEUW5o4TEB+LLnpvh3Ag28NW9Y2gcWNkYuYkDxGKtRQZmR6q4ckiCge022Xj2iUhtWn1ZZrTOLy7knMTktEVXKR6/ngHBRSOTiGnu1AAIQRs/zoKGuJ7UzZ8Woxetu5o3fo6EKuDEK6Wfpac1V93eyVx14eckxQQ3Copb3MfEWy4KdUatOe9B1t75/cXG8dBL2tnUYvz0+ZfHGZIy+jC3sx1kbvfxD3pA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dJXe+R76McSgZ87DKhs+XF3jZXlIl8nAilcmNCsG/CA=; b=evBuKU05a2/rR58vvkgcg/ycUHiJ9OVEPyG5N3x4W1bAi89QXLCuKYv7Jih/7uAFaZ5NpUD709k+is7YSo2uDBYTcV4H/Bc1+yLomobKRKawymtd4xjFDszP4Hn9FB+LTTk+MJJO223TGANixwDLOPqsh9imIFcPBsBkTqZKfVRro0IQ7psA0ddG3SJWEorljqLq/NTOqgSi70wVMnPjQbacd5dxtrX+Jm8RQ0T8HwNNogIEK0i2aMAMvuPfPvZX8mgmT7N3zc8h7kkvS33ZOxWAqjqBNreYhuKpVGZ/v8DykIo78okyJ5UUmXxTdA8DyFZfrLLtlso+2h7ZPUXmGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dJXe+R76McSgZ87DKhs+XF3jZXlIl8nAilcmNCsG/CA=; b=DyKwG+SfW+SvSriFnqbz5XQ/JXHhIUA/fbXZ+0evjQgY2Wxay0DkwNmGhUZ8umKAnSoMCklJUTB2VSclCMBWA7Ohb6iJlQENsc298DXYj29rxRenx+PNpmG0NXX5zB9FDs4dpLCqSMbDZ7MZz/gK1bi7cUPn/gf/pR8vpFTAnd3poCXSI0pj7W6CoBaM86ilSPnhCwBr1XSSxanrf+ZWyOBdBCrZsTuwOYzKWZa0H84NI9jGqfrphwdL+ENlc6323l9PN4uGaqH8eP6ec7UA7436jRE1WsKl/vU8qKGqIECXUlFobwOfSJ3sM4I5d4/FfTiqQol3SbYDLqV4Fa6yQA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) by PH0PR03MB989354.namprd03.prod.outlook.com (2603:10b6:510:11a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Tue, 22 Sep 2026 11:12:53 +0000 Received: from SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01]) by SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01%5]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 11:12:53 +0000 From: tze.yee.ng@altera.com To: Adrian Hunter , Ulf Hansson , Tanmay Kathpalia , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Herring , Krzysztof Kozlowski , Conor Dooley , devicetree@vger.kernel.org Subject: [PATCH 2/4] mmc: sdhci-cadence6: program PHONY_DQS_TIMING for extended-read DDR Date: Tue, 22 Sep 2026 19:12:36 +0800 Message-ID: X-Mailer: git-send-email 2.43.7 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0119.namprd05.prod.outlook.com (2603:10b6:a03:334::34) To SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5950:EE_|PH0PR03MB989354:EE_ X-MS-Office365-Filtering-Correlation-Id: 0e9d9604-1526-4c5a-db9c-08df189a723f X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|11063799006|10067099003|56012099006|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: HZp8AlWqSirInqkDyLXasojgeN9WoqthPY1jN5kk4nyZFQfvPHxiGSPAocnsSN4YsLNZ9j/KP7nyIS380Hxy3LonNjrBcxPN8nU8pKLdw2u4qgSXJDMJ1XJeSqWVgWmkaCnk36PNF24Zg23XFoAAefLG++TD6PKxHWj5b2IvCqkK0GMxOh8VYwlJyYmF0B+IH0VKAnXD6fTa+RijEwqH2iw38w/5t9W9DXMmGM/AmTqk4m9rH89OS2dJl7QuP5qP39T+IZsV2qyd2TENfaIvMsFLQGekhEuqARnDaXe652jVlLOtMBLkwsX10caIvVA4b+htQtjvrL1nn4ASDOrBEx4Bqw/ZqU0dglb/7Lk6F6Ka3irpg+JkV+KI/SMrhL1B1uCZ1lco2XdJSemAiXMJwLC7ixv8REieynJxfHCB3Nvh97cKf6h/g5Qn7D6ccsSvz1arcIY1UuWsPiw3vH3Auug323ROat5m9CX9N9Q8zDy8JMp6gJNQtjz4pRcbkW7/gjj7tf8/O+ERPOFa/Jv1upPuoJjXmjdd5HQq4dMqBPSi5BjesC1mWjlreihcZ71KC3cRO7forKECsf2sTUj2tTPHYBqEt35hpTm6aMRbOsuaafa0hvJ7mu+aht3wxliqd4n5nc8+3zaT7r7jWImBBwljgAqNyS+MHq8SStIzl3A= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5950.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(23010399003)(1800799024)(11063799006)(10067099003)(56012099006)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5pNbUEWep2n0uC8a/qWUmjVK18E6oYygyb4D6rtxp95kO13m+ZNyKMvxfkR0?= =?us-ascii?Q?MrgXDbBddOwGMjukZPWXe7jJrPwRiKfKoA4gUEf6yDB/pPgFv97jhtluqil2?= =?us-ascii?Q?RlE2TMFUri0/6+PpTaDlG0fHCz153r0ynaTYXSEgmzgwMekeafIBhExlNDgm?= =?us-ascii?Q?4/dD0bbdIY0LSUtDW+c7o4sPWo+3Tcd8UDyZTTtvRbKv+Xd2zxbKlUG3gxQh?= =?us-ascii?Q?yUnWfYiW9hjBc7tysJu/PKn63vfdAe+MbIe4UedM6eCF6tQIPvN74RWmXn2E?= =?us-ascii?Q?m1y7OdR29EPZsDZxeRNV0DavkPcirEztwOsaxr7Smhfv4eFmG/hh8At9y+pN?= =?us-ascii?Q?T0eEtJ1JOgroe1JStw7K9vMXkX1UCyGk4siHZW8gFeLMN7+irmV8ZU7OzPQN?= =?us-ascii?Q?8G59XuDhWN6QrwNE4ZZk9nX9NX4VnL+QgukR0hDQp90gPq1m/Q42GR0eRTQ1?= =?us-ascii?Q?pfU2QUvp7XsHORDDtvgouU+OSQLJNAzHgRtX0wzsAdzXgByLVSoUeCQEdEfc?= =?us-ascii?Q?i53QFPvpkMPLAmERfKnNkMkt87K4gyrxJCLOz/iq9NCazeBLTIehGmkeZTNc?= =?us-ascii?Q?TgIYYqiV+gNKPje2Hs3jur8ojOyAoyrVKX2cickanV9brB5DcTOnBcyDXVVb?= =?us-ascii?Q?gSL5rQIvF5HJPC8hH3K9UOTFttegV3c8xoNBxgwLqPGAIhSxnIHrTMldHwX/?= =?us-ascii?Q?9ndgNbsKk1slZp60g46fvZFlGJML8FeHWIRV3JwhWx/bwrfPJoStAR/xtg6W?= =?us-ascii?Q?Mz0WjSEdbFRUcjofQA0mHjk1E1G0mLbcrs6YO2c4gfzr6sGrrjM/8lal8XuR?= =?us-ascii?Q?8G4MRjrLmv1A2Jml7+nl4RHKACguSySukJoHotDG7XvtrTpw4t/zHyKsiNN7?= =?us-ascii?Q?zsTlrSO05E7CgguEwCntFoI7XTuZBzgv8HNCG84CTLiUvhFuKntA0D+32URj?= =?us-ascii?Q?JBn1roceIXbNtp4Po98fBMYps9XI3FJ5t4dVz0T5wMpj+Aw928IVzp3CXKgq?= =?us-ascii?Q?kK11kccd9dROJREZ3BL8CMUiW0lUuQlzE77XXhoNwnIt3808ilyqtYXFzPTa?= =?us-ascii?Q?0TmqP+Ct0q2vzV/cf6evQw8fzAJHm5I4bx33C2xrqxOa5wbKWp2Zl0FpH7CI?= =?us-ascii?Q?jNsV7YOB13lDy3phjLxVgM24qb3+bg3RBir+bHzIEmZ5go1w9/WkDBVVs8nl?= =?us-ascii?Q?akmK25tjmP0kTJ+lA1j9cqeusvvWbqT475lYbaV3qcx091gNVJl93k2z0DUP?= =?us-ascii?Q?Qqmqm/vjDxyLSzarpE9RMM10focZLFfw4m4ABXaAYD9o8CT+bm79EmnIUDCz?= =?us-ascii?Q?S3eFnAXlR3TmW6jUKFH/uH1Scb4Hv5eR/PBGAqUqecnvFnUPWwqxKpJDJv0X?= =?us-ascii?Q?AM4Hu6z5iJ4Xn9uPqKx4Me0yPnAbVtn/cdEfu4AUoEvOApz2m55jhKEiRjaf?= =?us-ascii?Q?Pd4x2zoyquUHwf4DGjqZBMDYCgv2EVqoXX0B0dtArltTw28LuoxC/uZQrMvD?= =?us-ascii?Q?RbI+y4UpjNgaKoCLPljMYb6zHFtrq6kIPma/ZuvMUaMhP+DtNZLhC2kb0vdz?= =?us-ascii?Q?Pz5ByHujXwpBd4dY0PnQSWCxY3M8dy2pYJJZFhX5BqaZKNT04X4WIBU1JJas?= =?us-ascii?Q?4wsd8PTbIe2FgN5Y0QLwCh+6XCS5d3gHP+5XKhf+SIv3oYAzM3O16ayLIH53?= =?us-ascii?Q?VgOz05qZmW0uL2m3smDQPxurVWh0Pk0l9f2fuojivofABSo5QFGPV5CiulHM?= =?us-ascii?Q?v5VTnZ5Dfg=3D=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0e9d9604-1526-4c5a-db9c-08df189a723f X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5950.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 11:12:53.3424 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: b3XC2TuGGokqy/V/OnthxQHpoqC38fQRaibvup1bPE319tpGAMsLtEotuu4PpQourwfkxPWXjR2U2h2Mfsk+pA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB989354 Content-Type: text/plain; charset="utf-8" From: Tze Yee Ng The SD6HC PHY left PHONY_DQS_TIMING (phy_ctrl_reg[9:4]) at 0 in all modes. Per the Cadence DLL PHY documentation it must be the rebar (RE#) pulse width in clk_phy cycles minus 1 in extended read mode, and 0 otherwise. Leaving it 0 in extended-read DDR duplicates one DDR edge (the silent odd/even edge-capture defect). This controller's rebar pulse is a fixed 2 clk_phy cycles, so extended- read DDR needs 1; confirmed on DDR50 hardware (1 captures both beats, 2 corrupts reads). Derive it from the extended-read-mode state and apply it only in DDR modes, since SDR extended-read samples a single edge and is unaffected. This is generic to any SD6HC-PHY SoC, so it is kept separate from the per-SoC read-path tuning. Signed-off-by: Tze Yee Ng Acked-by: Adrian Hunter --- drivers/mmc/host/sdhci-cadence-phy-v6.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/mmc/host/sdhci-cadence-phy-v6.c b/drivers/mmc/host/sdh= ci-cadence-phy-v6.c index 35f35ef9c710..84592ae42762 100644 --- a/drivers/mmc/host/sdhci-cadence-phy-v6.c +++ b/drivers/mmc/host/sdhci-cadence-phy-v6.c @@ -90,6 +90,9 @@ #define SDHCI_CDNS6_PHY_CTRL_REG 0x2080 #define SDHCI_CDNS6_PHY_CTRL_PHONY_DQS_TIMING GENMASK(9, 4) =20 +/* Width of this controller's rebar (RE#) pulse in clk_phy cycles. */ +#define SDHCI_CDNS6_PHY_REBAR_PULSE_CYCLES 2 + /* Default PHY settings */ #define SDHCI_CDNS6_PHY_DEFAULT_IOCELL_DELAY 2500 #define SDHCI_CDNS6_PHY_DEFAULT_DELAY_ELEMENT 24 @@ -143,6 +146,9 @@ struct sdhci_cdns6_phy { bool cp_use_phony_dqs; /* bit [20] */ bool cp_use_phony_dqs_cmd; /* bit [19] */ =20 + /* PHY_CTRL register fields */ + u32 cp_phony_dqs_timing; + /* HRS07 register - IO delay Information */ u8 sdhc_rw_compensate; /* bits [20:16] */ u8 sdhc_idelay_val; /* bits [4:0] */ @@ -517,6 +523,13 @@ static void sdhci_cdns6_phy_calc_dat_in(struct sdhci_c= dns6_phy *phy) if (phy->mode =3D=3D MMC_TIMING_MMC_HS200) phy->cp_read_dqs_delay =3D phy->hs200_tune_val; =20 + if (phy->sdhc_extended_rd_mode && + (phy->mode =3D=3D MMC_TIMING_UHS_DDR50 || + phy->mode =3D=3D MMC_TIMING_MMC_DDR52)) + phy->cp_phony_dqs_timing =3D SDHCI_CDNS6_PHY_REBAR_PULSE_CYCLES - 1; + else + phy->cp_phony_dqs_timing =3D 0; + if (strobe_dat) { /* dqs loopback input via IO cell */ hcsdclkadj +=3D phy->iocell_input_delay; @@ -715,6 +728,8 @@ int sdhci_cdns6_phy_init(struct sdhci_cdns_priv *priv) =20 reg =3D sdhci_cdns6_read_phy_reg(priv, SDHCI_CDNS6_PHY_CTRL_REG); reg &=3D ~SDHCI_CDNS6_PHY_CTRL_PHONY_DQS_TIMING; + reg |=3D FIELD_PREP(SDHCI_CDNS6_PHY_CTRL_PHONY_DQS_TIMING, + phy->cp_phony_dqs_timing); sdhci_cdns6_write_phy_reg(priv, SDHCI_CDNS6_PHY_CTRL_REG, reg); =20 /* --=20 2.43.7 From nobody Thu Sep 24 16:07:10 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010060.outbound.protection.outlook.com [52.101.85.60]) (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 5B7345372CF; Tue, 22 Sep 2026 11:12:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790075581; cv=fail; b=dozfFnObVSMh8qPQ/277968LDas9r1jB9Nxh6gqQz4CmWz8aVO9qtpYaKgnDCZig/nktUX5scILxe6NVlIR9d62DyTD1VDwst1WzsZswxuA9mFqcIDGQiStanwmsPhVzMdpwrZIH41vv+S/XL2obBqIxo1vA+0ZNYg75GRydhVM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790075581; c=relaxed/simple; bh=4ktrNl3JHK8bh0IKCwp7Id1V8pGEfW32j2039MV3Kg8=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=jvmUzyMsUlOTwCRcwuNcDKbv5PIt90KeOoPIBwbHpxLgujDhuHgajFc/abb9rGQOTKNOsy8cCqfLvWjDsx78RjzR/wKVE4qaa5D6sQuNLCGgTy7GsWMBW9eGnafyqViY9VXLcNT24zWgPv9Dy/EWVmbnd6btZ5wudl6nkx4JtDU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=ibvbLbOd; arc=fail smtp.client-ip=52.101.85.60 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="ibvbLbOd" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K9mt8I26AJ2qbR67DNLqoqye/aRlC6j1ARO3tZkHNxT6AYaT31uZt8GOjJ4WsLQEC//KCY9YnGNtOWGqQXQxkxRoh5tHDQrR4oZ4g1Z1swwCu+ynT/5jieaCQuZMGCtVl6wtE04za5nq8X9ebbfHCketkTOY2eHaQ7ipr2UDq0XEnrw3EtfQzdvw3KCHP4Ki7YrKsbfrd4IwSFZf/bJaQ1NiUQb6PhJwo2/L1XqNyptc4KYm+zoEmI7DP+biwWM2BF4YzrPAcKhWIEh8fgvhZdCus4D24mEnqhfLYOnoz3wizQ+jhTMmbrFSVdOj0nwzV4zSz8/QjtZ3GgBCQMMJTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=afkjNzRj9m/tI3JoMb/i1cF57dN55zfCmccj7dvt2TQ=; b=f0JJB38HQSjJXaRSYYQWg1uNQECypWyPoIHXVAhy0wp0+QyPnKizb/s8loeb6IAqN+ey6vtuh7E3KNWell7pDY6yV5sBJkXvWF5wXY/QWIAcPmEIkg2xw1Z542FexLE0OG8KaS+CBD0Jf8hIdbWqMb0b5ePPn4ejG3m2/2Bzm9fIt80LtOH8G5UZ1Nb/BPYYCJFhlco+g3c2FuQRIx5A0B8XJpuuEwYeCE7XFxjaufCkvsBg5NgaMm/BtjKLAo1B9AODBDyWI4F/aqY4dolL+mZeiUGdu5JMcWWf0wzN/pRPEXGepIO+kalfHvKTIGFwG4z1AlN8BHTRjNdPZtVSPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=afkjNzRj9m/tI3JoMb/i1cF57dN55zfCmccj7dvt2TQ=; b=ibvbLbOd4A2tz5/3CJ29hOD2KwRrv9aI3s1umoAZ5gNrZ2IgljIJ0r8SHYofZHDulHirwGvh88WAmlDMZlYoI8Kn2d7BvL/S1txvOr5OWfcIg88c6jdyZQnlkAq3GyDceBoOpOLC/ks+Eh6V+kCyLSCRt4P9kxK2TMY4SPIouAKUaBhJKVcFKCNhRUSStk58V9vzT2gXlSfa/T8RU5AiCVmPeD27RwPUCSdomhfdA8Rxjw6nyr18mmG3k/QQPmVPqda5N6ZUNhy515ZWBPhjTmN1mhoX4Y4lGXCJZlOasGCYyBcfGXuv3nSZXMqHCLWmWMYVeDZeOVQ4eHTSR3Cc8Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) by PH0PR03MB989354.namprd03.prod.outlook.com (2603:10b6:510:11a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Tue, 22 Sep 2026 11:12:57 +0000 Received: from SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01]) by SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01%5]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 11:12:57 +0000 From: tze.yee.ng@altera.com To: Adrian Hunter , Ulf Hansson , Tanmay Kathpalia , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Herring , Krzysztof Kozlowski , Conor Dooley , devicetree@vger.kernel.org Subject: [PATCH 3/4] dt-bindings: mmc: cdns,sdhci: add SD6HC DDR50 read-path tuning Date: Tue, 22 Sep 2026 19:12:37 +0800 Message-ID: <25649477d9967bb04b12c6e60b0ee76443f356af.1790074790.git.tze.yee.ng@altera.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0119.namprd05.prod.outlook.com (2603:10b6:a03:334::34) To SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5950:EE_|PH0PR03MB989354:EE_ X-MS-Office365-Filtering-Correlation-Id: f74308b7-9eb7-42fb-1d13-08df189a73f0 X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|3023799007|11063799006|10067099003|56012099006|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: JX3rDUQgU1jQJD9JSrau+vFIc0u0OCkWS2Yj7JO5nMEHP+cY0qKEQ1/zXZXN5YohRI1c66SZEbExO5okOPK/B6eU7EKjzZphxOI0MpeI2vY9VT+rNz0MmoY7mGiCsF9AuRtudWvu6V5YTNogsc5XJ2nz88Np/4gQ2C1ud7shhbtBxyVtTvXENynsSxaBV8jeSrkPUnnSKnJ5c2obL3uPYLxnaYWQ1eJ4w2CowMd7wT8m47wDF3NDe+7RKGa31YW2f8kvNefi1APhNpmpv1hAbZPT+ihC2ULRL7xnonSC8uijBeigRnGvo9iMdsWfUNPgrVketpNbrTY7xTToVi7imHSXsFPYQ/ZhnFD4CWHR6w8/2wGi3b7+UzKwdId3276bwGM3TlZN6u309BJShCDUra/vPhHVbNDeb8qzeHxRhE/3kf7piLgzsc+ZTT71TSISjzXIXW8Cd8oecHQWE6VBO8ztgbGB0tFCZCeQBjSSK7EBST8CeaqB1+LzEFyvFJoKGuEXCNQXfzpDnbh4UwlrI2+r7MyD/Gmcj+5jBf++Pa3TwE+HytUWeHXs3kuJPR6xsuptOG/Fqy2kC8Ekee9tvD+nzfXtB5WpvxBZ1I8P7uhwzlfpx1WaSDFoMQKgvY8NbP0yghkE6SUlbhEHLexNt4LE8Q/ozap7xultxgWdZj4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5950.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(23010399003)(1800799024)(3023799007)(11063799006)(10067099003)(56012099006)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jlLWYFoci15u6ditbC7xcRUSBdt4h0ONN9imPsAIfTL5s5RZuXFoNE6dZl7Q?= =?us-ascii?Q?+wpfWHTOTZA3FONI+jN5SGWr2+0qRmw3iiKcRaxjP4e8QmEB2f1mvun0xe2Q?= =?us-ascii?Q?FQCEcX/Ciw4L1csOQSM575vfbgishNStAsjbGqKjl/VRmv0Tn5D1JffRzS14?= =?us-ascii?Q?0rfF2tekhZ5o4BxAtU5NkQfNblPcxm24yJ6EXk73dIuzIXGYlG3MukbTxJ0p?= =?us-ascii?Q?wCp6s6e3FcK8T/ssBGAzLtXo0JdBEuokDczkSXdQNczE5xzIgq/jUfnx3H7q?= =?us-ascii?Q?YLkU1F61ndp3map3VtEYGDmiGt1vJPEwhDmmevBpQGuWKczpyUlVpl3BeUpC?= =?us-ascii?Q?JvgtjBdg7MAYp7Hho2ody73b6dfpmaTzFfvj3jyJd1uTnttmJ1b9Z/Bqr+z0?= =?us-ascii?Q?kbhbB9hDTJpRFZGfTO97xBugegZ+bCHfZ3cpOMj58xanhkoN1nCtTeh6RG6F?= =?us-ascii?Q?icQZJwQ2cpvUNY0ZTEQ6zO17ArhIPBvvkikVtSnNCJZ7x54dzMW2AeVeentC?= =?us-ascii?Q?ZvKwuZp0NbFBelvjV52NLYC3Uf1+TjlYSfn7F1T6JPT8mbHVk1PDxWx+eLD3?= =?us-ascii?Q?BwWQ8jng9G8dmTaq+FnKUvHOoDbZP4YeZxl6ZsUdkxF4Yi9V8omM4rZyQ6Ni?= =?us-ascii?Q?sqNAiuEGw+EOMzilnbp60E+HiAeFZthRmCygev5FrgjGh7RUv+Lh6M7lk1Uz?= =?us-ascii?Q?ra17mRxHGEG5Ar3otTR/jLx7TpqX6oD+bPTaTbqgIBxTJ5Vfk8VZKeDSW+IL?= =?us-ascii?Q?+QexU6HJzw/iBhTRf9vzIuUNbaqZ+PeaOTFdRudLr8BuuB2i6o2qjUtm/oqC?= =?us-ascii?Q?Qt/DXu5sYOA3ZvXRwxR9Nlemkeo+E1CDJeOcERe8CKp/RHRQHAxo1UCshecr?= =?us-ascii?Q?DfTZW8CsG3LPK/B/DH19t7gFdNgpW8BHKgIEQO+2mbX3EhY4z40o/DAqRW3L?= =?us-ascii?Q?6h9hEaO5z9QbR7i36MSEyQBsHOzdf68IQ6xgYkxAAn9Nu5qgA2ZhLr1A8u/i?= =?us-ascii?Q?6UBg6z4PcYBfSYfmtekudiOMy+UvNAHHQcaKJ6XoQhrkUzuXJtegXXEyAM5p?= =?us-ascii?Q?/7Dk17pllfLQj+RdA6sefDLQeLTu+VKJlQR5kRzvqKvp2/F96DNo5r7PFkTO?= =?us-ascii?Q?lNQHHyNauHsWp8P58kgmMyAjkeahOUu/StpFwtB2cmQo93J0vaIBQIv38ZAN?= =?us-ascii?Q?JSx9eMP97J7O3fAFhwAF3IjfcQw9J8gpVox8517vwlbkNZNQsDaYXXxKxSZA?= =?us-ascii?Q?BqcRcL9nhYzh1mB28p90T5KSgWXFW/a7G/+hoTF/oVOZRhm54BZ9HUBx9VOS?= =?us-ascii?Q?+R6DUrJK3JZONNxW8CBgVEnpJmCgcg53nmoIBK1G+WwXs+qKxd+ozq9c8w/7?= =?us-ascii?Q?ee2iwyBD4OhnxkkQh+7Z3LBBt8AxUJJiMQq7WB1gf9hFPaU8NUUBQ6V+b+rE?= =?us-ascii?Q?PkAmKdBUp0NN2D4qFaoJ1E/keRLG6stPlI+QCdvkZucb/NmhEXIajAeia3Ga?= =?us-ascii?Q?IWaz0vnmcuuKnjOYOeThk9bgvhRWEnzgIkLtep95XPXsG/TfB9vtlxybhuj7?= =?us-ascii?Q?Hh00Gg0Y8CRoTYzpIgkKZFGp59cMWfSkgVa+EdPr5IXXrYop9P1xYh6ghFJw?= =?us-ascii?Q?BbZiKtCH0hRIHOf5fgecZZNNk+LxX7wPDZnx16wZ4fqiqHUSOOzcbmsGld3P?= =?us-ascii?Q?Z2CTFnZx8EQ7XHT1QYWXtxTLZ6LfqR67RZe7SlZQG3zlxrOzcoKGcAwlJRP4?= =?us-ascii?Q?b5HLVSlw/g=3D=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: f74308b7-9eb7-42fb-1d13-08df189a73f0 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5950.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 11:12:56.9425 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RJ3lFtiWDXFIlj24ZsAcIYPhUBz2jMT5vEoxTZQlQWYzI9qE+2sgQsIKE9jdC+cFZkcL2loONzGn5OjBXmcDpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB989354 Content-Type: text/plain; charset="utf-8" From: Tze Yee Ng DDR50 has no CMD19 tuning, so the SD6HC read path must be centred by static, board/SoC-characterised PHY settings. Add three optional SD6HC properties: - cdns,ddr50-read-dqs-delay: DLL_SLAVE[7:0] read-DQS delay that centres the read eye (0-255). - cdns,ddr50-use-lpbk-dqs: DQS_TIMING[21] read-DQS source (0 =3D phony, 1 =3D loopback). - cdns,ddr50-phony-dqs-timing: PHY_CTRL[9:4] phony DQS assertion timing (0-63) that positions the fabricated strobe relative to the returning DDR data; not produced by the Cadence timing calculation. All three are disallowed for the SD4HC variant. Signed-off-by: Tze Yee Ng --- .../devicetree/bindings/mmc/cdns,sd6hc.yaml | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/Documentation/devicetree/bindings/mmc/cdns,sd6hc.yaml b/Docume= ntation/devicetree/bindings/mmc/cdns,sd6hc.yaml index d5ea2717904b..df86872603d0 100644 --- a/Documentation/devicetree/bindings/mmc/cdns,sd6hc.yaml +++ b/Documentation/devicetree/bindings/mmc/cdns,sd6hc.yaml @@ -74,6 +74,33 @@ properties: maximum: 1000 default: 24 =20 + cdns,ddr50-read-dqs-delay: + description: | + SD6HC DDR50 read-DQS delay (DLL_SLAVE[7:0]) used to centre the read + eye. DDR50 has no CMD19 tuning, so this is a board/SoC-characterised + value. If absent, the driver default is used. + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 0xff + + cdns,ddr50-use-lpbk-dqs: + description: | + SD6HC DDR50 read-DQS source (DQS_TIMING[21]): 0 =3D phony DQS, + 1 =3D loopback DQS. If absent, the driver default is used. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1] + + cdns,ddr50-phony-dqs-timing: + description: | + SD6HC DDR50 phony DQS assertion timing (PHY_CTRL[9:4]). Positions the + fabricated read strobe relative to the returning DDR data; the corre= ct + value depends on the board's SD flight time and is not produced by t= he + Cadence timing calculation. If absent, the driver default + (REBAR_PULSE_CYCLES-1) is used. + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 0x3f + required: - compatible - reg --=20 2.43.7 From nobody Thu Sep 24 16:07:10 2026 Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazon11010033.outbound.protection.outlook.com [52.101.85.33]) (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 4F89C53A3BB; Tue, 22 Sep 2026 11:13:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.85.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790075583; cv=fail; b=UhnQsEpTO6SG7tgqU+2wFvRoxRbJEJLVk1IQVJQc2E5c4nbN71yAu3s/GuFezeUE8MTEGwZ1W9khPqE6CBZa4BgdXOEGbH7xd9ibgRhOMsfoD0DZxjA5H7jG7PdqHKzQJjF+/0aKQqAWI4oD5K7OrAawsANVKOPbbdyHBFcpIXA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790075583; c=relaxed/simple; bh=4qd7mhr6jWkhZfxGUG2/McEDHM1V/GqS8nY9o/+NdjM=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=AzNzqv/ihkRBHxwy5pmfqcGjXanR1CB/nWzAszcDKbpoUwIDv9MbYzBC3vRm6rLNa2XayF8ZBj0qKU94uCDu888Kp4jz2Au5X3eyFAGMJgxlptcW4sL/fPvKHcNM5Ni/REZpykJPIzOfaiApBoluuxcdPFFV13ePgBRMBrA3Nvw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com; spf=pass smtp.mailfrom=altera.com; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b=cTVnSY7E; arc=fail smtp.client-ip=52.101.85.33 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=altera.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=altera.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=altera.com header.i=@altera.com header.b="cTVnSY7E" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ltQGpCXc+jbwLtAaBi8Ua5cH5uFbx2V1P/S8hWV4wsHb5fi1P620zO9jaH9l3CaBMiV7fcREIsSx7Q0ac7o/hE5jczid9XsYDZlOjYlNh6ccKlgGIzwVA7FCMg1o168bab+82NHcOINaM7sYNNSGpKDc4XkimOoXQgctYwZGGoHiUTZYM7uz/i+WSwXC9wfeTZGypFONfsZZAAO0NtFpmKTreHvpYC6dvPV+jh8SqkYhFuQEVI+nv06SaVQg3BCfqki2INGCeSPGekbiEh5nmvcsfUvTmJIW0eAe96bCq1IMgKCLKFJ2tX2bYmQlojvHA/0rz4BeZn+hafldNOqvPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=9yFt1C6I7ebI00gmcC4SrpkOFf2dLqBDfRZCR+m6PEw=; b=gHOa0sd3ZzVzQ78VY6VbojfD1lYwC6WOO5DZncuZK+W/ObPnKkjSlOa7a3Srfmp5CIcdzBMR3FAsXokxQ+tfdTYOzEbxplxN8chk8zBu9SNopYQw6CYf3o+r+BG2CcyHyMd01ErTEHBlg1oEFJQexe653DB/0Qh9BhvULTekqkldivtu4f946j1jYsIAWDgBBtopjnA8ePoxyQBE1qws9Wd07ODctH7Tp9KDkK9kY9PsxTuU2XSOQV7Wr8Ei8Nyqw1RZHaMk9demVsyOv9AU5Ia5EA49PwcHN3uTN/BdHHVcoaFO8bulA/+yZv4r5aBI0EK+C8thHGMWeEjgKpUotQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=altera.com; dmarc=pass action=none header.from=altera.com; dkim=pass header.d=altera.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=altera.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9yFt1C6I7ebI00gmcC4SrpkOFf2dLqBDfRZCR+m6PEw=; b=cTVnSY7EYrHt0m4IjLlHVxJ6oiPKq1hp36JyO+fkn1HUY3t249MoeMBjVnEvr8kHtg08D9YlGmt8zpkk/q8yPim9CTwgLzuWuRVH0RXLYSuk2dro83x8ip3HDRwLX5+w9TLdQuYPA5mEPJMF0GluHU13+sevjc3/jGMDMzupEwOeRHHmLr3bOCLSKQLwm13pCczmdELsMrUYL+4kcHpS/bjPw549CD/Atw2TZISdAa9sIUG/3EXtEwT+EPJe5zNezGTge+mxNYtNPwM7ko+7wxRZbfDHsTKaXcf7f8ZnEZQgDzT3Yldb4iDN5KBw5gxUjclaDCGOa3xyju9VBoGqZQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=altera.com; Received: from SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) by PH0PR03MB989354.namprd03.prod.outlook.com (2603:10b6:510:11a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Tue, 22 Sep 2026 11:13:00 +0000 Received: from SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01]) by SJ0PR03MB5950.namprd03.prod.outlook.com ([fe80::53a0:bf93:6b6b:de01%5]) with mapi id 15.21.0428.015; Tue, 22 Sep 2026 11:13:00 +0000 From: tze.yee.ng@altera.com To: Adrian Hunter , Ulf Hansson , Tanmay Kathpalia , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Rob Herring , Krzysztof Kozlowski , Conor Dooley , devicetree@vger.kernel.org Subject: [PATCH 4/4] mmc: sdhci-cadence: read SD6HC DDR50 tuning from device tree Date: Tue, 22 Sep 2026 19:12:38 +0800 Message-ID: <9440b973966df50c9f6c79055ec83ef3b634335a.1790074790.git.tze.yee.ng@altera.com> X-Mailer: git-send-email 2.43.7 In-Reply-To: References: Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0119.namprd05.prod.outlook.com (2603:10b6:a03:334::34) To SJ0PR03MB5950.namprd03.prod.outlook.com (2603:10b6:a03:2d3::20) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR03MB5950:EE_|PH0PR03MB989354:EE_ X-MS-Office365-Filtering-Correlation-Id: c020f133-81a4-49d1-9b1e-08df189a765a X-MS-Exchange-AtpMessageProperties: SA X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|3023799007|11063799006|10067099003|56012099006|55112099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: 8xM8nsz61EuPuf/+kFdh7Q7gM/HNFPUZya8ivB0r3h6usy4QhdHSmyGkA18k/aSXzftkiQ/vvKjV6WzxsjP80OYul0RnWDyOnjPPcpqtLpjk/inMyE0BpYBjAiFeb7X5ioj++3+Xehipg5eYdIn4uEOEGCcb6zs0gdVpGVVyFdhFH5RHC8QDeIiCLnTkxDXCy2JWQDY8SL7EHfcb0iHjdGscbHCDOYR5vpZqdlKGGRnos3Fx7MKZH9PLkoIXj/T5b3yOhC6CNOdsm9wjYL/aW410jNX11CUMmkKAfsUOyX114+pIk1cZFco7CYpU+HWJadSbS9zz1tDRVbp6ykbdomsNqRvBEb/aTUhPYAJgGsheFKUSvt2gdtpkh7WCkM0/CduUYPSJYGtxxd/VAFSmxS07F2U27/luF7RBWmxS3QMrA9I229greR6zFhPNd0KLs9SKGsgRzcifY6UXhy+1ImDqkfoA1riSURi+dWxvncB/2naQBeoL3TNisVAiHcZIw7hdmlZsqjh9pXBwhODgblMRGTEVkgSTvl1pHqX+bjo+jRvMzbePG4UBaiE1ATUkd1hWs6laVT9TSyS+IsGhozE6/aB/gxFzS+NvjUMq+VvUQPakbmJZ8QtK9WKH64gskeWrQX1tVPNmxjQ89LERDlBJWaHfAiyM3dH4J0guL1E= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR03MB5950.namprd03.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(23010399003)(1800799024)(3023799007)(11063799006)(10067099003)(56012099006)(55112099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qTBGnUWpPYXj/Kv42umVBxmVpReE5wW5Er/KiAZNhLgQajUqVnftLnI0d1dD?= =?us-ascii?Q?c1C5z4K82GR1QuqwMlSa1NfE3tKC7UXP9POFzX1chtNMpWUpIeLhhfFuy0aC?= =?us-ascii?Q?ufsz3ILWld6uO/X751sECyiZcQtAFc1quBupVSHh9IxInEEZdr4a0iumgbJ+?= =?us-ascii?Q?1fsz3wx+kAQxMzoCke0WV39mUK96LfzjPANKLuUNJiVPrXwMOzsGPW4gG0UE?= =?us-ascii?Q?FFOET1W1WTLpeRgpHr4bzeiTkqfz404Xu65+c6gJYbrFyClLGQFClICIAg7n?= =?us-ascii?Q?SDcWeDvmDw9Ws1gYOe2f6pZ1zw7FsNm6s6+g2XFoMEBoLSNnufOz3vmREjJQ?= =?us-ascii?Q?jrd90x3Uu5TBUK2Rvg1+c6MWa4d+HPQCCiswXbA8kPP2ufJwTl2Q01TV3W+Z?= =?us-ascii?Q?QJq21MO4EsQdrkBOSJtbe0IzF7pjGYGOyIoIhrIOxj8xVFFP39nKDFF+mAyL?= =?us-ascii?Q?KN5SeT1NpWtxXTt8RBEVQDTHNawvtCUlQO3s56obQg5JoeK3pGY6skmfz1fO?= =?us-ascii?Q?ufHhihX2rdzvs8y+beHqvXSdvq/ymyVnBD6R9sm8iBluxouSrLpCdHdq5EjO?= =?us-ascii?Q?iQHPvc32tjO+R6Z1uS4JtTVRiYH3q7lMFoAsLY5h+vS+qCACtlQpxq8RY3+K?= =?us-ascii?Q?M4oEn1bbnWNLHVY4WS+HqhJSZtFKVcmx5dcXg5hZP2sqQhh8MW284VZv2DTu?= =?us-ascii?Q?6zjWqYLA9qHFlNHdKl/8K75AWYBe6WmBeH4C2wyr5P4hPtgGpQVKMuCuQgIA?= =?us-ascii?Q?4B/N0p24JeJfM8bAKlHaKYzzEug7ONjFQqMP3dcwaCA8CKICzWfqYvkcPuDh?= =?us-ascii?Q?hFLGe5EWcjisyv4mzcWtLgQ/6JNQGZOUvdkIXne2wRx+0CgfQ5DlWGsspcII?= =?us-ascii?Q?w4ZuF8lUcr04yGB8Td4GeW3DnWGLzUXoNzo/wpO48CHThvv4iGWNdUlEQoPm?= =?us-ascii?Q?laup9huxLWkEnJYFdMSqwptDlC12gsjZ/kPBywNtoJTPOiiPzN9CzCp/0fdK?= =?us-ascii?Q?xmpn07P5zf03sOp74X2Rpcj3ksgwTZ6yUETW5WCCCDPEX3xwPJPoZQ+Yc4uc?= =?us-ascii?Q?5R23FnUfqIthu+3c+21csMVQuGJyhKarSb/od+K9TjSS0PBW3u/LkR6FOiYj?= =?us-ascii?Q?A3sZ80z9K9L8tb6eHIrvs1WqjHduw+/7NixpUCNZz2he4I5bNbhEHeePUIdR?= =?us-ascii?Q?pvauA4TvEuPoMwIEoorXQXWmDB3yBOXExgVTX9i7et0KIlcumG7W1GGLKvL6?= =?us-ascii?Q?D67b9qTDOZgdnuqL3+qtOt+NANk7eeq8rHaY/frFVs5YAnkFJaQ8G9F43p0k?= =?us-ascii?Q?1bfWlsz+4mTiJPwvQl5iw389qZFQVOpuxoF13FUFyi87xSEGVpu8SAP2FIBh?= =?us-ascii?Q?q1RtfA0f4/GeZUh4JPb2AYjghHdvh8xA3HSuamdiaVs6niJISRCQK69JWbsW?= =?us-ascii?Q?+llJQGylgtwkDMoE75Wm+ZlJbJKwIuIpleuBzmtat4SEdHrSbKOJgwOzWOAf?= =?us-ascii?Q?xEX00bI/454PpVs4SrLOzzfoxK+1JCdK8MdJYTGrBxAFyQwd/7KbKiTVY/Oz?= =?us-ascii?Q?0djTzm1FIT96E+X9cLdhQ8AdhGWoySEMf7YTFVkCdXhP6riyh4SBjbSy4Vcq?= =?us-ascii?Q?l90wlbKO4PnJ8eI3FjIEd6YEulhqy8LYI3HGmpJpEsfuD3/pxLrHAMnc+NBs?= =?us-ascii?Q?cV+RJyEV6S9tz3Jfl1ej0HTKLm/FeX/fSh0IrGkK2Qop1ilI0+lcHbFWz+7a?= =?us-ascii?Q?KfVICsmgBw=3D=3D?= X-OriginatorOrg: altera.com X-MS-Exchange-CrossTenant-Network-Message-Id: c020f133-81a4-49d1-9b1e-08df189a765a X-MS-Exchange-CrossTenant-AuthSource: SJ0PR03MB5950.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Sep 2026 11:13:00.4797 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fbd72e03-d4a5-4110-adce-614d51f2077a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F466QIkC/hKi9yTc5djHPrCQIATrzTR4m/lWxSA/kWlYMPF3wOoG+gbJGdr5O6bGylPWpevtFZkJJFcU0osDXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR03MB989354 Content-Type: text/plain; charset="utf-8" From: Tze Yee Ng DDR50 has no CMD19 tuning, so the SD6HC read path relies on static PHY settings that need board/SoC characterisation. Read the read-DQS delay, read-DQS source and phony DQS assertion timing from the new cdns,ddr50-read-dqs-delay, cdns,ddr50-use-lpbk-dqs and cdns,ddr50-phony-dqs-timing DT properties at PHY probe, range-check them, and apply them only in DDR50. When a property is absent the existing driver default is kept - for the phony DQS timing, the derived REBAR_PULSE_CYCLES-1. Signed-off-by: Tze Yee Ng --- drivers/mmc/host/sdhci-cadence-phy-v6.c | 72 ++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-cadence-phy-v6.c b/drivers/mmc/host/sdh= ci-cadence-phy-v6.c index 84592ae42762..0f47fa62d894 100644 --- a/drivers/mmc/host/sdhci-cadence-phy-v6.c +++ b/drivers/mmc/host/sdhci-cadence-phy-v6.c @@ -129,6 +129,11 @@ struct sdhci_cdns6_phy { /* Active delay element (ps); doubled when one SDMCLK requires > 256 step= s */ u32 delay_element; =20 + /* DDR read-path overrides (SoC-specific) */ + s32 ddr_read_dqs_delay; + s32 ddr_use_lpbk_dqs; + s32 ddr_phony_dqs_timing; + /* PHY_DLL_SLAVE_CTRL register fields */ u8 cp_read_dqs_cmd_delay; /* bits [31:24] */ u8 cp_clk_wrdqs_delay; /* bits [23:16] */ @@ -145,6 +150,7 @@ struct sdhci_cdns6_phy { /* PHY_DQS_TIMING register fields */ bool cp_use_phony_dqs; /* bit [20] */ bool cp_use_phony_dqs_cmd; /* bit [19] */ + bool cp_use_lpbk_dqs; /* bit [21] */ =20 /* PHY_CTRL register fields */ u32 cp_phony_dqs_timing; @@ -523,6 +529,12 @@ static void sdhci_cdns6_phy_calc_dat_in(struct sdhci_c= dns6_phy *phy) if (phy->mode =3D=3D MMC_TIMING_MMC_HS200) phy->cp_read_dqs_delay =3D phy->hs200_tune_val; =20 + if (phy->mode =3D=3D MMC_TIMING_UHS_DDR50 && phy->ddr_read_dqs_delay >=3D= 0) + phy->cp_read_dqs_delay =3D phy->ddr_read_dqs_delay & + SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_READ_DQS_DELAY; + + phy->cp_use_lpbk_dqs =3D 1; + if (phy->sdhc_extended_rd_mode && (phy->mode =3D=3D MMC_TIMING_UHS_DDR50 || phy->mode =3D=3D MMC_TIMING_MMC_DDR52)) @@ -530,6 +542,18 @@ static void sdhci_cdns6_phy_calc_dat_in(struct sdhci_c= dns6_phy *phy) else phy->cp_phony_dqs_timing =3D 0; =20 + if (phy->mode =3D=3D MMC_TIMING_UHS_DDR50 && phy->ddr_use_lpbk_dqs >=3D 0) + phy->cp_use_lpbk_dqs =3D phy->ddr_use_lpbk_dqs & + FIELD_MAX(SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS); + + /* + * The phony DQS timing derived above depends on the board's SD flight + * time, so allow a DT override to re-position the fabricated strobe. + */ + if (phy->mode =3D=3D MMC_TIMING_UHS_DDR50 && phy->ddr_phony_dqs_timing >= =3D 0) + phy->cp_phony_dqs_timing =3D phy->ddr_phony_dqs_timing & + FIELD_MAX(SDHCI_CDNS6_PHY_CTRL_PHONY_DQS_TIMING); + if (strobe_dat) { /* dqs loopback input via IO cell */ hcsdclkadj +=3D phy->iocell_input_delay; @@ -693,10 +717,11 @@ int sdhci_cdns6_phy_init(struct sdhci_cdns_priv *priv) sdhci_cdns6_dll_reset(priv, true); =20 reg =3D sdhci_cdns6_read_phy_reg(priv, SDHCI_CDNS6_PHY_DQS_TIMING_REG); + reg &=3D ~SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS; reg &=3D ~SDHCI_CDNS6_PHY_DQS_TIMING_USE_PHONY_DQS; reg &=3D ~SDHCI_CDNS6_PHY_DQS_TIMING_USE_PHONY_DQS_CMD; reg |=3D SDHCI_CDNS6_PHY_DQS_TIMING_USE_EXT_LPBK_DQS; - reg |=3D SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS; + reg |=3D FIELD_PREP(SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS, phy->cp_use_= lpbk_dqs); reg |=3D FIELD_PREP(SDHCI_CDNS6_PHY_DQS_TIMING_USE_PHONY_DQS, phy->cp_use= _phony_dqs); reg |=3D FIELD_PREP(SDHCI_CDNS6_PHY_DQS_TIMING_USE_PHONY_DQS_CMD, phy->cp= _use_phony_dqs_cmd); sdhci_cdns6_write_phy_reg(priv, SDHCI_CDNS6_PHY_DQS_TIMING_REG, reg); @@ -881,6 +906,7 @@ int sdhci_cdns6_phy_probe(struct platform_device *pdev,= struct sdhci_cdns_priv * struct sdhci_pltfm_host *pltfm_host =3D sdhci_priv(host); struct sdhci_cdns6_phy *phy; unsigned long val; + u32 prop; int ret; =20 phy =3D devm_kzalloc(dev, sizeof(*phy), GFP_KERNEL); @@ -919,6 +945,50 @@ int sdhci_cdns6_phy_probe(struct platform_device *pdev= , struct sdhci_cdns_priv * =20 phy->delay_element_org =3D phy->delay_element; =20 + /* + * Optional DDR50 read-path tuning. These are board/card-characterised + * values with no CMD19 tuning in DDR50; absence keeps the driver + * default (-1 =3D> not overridden). + */ + phy->ddr_read_dqs_delay =3D -1; + if (!of_property_read_u32(dev->of_node, "cdns,ddr50-read-dqs-delay", + &prop)) { + if (prop > SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_READ_DQS_DELAY) { + dev_warn(dev, + "cdns,ddr50-read-dqs-delay %u out of range, clamping to %lu\n", + prop, + (unsigned long)SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_READ_DQS_DELAY); + prop =3D SDHCI_CDNS6_PHY_DLL_SLAVE_CTRL_READ_DQS_DELAY; + } + phy->ddr_read_dqs_delay =3D prop; + } + + phy->ddr_use_lpbk_dqs =3D -1; + if (!of_property_read_u32(dev->of_node, "cdns,ddr50-use-lpbk-dqs", + &prop)) { + if (prop > FIELD_MAX(SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS)) { + dev_warn(dev, + "cdns,ddr50-use-lpbk-dqs %u out of range, clamping to %lu\n", + prop, + (unsigned long)FIELD_MAX(SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS)); + prop =3D FIELD_MAX(SDHCI_CDNS6_PHY_DQS_TIMING_USE_LPBK_DQS); + } + phy->ddr_use_lpbk_dqs =3D prop; + } + + phy->ddr_phony_dqs_timing =3D -1; + if (!of_property_read_u32(dev->of_node, "cdns,ddr50-phony-dqs-timing", + &prop)) { + if (prop > FIELD_MAX(SDHCI_CDNS6_PHY_CTRL_PHONY_DQS_TIMING)) { + dev_warn(dev, + "cdns,ddr50-phony-dqs-timing %u out of range, clamping to %lu\n", + prop, + (unsigned long)FIELD_MAX(SDHCI_CDNS6_PHY_CTRL_PHONY_DQS_TIMING)); + prop =3D FIELD_MAX(SDHCI_CDNS6_PHY_CTRL_PHONY_DQS_TIMING); + } + phy->ddr_phony_dqs_timing =3D prop; + } + priv->phy =3D phy; =20 return 0; --=20 2.43.7