From nobody Thu Oct 2 14:10:15 2025 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011042.outbound.protection.outlook.com [52.101.65.42]) (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 9FBA7281357; Tue, 16 Sep 2025 07:57:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009427; cv=fail; b=rcFK4+lca0HSRqz5aRqFewLwpWrIqgdtmXvGvv2R7WkA/W/R2sU5CV7JT5Q5FXdMARG4Jw8vA3OCegmyzWfULjQQlwQ7RfqTMT7Wl5/UCbTmGX8hfV9ugLomwdlV9drWUNJbkmG6iQckBLI/M6PJLVUHIKGvNzQ0e/xXXdKOZvc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009427; c=relaxed/simple; bh=ucI+0GyXwy3fXCg0PpNApr2FMUmSlVfJEceCnlT2d8Y=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=WI9Kibh6slBfFupQ9B5m3v6skGv3etw7M+omEKeMeOpBLrMHMW085tvNGQRsHeZkQif5+3sd0ulnxPGZGomC39QiyfJve+hNGFh7RLeRkFL2K+egG+meLuQcE1LXP6P/qPcq3wY+HL+wngvAFCg43p3NrwPP/v0OHnqPklxGIB8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=kXHEnlnZ; arc=fail smtp.client-ip=52.101.65.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="kXHEnlnZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y4+lKehf+ry2pe0WlVx97HeojdVHTStO5RwJEyE51XQMy3r7ERxMsxfZUvo4Qachv7qswxr+SKBub2200XSXhYt6vK1YijEjCFqUCFYJyxZRZ/iJXBPAx7rnyRTbWpTrI2gtzh9CSxBx6BQKmW/IhQR78sfA0LkQpeYcglE/LPsWwoKMwplUgqevNa3JMFpavsEWTx+uFNdQlwMH4TqENAOc30l7BWGg6+2309PqSzKmZZaNccEdl2qQ9D/JoJDs0zWGarW1GWnHn2xK/f2ThxhDeAkwc6zi0QhESa0937ZSKjn6qmF92N5U2l22xS9ZOpJ8vNs2S+bqDAn6gaoPFQ== 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=u6/LZUf9BPBhEhkt7fQUBTg9tFyM8Z+VLnC+S3elE8g=; b=lk4KH4WmcAHAp+lbpj5lXd/GFowhd/xDAqTeZjlhzuK6JZXBOZwnjKkDxm2rMwLRwgf9y99Ic6zVyUSJWjlGmuou6C2h5X5nYvWGNoj8SWMmdGTOie0kB7NPLCIxKvlCjviKoJrExQT5Dq8QMMFpNgv6eVlls5cKF3w4UwH0YoTj0CTPZT2IZs/evejvRXN21GIW7fi0PTHnM+hdMNfmbtqavZRGsxxPDval3cSfwO23s8eFqLSPl7cDFmgeYePQO4tc5CNZeb6LVGG5I8WLoNN/jC19xfdT20+e11iCowEnQLz6Rp7Eo3J2iBz1HEf5VodrYoPZDw1tq73d611Q7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u6/LZUf9BPBhEhkt7fQUBTg9tFyM8Z+VLnC+S3elE8g=; b=kXHEnlnZ8VGRv5CQYT8gnxdFQEYgpezLgP3VjEu0fhn/V5xjPhoXHCqvODIorvoxomuHISjaP+batl1pKxNbQL1Mo4DUF7BV3n9uKHEim2FK60C5BjeEDRpoAnuapdWWJcaOgd8lxuZQ6aOSNejj4bDTY8L5X5FmImHD+Ln5gwC/XHHa1TmMghi5W5oN3cp6XoLN11Mh0iCefBGF46YT4pbQaVE20rTn/H/KMhZlhi5WZfpkEnZogXOuMF90Fvf40Q1KRV2bE9jC4maIgYqinyvthX7keBJdcx3Q+OE1SqJIJMp0afqs4kzy0fDRqQZ4qSHpp7iIDpbj5mH5fO2ykw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) by AM7PR04MB7125.eurprd04.prod.outlook.com (2603:10a6:20b:121::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.19; Tue, 16 Sep 2025 07:57:01 +0000 Received: from DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33]) by DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33%4]) with mapi id 15.20.9115.018; Tue, 16 Sep 2025 07:57:01 +0000 From: Haibo Chen Date: Tue, 16 Sep 2025 15:56:40 +0800 Subject: [PATCH 1/5] spi: spi-nxp-fspi: extract function nxp_fspi_dll_override() Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250916-flexspi-ddr-v1-1-69358b5dc862@nxp.com> References: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> In-Reply-To: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown Cc: linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Haibo Chen X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1758009434; l=2145; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=ucI+0GyXwy3fXCg0PpNApr2FMUmSlVfJEceCnlT2d8Y=; b=YT78UwkRaJBauD0VvXGXExKfzQnU23J3SFXNF2ftkhAG1YRAArAo2ePFN/L+bFw70TQjDzpCc vxU2f98bFuCBUp8fR/ohLX/ywhk6yiPIO0huKZ3JC8taFYDF1LfwxrS X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SG2PR01CA0137.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::17) To DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) 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: DU0PR04MB9496:EE_|AM7PR04MB7125:EE_ X-MS-Office365-Filtering-Correlation-Id: ceec7f1b-c7b7-43d0-6c3a-08ddf4f69e7d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?QVF4aFNCOU9RWStDckNNeEdjL2kzVkpCRmVHcE45R0hjUmIzRzNjbnpBV285?= =?utf-8?B?VXAxYVNEMmozL3BVK0tjVHA0czY3bjkwTnMwVnJsMGRhVjdheW90MHhVR2lv?= =?utf-8?B?QkpGd2xyVmNjWXJHTkJwUENyRzFGZFcwN2dvc3RDTk9tUUExUWg0TGRqcURD?= =?utf-8?B?TVd5dkZUNnl6clEwUUR6THc0OE9LVW51a3lyY0lScDFYK1NhYVJDclJITGxn?= =?utf-8?B?WitYVmdmNWNPclptTnpndGVIa21UT1dodC9Td3hYTEc2V3NYNFYrWk5MN1pM?= =?utf-8?B?ZVMzVFNucGJMWE5rV3liNlF2dnE5NW15Sm1nSXlGN09JYjlralB0TytQNHdY?= =?utf-8?B?ZW1mTXJGaGxSQkF0OW8zMDFpZm9HMis1NWlrVHMwd2FpM2VMRGduWXBqcGpG?= =?utf-8?B?QmpoSEo4RmlaZWxnSTdRU2wveDRXLzhsSUY1OXlkOXVsaTNnTGdTREhidzdF?= =?utf-8?B?RG1UZHI3MjRzL1V2aHpnR0JLZmplbFdDZE1HVzEwVTQ2MDVrR2dId1RmWlRP?= =?utf-8?B?WnJOMklDVHJWUEltak1MdTZmck45QjgwM3MvVWFCQjV0NXV6TFY3VXF5dTRw?= =?utf-8?B?bFN6ekpnK1MwLzZxT01pa3M2RDF2bHBaYUcraUlvWFlqbTIxR3JyaGJiekcw?= =?utf-8?B?cjN4bG4rZEpxNml2U0czZ1VaS0ZpcGxwa3lSYzNVZUpsQjhaSXpBRTlxSE9P?= =?utf-8?B?eVI3ZllaZGtjMmpReUNKMkhlVHRRTnpuSmRuZEJ6K2FuejMwOVZJbGNRVEg1?= =?utf-8?B?cWdyaVZRTjZVSFQ5R3hBYk1UUHJaaGNrcnROWWFnVmtMck5xWGpkQ3QwQ0di?= =?utf-8?B?Y3Jtd3pteW5kMUJnVVVJbnhiVEZkandNSUN0ZldVaEJ2NitvNkJQSXVBSndB?= =?utf-8?B?dkx0QjUybUJiQUE3dlE4S1k1QWQ2cUJEV1d6Z0dYWnFySHlXVEFxUFFKUlZz?= =?utf-8?B?bXcvQ1NaR2ZPeGpFWDJKeUk2dEl5TFhqaDdSbFEwQUtESGhiNStsZmI4RU1P?= =?utf-8?B?YVl0V2N0ZldVamdNTWdIVTViSTlTMkxRcUFEbTZnSDY4T1U3dno5eU82Tzl1?= =?utf-8?B?dytYNkVmdHNUd00yRWExTHJCMUNwMzk5YmRreDhmQ3RLMURFbU4yOWdlbHhW?= =?utf-8?B?dFE2cnVuQXUyRW90Qit4ZEFOUy9qeThwZCtnazZsRFBMZzBoV2E2OTdXbk9T?= =?utf-8?B?aUJwWVA4bU05Z1oybVZVZkVsOTNldzI0bzFkajRuZmIwU2YycG9oem5uY1dH?= =?utf-8?B?VXp4cCs4cUdzS3dibW1kb0hPUng1QlB3MDlpUWlpek9HMHhzcUhYajZxenc5?= =?utf-8?B?blhhNE9TZ0ZBeDloZ3NzYWpJSFM4MHlUQmtVTm1ZRlFwajBxZTdHL3FFTW9x?= =?utf-8?B?ZEpVcjV1VnZKR2dBbE1hQlg3OXRkaVdxR2hqWE1Sb3ZFM3Jac1l1MWUwVjNF?= =?utf-8?B?MFFhZE5YejZvbmtFaFpNWFN0OXREelVtYmtjcmxZcEJ0dElDYjhCbGFCbHRU?= =?utf-8?B?Sm1wdks2eUxnS0NITUhDOFFwUUdlMEhEZ011N2Fvam9uTkZsTGhhczVJNHVW?= =?utf-8?B?N2g2WHVmbUlOWWdXQjNDYWZTTGcyWDVVSE8yTUMxQkwwMTUyelU3SFg4SkY3?= =?utf-8?B?VU0zeHhtc3NKWmNsc004ODBFNVhJMVZwNy9FMEcwMG8vUG9ZcXVnT0lmRmU5?= =?utf-8?B?cTQrUEZWRkpkZ3A1ZE5VWDhyNkZ3a0FqMk1YVnlxVUs4cW9CcWZyRUU4WUFQ?= =?utf-8?B?T1BqQlFUSm5abEdiVE1icjJXQ3hVT1RTSEUxNEN6Y3M5YmMyd0tPcW10ZHJw?= =?utf-8?B?RjR2eVpOTXhOY0RNUStDcEh4NkNPM1Z4UE5CczUrUU5wczFmZUg3dWM0bmR1?= =?utf-8?B?Uk5hMFE1NmRkdmVrNlB3Nzh2enpXMUE5Q1lXK2I1L1FDZ08vZVhqbWtUZS9k?= =?utf-8?B?bStxR1NINmFyb0tzdDVBZ2hQWlZTWE9uQzI1UW1qaVRCVjlnQ3BKYkNKMzhK?= =?utf-8?B?Ujl0d3haOUJ3PT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9496.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MGV3K0pPcmU3SUFkZ3l5cENXU2k1RzJPZUhMOGVjcHBPdFVWaExUNDVJWVZk?= =?utf-8?B?eU5lSWhMWnZpVmJLOFoxdklRN1dvUDQ5bGJwTTZ4Z0s1eElFYitrLzArUWlo?= =?utf-8?B?REdHcU80bFpXSWl4Mjgwd2pROTltL2s5dFV1VE8vSENiZ0pLS0pHQUoxcEc4?= =?utf-8?B?dEc0RjR2VVhJMlYway9UUlJrMXhXV0NFUnZ5T3FtTkZIQ0Yyd2tVTmM5T3Bq?= =?utf-8?B?Y2hKWVNUVlF6MHZMS3FtR011M0U0dzRXM2l5Y010Q3VzMU9YaUo3bnY5czhM?= =?utf-8?B?ZlNLby83cGxmajFMa1FtUGJXQWw1UWVrM21wZ0hoTzBjYU9CQVV4eVZFOHdZ?= =?utf-8?B?bSt2dWd2dzdpb3RVN3pyWnNLalVaSlBIQXlobWVhZkFkT3Z5ZkFVVXZSMFVO?= =?utf-8?B?bFNBQUszWllQV3RLUTNPS1JCaGFEOEQrcmJiTXc1NENqVms2dW1lZmJEdjJW?= =?utf-8?B?ZjdScFduUXhmYkhYbmE3VFczbVJtZ2lQeEhHdysrSmkzSXM2dzAyT2xCNEg1?= =?utf-8?B?RUlsVWxtdkt4bU94UFBhUGF5bG44U2lVR0xjb1g5WkxxY0lBUEJpRDJ1aXJv?= =?utf-8?B?ZW5JOWRsclpuWmZHUnZpZkIxNjdrdzBiZURPdU9Qcms5SDRyQTloZTVDNlpQ?= =?utf-8?B?Uk1hd2wyanBETHprL2x4T244bExFanIyQVlGdnA5dTNEc3FZTG85anBPeVpj?= =?utf-8?B?ZkhCc2NiVnhlTzd0VDVjaWs0Zi9kTzVrRnRVQTk0QnFOM3BvT0hMYkEzTkxx?= =?utf-8?B?amVQTi9VM3ZVT1BiUFh4U1g3bndPTFY2QWN1Wi9vMTZaZ1h3Nm54WUFYV2Zj?= =?utf-8?B?Y3lRNHVMMU93UW92UzJianNGYjNmSG5jWlJNd0oybTlqNmUrMzA5YkdabCtD?= =?utf-8?B?ay9Dd2hJQUtKYlU2T1ZBK0M2bkFKTGNQc01wUmZFbFp5NFNtRGUvei95bDlZ?= =?utf-8?B?MFp4Mnhra1NLMWR1dWxjMW1OenYwTDdEbmc3eVRCRDU0azF0UDQvbDIzemJC?= =?utf-8?B?YktWTk1jYTh3L3pIV0hhK1pUZENzbnl1SkxWNndrcmI2cjQ2QnlNamlpbFhW?= =?utf-8?B?VXFMRWg4ajRaREErRGd3SkVtUkhxYXdpYkh2dkpSTVRwdkNhcWRyV2dsZDZN?= =?utf-8?B?c0J5SDVGcExndG50R0dTUlZtaExjd0k3WUluZFdocGdtYjFQdDVjMVhJYjBS?= =?utf-8?B?Y1NhRGJvdFo0Q1lwTGZJalY1RzJZNWxSU3BjTitQVW1IZ0NibCtaNVBna1A3?= =?utf-8?B?REFGeitCUm13MndjVDdkKy91NXEzU3dmNDJ2WW1RNndEVnd1RnNjZGoxYWRQ?= =?utf-8?B?YXlxNmQwNkdDWWpEaXY0TVEwK01GMnJWMkEyOEpWQXNYVHc4THlPaUJWbFVC?= =?utf-8?B?cXhLeFVSSTd1dTZOU0U2Z1J0RHB0ZWtydWlBaE5mYWUwVmY2MHJKcnIrK09O?= =?utf-8?B?N0tJdmVJcUtJYzZ2V0NWdGpRUkFqZUFSZURZR2owWU5WZXc0cnZpZGJ4RFRn?= =?utf-8?B?Z21LVDRsOEcvMDdTOTRzMVkvVkZqQUZQb2ZYcWdwakRUZ1NpdEJjcXA5dUFV?= =?utf-8?B?QkVTbGcxdW5MVmdMVTk1VFBLYVRibFVKRm1wTmN6bittVkRVcGVwVUdKQnph?= =?utf-8?B?WWxVUjQxeXhkNmlqNkF0VGIyMFlYTlFrYmRVUnpyblRpNnNWYTljWUhIOTZC?= =?utf-8?B?SjhWOWt1SGROSXcrUm5uWEx1OTJFY3RkNmltNHJ4dHR5ZW9WelhTZ1NocUNz?= =?utf-8?B?VEJ0blJ3Uk5SQzVNRmtEamVGNXNrOHMwdUp0QUJpM01uTE5wMCtucHlYUEtv?= =?utf-8?B?YnROdEtUS0hNTDZqbENMbjV6RmcyTXg3YUwwdkY4c0xDOHB4cmsybzVZdGxs?= =?utf-8?B?Tm1LVTQ0MEtLUlM4aElwWmRGVGVzNkR1eTNxdlJyc0tRUHU2V0R6VmF1b0VM?= =?utf-8?B?KzBRdDJLUUlRZFJBdzNtaUIrK0l2dzBHK2VITGo5UE5sOGhaVFZqWi9yaFJ5?= =?utf-8?B?QmFJZ0hZWHlKaG5PSjU4TzQ3WTVBeHZtM0dFVmJvQmpadDRyYk5jWC94M2Fq?= =?utf-8?B?UjRnK2lzV3lTOHlXVk4veEZRSHhLcjlTOGJaR1RYN3JOL3lBS0UxZU40VHRM?= =?utf-8?Q?GqsbcQK1RZ494f+RuLcjcHhQp?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ceec7f1b-c7b7-43d0-6c3a-08ddf4f69e7d X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2025 07:57:01.6908 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SB8FwXYjfLdNel1Liy3P5CZggPjO2nYT4tWEU60lLGK3Nd7bWYbSgCP7LMUN37whoP7wGMcCc2sC4rInx4VaTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7125 Extract function nxp_fspi_dll_override(), this is the suggested setting when clock rate < 100MHz. Just the preparation of supportting DTR mode. Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 848fa9319e36d65e8152931324b8e34eb162f5d3..a1c9ad03379682dc1fc2908fbd8= 3e1ae8e91588f 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -674,6 +674,17 @@ static void nxp_fspi_dll_calibration(struct nxp_fspi *= f) dev_warn(f->dev, "DLL lock failed, please fix it!\n"); } =20 +/* + * Config the DLL register to default value, enable the target clock delay + * line delay cell override mode, and use 1 fixed delay cell in DLL delay + * chain, this is the suggested setting when clock rate < 100MHz. + */ +static void nxp_fspi_dll_override(struct nxp_fspi *f) +{ + fspi_writel(f, FSPI_DLLACR_OVRDEN, f->iobase + FSPI_DLLACR); + fspi_writel(f, FSPI_DLLBCR_OVRDEN, f->iobase + FSPI_DLLBCR); +} + /* * In FlexSPI controller, flash access is based on value of FSPI_FLSHXXCR0 * register and start base address of the target device. @@ -756,6 +767,8 @@ static void nxp_fspi_select_mem(struct nxp_fspi *f, str= uct spi_device *spi, */ if (rate > 100000000) nxp_fspi_dll_calibration(f); + else + nxp_fspi_dll_override(f); =20 f->selected =3D spi_get_chipselect(spi, 0); } @@ -1071,13 +1084,7 @@ static int nxp_fspi_default_setup(struct nxp_fspi *f) /* Disable the module */ fspi_writel(f, FSPI_MCR0_MDIS, base + FSPI_MCR0); =20 - /* - * Config the DLL register to default value, enable the target clock delay - * line delay cell override mode, and use 1 fixed delay cell in DLL delay - * chain, this is the suggested setting when clock rate < 100MHz. - */ - fspi_writel(f, FSPI_DLLACR_OVRDEN, base + FSPI_DLLACR); - fspi_writel(f, FSPI_DLLBCR_OVRDEN, base + FSPI_DLLBCR); + nxp_fspi_dll_override(f); =20 /* enable module */ fspi_writel(f, FSPI_MCR0_AHB_TIMEOUT(0xFF) | --=20 2.34.1 From nobody Thu Oct 2 14:10:15 2025 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011042.outbound.protection.outlook.com [52.101.65.42]) (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 EFE7128315D; Tue, 16 Sep 2025 07:57:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009430; cv=fail; b=c2sLb5VLsK/oLrL+VXqyXb2zsVXJ1ApaARUxRaWOIw0zDYOGhKhpNuiZ8P0pqEKxRf3JgzIDGkV51Y7KKYofVR2Vjk3D0/1WE4G+bTjhORoXdHeRsMi1WXJ3WNEe/VsiK3obXEB3UAwevX/w+pdX+o5YFsDp7ruaRIsdsYIhuvE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009430; c=relaxed/simple; bh=jakVd4+aRBGkJP79DTg60q5z/66mCHxWohBiq02MpRM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=DXN6PH7aMisAqvFhN6sAApF3SMY2DK8Fe8EDNmgSqs/dJ4rlbx/vVXMaE5RhaH2vO5QASk+4YW6M9cFtiC3bUHocuqrDcdJGAb+32roQOYMXcrkSmolFVckv+DFEsN3RfRQd99sWSfLWDuf0RIJoSA6OE7asATSVXZFSQ3AhJWk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=gG/7mdrt; arc=fail smtp.client-ip=52.101.65.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="gG/7mdrt" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I0kfhIx9gm/Yh6C567x9Q9x0E8Dp6xCaEXUIt/vjKDD4vjr+t30+c25ROgni7nHbOiNdhpa13aidRv6fLYB0lUqsoEjFaXcLMsJfGkWPsQxUosy9R37zgXHayrCjmEpVUGhUuGkNYoO3l8ri910hFgZT+8A5WAR8wobkAnMPF3GBfy1KsNoZelHu45ORYEnAMnYE/nSjthIacVLdzM0nlE4gW6aZJVqAUyVaV8MyBIue1U3+am2tOT0hqfPNF8O/yi9bf5L3VdRLtmiRjVIK1n7AFrF7vT0gk6ucOi2C/h9bIL6hgGmLKRtTLIRNA7clnxFKNoSyAJdgimiXYnOatQ== 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=Jgyox9gT4mgp5j1IS5EgihKwlCXUe0O8rwskyxOXn7w=; b=aNFOQcuSaUq4N7W9KMIQV+eYexwqjKEtEcRz6HbTBjTdUx1dW1/9aGwZZuVsjgngCjR1pXOTbsrPtwhB8XIhXLVgvheAiNd/XZFBc2V8CFvos2Mpsuw6KI5y4Ae0bDzzpbw+ojtttEqRU52jWv89NXHV+uA+gf/7GkjW9XX8bb/aOmZI7yRplwvHIsdRV0gJw5NXk5yDCrYUvTT5HdODMtO57TOH8N85XMEYTgLlrh4OUoRODqZ/lphbKsrduS335cA7D9BM62B0h6CYtquN8o/3PzLQssDCx/wDJC9YgQdESiKM99/0HlR5Zd0uUf4R8nKgHFrvnCIcyrJHR+8iqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jgyox9gT4mgp5j1IS5EgihKwlCXUe0O8rwskyxOXn7w=; b=gG/7mdrttFBi4JYXIjMxEZsKiJyssm3wfR1pnbUNMnKlTG2fARYIZHVcBRU6cRGSJg3+Zmzac7UMoWH2QxX9vbdtJWiwsdaITq9rBDdzQvUVvMRwn3Hv7aGQSQmL1EtWImatE4pfWL1u1dJJOm32X/q2IkCItNj8H5wf90ewNS9c5cVnMSEiq8j9Z9a6XEsJfNJrE/EK2ZehCVi2iPG6/PmUovPR9M2h9aSSA42X9arW+FiLJEdmwFJg/jgvDqc0+QG/e718p/fbw0Pc/0j8AeSchfyCRyIALrxPj4SDE2eSiJUBSYiXsmxMpsR/9jDxhzimoN4xy+Hb/y1i+Z5iAA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) by AM7PR04MB7125.eurprd04.prod.outlook.com (2603:10a6:20b:121::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.19; Tue, 16 Sep 2025 07:57:04 +0000 Received: from DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33]) by DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33%4]) with mapi id 15.20.9115.018; Tue, 16 Sep 2025 07:57:04 +0000 From: Haibo Chen Date: Tue, 16 Sep 2025 15:56:41 +0800 Subject: [PATCH 2/5] spi: spi-nxp-fspi: Add the DDR LUT command support Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250916-flexspi-ddr-v1-2-69358b5dc862@nxp.com> References: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> In-Reply-To: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown Cc: linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Haibo Chen X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1758009434; l=2255; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=jakVd4+aRBGkJP79DTg60q5z/66mCHxWohBiq02MpRM=; b=7yKxCp+5LXeZ7Z5bAqmBIxIMq36+fReNWvVIUNpfVdmA9A6fcuJb0r3X0lXUOVAqMriLSDjCN xrfqP9Js6zyDuvp+wuv9Xm1+uE4ZsdO9P7aLaNEFvlHxeOXzRpiTypz X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SG2PR01CA0137.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::17) To DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) 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: DU0PR04MB9496:EE_|AM7PR04MB7125:EE_ X-MS-Office365-Filtering-Correlation-Id: c2dbeb71-df0a-4ce0-14a7-08ddf4f6a02a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?V1g1QXVLRHlFNVZiMDBLS21lMENjdEcxWTdpMWErQ3JuQ2ZrWk1kVnlhOERs?= =?utf-8?B?dW9naVdwMWlSOUlHa1VNYnY5ZTM3ZUhlWnUyTjkrdnRZQkpGbEdOZWdNeUpi?= =?utf-8?B?ekl5TmhlVUtDTTRlYnYvZ0xkbUo1cFVvanVHL2MrWTRsR0RTNzVXZE9DT3hh?= =?utf-8?B?V2RkdmZNSXlub1FpRkFMSmhvVHFXRFp3ZUV4OWNzZW1tRFlrK0t5RlUyMU9h?= =?utf-8?B?a3RHNHNjNisrUjRBZDJBYVhuUytMZWdJMEF6RnNqck9MaUMvMEJISTlaTHFi?= =?utf-8?B?ZUowbldlVU5PRnE5OVZRYk1EOGxzcUVYdjcyeXpnVkJLQUtPZWtjNCtaS2Vp?= =?utf-8?B?ZFhTdVl6Ni9ZZ2lNTDA3Wk1NeURWMEpHV0JVVitTajNwYVZnUHZpU2g4SHRJ?= =?utf-8?B?UE1VMXU0NEZtTUg3bWorQUpTQnF0YmNQdHlwdHdmczJCaktHdWtvdC9wbG85?= =?utf-8?B?aHJWZXBEbDg5ZWsxakFLMmhsbmY5VXpDT0FScHhkN09SNkNzNkc1MG1WbXdj?= =?utf-8?B?bWl2QjhjQTVIRSttZG1DZGk3eGZUa0JqYjY5ajkyeExHcDBDUW96YjRkOVV0?= =?utf-8?B?WUVnQ3RBNGZwblp4eUQ2WWVkTFNYOVFZS0MwYjQwOGtxaUV3Y1NxcEtseDJH?= =?utf-8?B?Vm9aNnhnRHZQaXlkcjBSSzZRREYvS2p1aXNnRElBZkRuV3k3ZFI5VkNpLzBJ?= =?utf-8?B?MS9CdXRBSkIyZGxrcUp0aHdXMWVORzZzZ1l2cUdtQjhob0wwL1JMb1hubHdX?= =?utf-8?B?VXh2ZnMrNnNDMEtGTXBPNVhVeHVrY0VjU3pGdWNWQ0cwQnpGU2V2UUJsVmtw?= =?utf-8?B?VHVGZElKZ1haaE5jdmVwZDBHdkhjS1ZsM2ZDYlp3ZEk3QjZ4VlU0aDF6T2NV?= =?utf-8?B?UzQ5NEtGbDkwbGhQQUVBWm9zbklnMk5ydnBvRFJmK0tqbEY4b29FQnlUZm5k?= =?utf-8?B?eDc2QklIUWJZYzRHa1JpaU1NRFdyUFp1dUE1N1hUR2dOZ3lsWU8yMXRTdm13?= =?utf-8?B?TE5xQ0gzU0xIbmRjQnc5QWdQZS9aZGd6M1M5QkRZd0hoU0lQTWxQL2huc0dF?= =?utf-8?B?bnIyY3Q2eFdMQUUzdGw2WWdnaU1Qd09Ib1dEV3l3NHl1WFdhaGZIc3lZVm9h?= =?utf-8?B?YlR5SkFvL2lqcWt0WWdSMEVzRjQ0MXAzV083Zm9yUGIwa3RPL2dyaWZuazdW?= =?utf-8?B?aXl1dzhWRjE4QklQZ0NMTWljcEZ3NjhhZDBpRGxGdUhyVFJES3lkVG11UllZ?= =?utf-8?B?OElyNWNqNC9McVp3VFUxeXRGRzZNdlZuREJXS01QZEw3dUZRRGlLZUZCRTFr?= =?utf-8?B?M1JyREh2U21RMG1HVTBoT0FaN0ozVDlwU3dhbGpIejQ4OEFKdEYxMTlLQ3F6?= =?utf-8?B?TjFsN0RXTzlQZC9Ubi9GOGtoUEhGK1I5R1lsUVRtcFE2OFFEdm9RQW1ZaitU?= =?utf-8?B?OG8xK05vclUwQXd6akFPZlllN3ppaE8xUnNGZ01MYUcxbUg0NG0vWHhBNGpG?= =?utf-8?B?YUpsOVNFTGo4NS9vRjV5TFZRMGVCNmRpOGxVenlibnA2S1hDbzNac3NVWGcv?= =?utf-8?B?RUdiNy9kNDRoWUVFeXFNbVltOGIwYmgyaVNXd1BNdjgvejFOVlQxVXJBMmNC?= =?utf-8?B?OEdaTGRZRXFsWVNhWEIvUG1vZHl6enZTcWV5aC9qejA3OHNrMkxjYkcvQStP?= =?utf-8?B?bFJhVFgzb2RxWm9IZ3RrTFk1ZmtReUNzaFQ5MmVqWXIrWFJTNytVQ3N1aHh2?= =?utf-8?B?aHV1ekMvNlFGNWxhQXhRcVBiYTZHYjRtOWV6aUVpMjB6WlRMY0VnYnphdG5h?= =?utf-8?B?cWpOdFphT0RMSFp6SVpCWTNsSWlHSDAxeVRvMFBXYkZIdUpaeDUvTzJQbFhp?= =?utf-8?B?WElXZkxmaDh0VXAxTXV0anBzaVJ6eWhXOGNxS25rVUx5UFpuZzllOFBuTVhn?= =?utf-8?B?Y3JnYzFya2hxMzVZay9ucGRVb3JkR2kxc3RwU0lXMmgxQWxyL1JkR0grM1Q0?= =?utf-8?B?VHFERXloZDV3PT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9496.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?elloNDd4VTFBaUdlaEdpRjlINElwaGt0OHZTSW1WclVFUzhMQW9USHpIUkFl?= =?utf-8?B?YVh5NXhqYnl5SU05Mmt2a3E3anFQSjFoNEw5VDAzZFVOVGpKTUVKSXRBdEsv?= =?utf-8?B?THN4T3BXcjV1UFVTT1BjZE5IbnlERzl1YVE5RDhzYWtuTHBNUndyMi91Qkpm?= =?utf-8?B?emhEY3ZWNHg4bXlRc3M2b1pZV0lXU3hhU29HdVFXZ20rNUhEc09xR3VRUjRp?= =?utf-8?B?dTQxM1IyNUx1YjNWbTd5Mmh0dnJ5d2pxT0tTMUZXZ2t2TzdyNHBoaUUrQU5l?= =?utf-8?B?TkhCRnA0ZFhvYlJpK3Q5VytoYjFmQUpzbWF4OCtDWlM4KzBRWG1rRkMrUlRz?= =?utf-8?B?UWtGZXBzZFpOeWlkM2VHdkI3ZzFreS9pRldxSjlIKzUrcGhXUjdjUTBqQkl3?= =?utf-8?B?dk5MK25sL1ZyMkRIK1Nxeld5ejVBOW96ZkN2YWozUksvdjgrbDA0YjNzNWlJ?= =?utf-8?B?QlBtbXdoTDNyWG1wQWdUU0hNSnVIN3IrenR5VDVWR0RjZy9jTHVrRUVjazBE?= =?utf-8?B?Q3dFL3pMR0cxeHQweEwzOUdIUnd0SWhlcytzSGIvVEV3dWJld2RoVHhxaTdh?= =?utf-8?B?czRJQkZTY0RUcysrQzUwOThBanhRbENCeG9uUkdjVWRpbDNWSzRIdHlDWmFv?= =?utf-8?B?MFRpZzFzZUZmaW5pbVJlbmRCZVFSa2g5RFE3c1IwemhCRndNVzF4UDNOcWVy?= =?utf-8?B?K0tIMG8wRjljVW00N284a2NRWWQ2TGs4WTQxeXEzbjhMYUpXbEVtemh4UThL?= =?utf-8?B?bXFpWUVCMHcwd2Q4bWlZS2FCdGtyZVdCZk4rTEFDQ0kvS0pqNlpwL3dUUlJa?= =?utf-8?B?MHkwOUhMOHR4eGJOWURLR3lteWhieEo1djVXRTBDODZrLzdMZnFGcHROcm9n?= =?utf-8?B?eHhzcEs5NFByWlpOY2RSNUg1MGdFeFJFQXlvK3JyRTV0ZVNPSjNUa2MxYUhy?= =?utf-8?B?NUxsRjZMV3Jqa1N3NEk4TGtZNVN6eTJzMzhIbHZ5MklpV2VxUkRiSWxQUVc5?= =?utf-8?B?MmRjRWZqdVdwaXRpcVk5Zi9pN0RtWERVcVFFT1hZSTF0SmFaMTRCbmRKMFVX?= =?utf-8?B?N3NMbzgrVjh0Q0w2T2R5N0k1ZWhEZi84dGc2RGtMY21IV24wSDhndXUveWRk?= =?utf-8?B?Wm5TanRXVFA5N01WcG8vOUhxMWxNKzhGTjhFN0hHRXlQVTk0MWtFaXRXQnRu?= =?utf-8?B?MlRaeU9yMVlmbXNJcUY2WjNBdml0RHZnck91MWFiL1Q5L0NUTmhKZmVTR2ta?= =?utf-8?B?V1hzUEVwWEpCNXZaemlQRGl4blBra2dBVWhiNGN6eUFKY215YVUyaTJmL2c1?= =?utf-8?B?NHhxV3NPUmZXdWRoSjVnVDY0ci9IdjNuQmdoVGFCSDJ3N2V2TnQwYXpHVUZV?= =?utf-8?B?R1dEZVhEU0JNS2lDS2JwNFdVUGx5NjR3VXEySWQ0SWFGdDlyODZzLzdVaTc4?= =?utf-8?B?VGJpcEJPWVNwTFdiWUUyWlduQ3RuS1QwS1VCbDA5UVRJZEVZOWpUbnQ4K2xD?= =?utf-8?B?M1p2VnNEdGtuYWNKczFKOFp3WE4zU2VuYW1UY1NjaWE0UWJCQ011a0VtSW9N?= =?utf-8?B?VFRpUDNlNXB3TzVyYXFLeFA3YURvMEplN2J0V1RBM0wwaEkwZjEyMkhkM0M2?= =?utf-8?B?U0xOWk91cm1qL1lzVHpUYzc5bXdnY0hxbWdRN25SMFR2ek9TTG9UL1VkeVl4?= =?utf-8?B?NXBhT0NrZHFpcWlxbzZoem9wTnlJSjZiVkliREI0dWlya3lsRGJNMmpBYnpF?= =?utf-8?B?MTRWdmhRSndWVlM2eU5NeHZIMVdDSHJTU1RRcmFyRnRJaFUyWVZMY3l5S1F2?= =?utf-8?B?aDlkSDVWSHNnVXJtd1pzeFNsblJSQTZ6N3ZrY05aYTE1U3RlQWhqUGpyeW5S?= =?utf-8?B?MXNQVkVpS1pTNXlVWDJXK3NTS1lwVEdxVGNwRjhidi9UMkRDTms2am52cG5N?= =?utf-8?B?S3dvOUQ3UGt3MEJiR0hCQkFBcThMKzRaclZlS20reGtCZ29KaVhBLzJuY3BU?= =?utf-8?B?bkdyM0NwNVJPaVVERHJ3SlNrV3VZSjYvMTdCeVZmR2ozTHV2SksrQXhVbm1w?= =?utf-8?B?Q0hqMXlNaDc1K2dNUHR3SlVFcHFRSjdER1dCTlB0MVRTRVdaWWtaTUlZaDVN?= =?utf-8?Q?MDGA81VWzRvAwVp+e1FkS4wJL?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2dbeb71-df0a-4ce0-14a7-08ddf4f6a02a X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2025 07:57:04.5255 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1aB+Mu87ov6jFp/FpR3sp0JJ+SP3xiesCul3IX8kMHXOyoa3hicRyqoRUAD6P80sz2CEhX6YPMkX6w5SKtpQ1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7125 For DTR mode, flexspi need to use DDR LUT command, flexspi will switch to DDR mode when detect the DDR LUT command. Signed-off-by: Haibo Chen Reviewed-by: Frank Li --- drivers/spi/spi-nxp-fspi.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index a1c9ad03379682dc1fc2908fbd83e1ae8e91588f..6b3e6b427ba84734a2359a96463= 5a8f05cd146fd 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -559,12 +559,22 @@ static void nxp_fspi_prepare_lut(struct nxp_fspi *f, u32 target_lut_reg; =20 /* cmd */ - lutval[0] |=3D LUT_DEF(0, LUT_CMD, LUT_PAD(op->cmd.buswidth), - op->cmd.opcode); + if (op->cmd.dtr) { + lutval[0] |=3D LUT_DEF(0, LUT_CMD_DDR, LUT_PAD(op->cmd.buswidth), + op->cmd.opcode >> 8); + lutval[lutidx / 2] |=3D LUT_DEF(lutidx, LUT_CMD_DDR, + LUT_PAD(op->cmd.buswidth), + op->cmd.opcode & 0xFF); + lutidx++; + } else { + lutval[0] |=3D LUT_DEF(0, LUT_CMD, LUT_PAD(op->cmd.buswidth), + op->cmd.opcode); + } =20 /* addr bytes */ if (op->addr.nbytes) { - lutval[lutidx / 2] |=3D LUT_DEF(lutidx, LUT_ADDR, + lutval[lutidx / 2] |=3D LUT_DEF(lutidx, op->addr.dtr ? + LUT_ADDR_DDR : LUT_ADDR, LUT_PAD(op->addr.buswidth), op->addr.nbytes * 8); lutidx++; @@ -572,7 +582,8 @@ static void nxp_fspi_prepare_lut(struct nxp_fspi *f, =20 /* dummy bytes, if needed */ if (op->dummy.nbytes) { - lutval[lutidx / 2] |=3D LUT_DEF(lutidx, LUT_DUMMY, + lutval[lutidx / 2] |=3D LUT_DEF(lutidx, op->dummy.dtr ? + LUT_DUMMY_DDR : LUT_DUMMY, /* * Due to FlexSPI controller limitation number of PAD for dummy * buswidth needs to be programmed as equal to data buswidth. @@ -587,7 +598,8 @@ static void nxp_fspi_prepare_lut(struct nxp_fspi *f, if (op->data.nbytes) { lutval[lutidx / 2] |=3D LUT_DEF(lutidx, op->data.dir =3D=3D SPI_MEM_DATA_IN ? - LUT_NXP_READ : LUT_NXP_WRITE, + (op->data.dtr ? LUT_READ_DDR : LUT_NXP_READ) : + (op->data.dtr ? LUT_WRITE_DDR : LUT_NXP_WRITE), LUT_PAD(op->data.buswidth), 0); lutidx++; --=20 2.34.1 From nobody Thu Oct 2 14:10:15 2025 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011042.outbound.protection.outlook.com [52.101.65.42]) (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 4016C28466D; Tue, 16 Sep 2025 07:57:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009432; cv=fail; b=tUWJWNxAqa/OExr9RzPf8+NLgBbBtpY2vuhxgpTdDEr0ZV6q7ly8Z6B3qjzR9K8ylVntvVjUrqXwNwKKXG9bhAi94lEz4TYf+Tu276LxvemKPmcEi0TihoDmbiBh8njXvvpGBw8mlWA/jIj0XmUu6EBaKBoR+FL0aClM9iiAzss= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009432; c=relaxed/simple; bh=PUmsUUYWRANqeCSyDcOZwR/07m9lWSZ2Ween7zJFNis=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=V7CgQrQdAG7Wyt7/mbCTOucX8qo8vct2PSgz69isIHq3GGukKeCoNusKFgydYDMMhioNrj3mq0RpwKnwPnZ2Hakr9yoqdZwa8Wxat0OTIhM15joZLDjTTSYYEI5MDh1ObUlt3WdTLlM5z7Lni7PTLuUP7cPW9dq4YKX92csipHc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=hbDYEdJq; arc=fail smtp.client-ip=52.101.65.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="hbDYEdJq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wq3JEPI7zjN9zUo6LOz5uA2/59yqq5abWzYuxts91E0ffPAvE6vypDaceTqoyZLmHdDlV9tnbiqv2qDwk4zWEVu3D89WKhZDmjCS3uPHa2cxmgNR/84X5jjj6GSHxagll8htgrwY+1Z5C6uwivORXWMD76BZp2Jfg75NNGItA3fnFZ5D7GHd36N79P+dKaBTnZIQybmaUmvtiLhxzOJNzN3tFi7qVLFOSIAFFRTxIwXuga/Slnyu+Ugyq+93JSM9wlqsSsIW2aYxgTyTzk7nxrSgBeitDT3Gm4eq574JkYCe/7J/XRV8MePNz3DH99Nj0dKtvzLh/J/5Pz8YPJEiLw== 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=Ye828KogLCnW6Mugeskb6ja0f8ZHNt9SI2ue/HI863k=; b=hvoPi8S00Ajr4PHuLKFwqP9EBQ0ZTgr0Gx0eNs1brSOl2PQq4z94iOx728LzgNbRW/j29A6/YcA0kN441Q+MFcjojnFjbd2YX1tprbKQE0MzVZuza17dLNWDG6Y7Vy0suzDNwsswiyd0lMMWvLYKGB1OI/XOr+ajNaNE6c4FrnNcVVYyuMZZJFcvOqW54qQZ/vDqdBrXFrVDVB4iHcdITIv6hDleqVTbhHY5s9R9Fw5mrb8QVP5UIydTJaD4jd2Wb+7zxhA6+4WlrUk8GepMG3lRTOALNn1VBIo9QxcXGsO8HEB91xhnm6/OgsXKO7RgRRb12rndCT1/VrdcEpSrFA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Ye828KogLCnW6Mugeskb6ja0f8ZHNt9SI2ue/HI863k=; b=hbDYEdJqIOwyQcxX3TM+kqNmQ8BWiz4P85Ac7VTPE4Nx4HEViBioMpibTiuCd+bv907ShB28KJM7lU4J8oVv7S/VyJlkLXbY93cr2SSANfXP4cWz3XG3L6Gewsc9ZbwScCT+yMw2RdXC1YcXyucdQXobEc4JnSPKfFhVSt6eGl3Kd5a7U74sGQkNBRFa05qoppY5Xn8vsgC4eNLtFk8MmlCPUjaL9sHMr0osvKvbUjB4f4W0rKiGchkzvwDM4TYLvF6zaXILjXrNf2YlXz82xa3ASvwUNFNelqg3U4NnZEq4Vfi1K0xbQx//3XfEKT49LQ+Z99DbeSZaXUEfCVmTtQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) by AM7PR04MB7125.eurprd04.prod.outlook.com (2603:10a6:20b:121::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.19; Tue, 16 Sep 2025 07:57:07 +0000 Received: from DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33]) by DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33%4]) with mapi id 15.20.9115.018; Tue, 16 Sep 2025 07:57:07 +0000 From: Haibo Chen Date: Tue, 16 Sep 2025 15:56:42 +0800 Subject: [PATCH 3/5] spi: spi-nxp-fspi: add the support for sample data from DQS pad Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250916-flexspi-ddr-v1-3-69358b5dc862@nxp.com> References: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> In-Reply-To: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown Cc: linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Haibo Chen X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1758009434; l=3812; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=PUmsUUYWRANqeCSyDcOZwR/07m9lWSZ2Ween7zJFNis=; b=QskhipJ8+FTixB91sKou4nDjYj1m1aqg3fdzqQLws40jRVVTARwnbLCP93Fl6/sH3fhyImlHS ulA8q8tSmM5DmsOuTkkFoNa9/GuycjWY7+NvZ0z8LaQPhviB0EucwhE X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SG2PR01CA0137.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::17) To DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) 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: DU0PR04MB9496:EE_|AM7PR04MB7125:EE_ X-MS-Office365-Filtering-Correlation-Id: b27086ac-6781-410b-a681-08ddf4f6a1d6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?LzIrZkpyd0xaQ2g1T2xWc2ROT3JyMzgzdXRDbGFualZ6SUk4dnVSN3Jjd2NF?= =?utf-8?B?cEJoTXJ4Qit3SXlaT0JQbUozT3Y0U3R2RFlQYkFRbldaYmxPaWlmSk03Y1pm?= =?utf-8?B?MHlpMHQyRlJoNnJzeDB5SS8zVWZ0WUphTXNXWldkSFZZTUM3VGF6TC9KSGhY?= =?utf-8?B?WDlKd0JMOTllRG9vbE5MK1ZQczA3YVg5RTcxWFRQL2V0UXJYM3RNejdlbHpp?= =?utf-8?B?dlpQclMycVo2aTYxL01NUUk1ZXh2dXViZlRHOG1VaXd6TE9kMUFtekEzWWw0?= =?utf-8?B?eWJUc0xmT3VXNHpuNTNyNy9sQkhlblVYTTNCaUdZVnEzc0gyWnBWL1MxMVdY?= =?utf-8?B?ZCt6TGNIMXVZUXNrU1pBcUxmUzFMWHJwS0kreDZnOWN5T2gyS2pqRGNWQ1NV?= =?utf-8?B?bytMWEtadHlJNUJIRnY5NWZBVkpsVWJ3LzJlNW1ERXJkeTFaQjVJLzFaMzla?= =?utf-8?B?RGJtbWxKTyswSy9FbWZ4T29HbVZBbmRpelBvRDN3ZUIrWml5ZkhQZ1dZYmdO?= =?utf-8?B?aE5yRFE2M0ZTcFlHQ0NxTWRyRHErbGJRZzN5azVIZktmYmwxNDZ0T1lpMDVl?= =?utf-8?B?MTBadkgrVEpWMndSN0NMNnZDOEh2M2lka1NLVzZKbG1CbW9Jb1QwS3BnUkI5?= =?utf-8?B?QTZvSjVYMkxUdlVhZ2YyUmVZcG8wT1oxc2RIN0IxNzh4bllHRmtkTURHT2lq?= =?utf-8?B?WHNGdWcwdlc2Y1VLQTIvL2FnWmdCOTI0WEhwNDMrMGtwWkxkWGNIVmNDTFJN?= =?utf-8?B?WWNSQ3V6UGRsMWFyMG1qN1QwRHVsNkFTNjY0bnV4T0JUdjVaYW5XTzBCeGhR?= =?utf-8?B?R3hvWUszdDh3MmtLa1BMd0ErTXRHK3JYYUpGMHJ1bEREUGM1ckFON1RYNEVC?= =?utf-8?B?cUFnWDVsVk5mV0V1dDRFNGVuSHdFMDJjSGNWNWZnWWMraVBLR3VtYVF3UUpn?= =?utf-8?B?d29qSkFaamFOZXY2bzNXYWNDSWRzMmt5RUdESk5LOFZUMkZ1OVV0dHNmZExK?= =?utf-8?B?WTNmQ0ZXVnJXYVdJM1dlMXBxbXhrUUE2WXIrMUpEejN6bkg4TTVPMURORjFt?= =?utf-8?B?V2Z2elA5dHVBaDUxb1hNV2dUREZUTEgybG5YOFlwRUZXbWlVclZsaHRkaGJO?= =?utf-8?B?SnVZcUNPRG9ZNExNREdENFZhWU10SE52MDlLczdJdWIvOGNqTnBXUEFmT0Rn?= =?utf-8?B?U0xBWEFhT1FuVldyM2lPUU5MMU1ZdER2dlhJcm05aXBGa1cwV3RQMFhvSkxL?= =?utf-8?B?T08wUjRoYTFjYWVJQzJORUY1YlN6L1dzSzlTZ2M0V0xHRjlMaG9FTTF0aUJa?= =?utf-8?B?M0hYUmxiYUl3NFZMN09wTk5DSENidXFLbjl6RHlpc1ZUMThTd1llVDNWd2Vr?= =?utf-8?B?ZjRERHRVeUVFYk9Ccm1yTXBQMkVxTFQxandaalBlRUl5Y2p3bUczR1dlLzE3?= =?utf-8?B?UE9xTk5LMnl3SEw2MElLa1gwQkdNQi9FNC9CdmtJbWxOQnNQZkthclpCZkdp?= =?utf-8?B?K3FuTVdLdXdPVmhCSG95RElLUk5oZEV3QlBNTFdtU05CV3hnQnVwdUIwSmcr?= =?utf-8?B?V25HbWJEaGEyekJOS3l3WHZBVEl5RDRRYytqd25kR01wK1RkSExObnZsNkVy?= =?utf-8?B?VnJhMEY2Z1NFMTh3VklWRkpqK1J4ajZGdmYxZE04b1h1WXpSZ2ZiWjFuK0E4?= =?utf-8?B?QjlyWW5ZeitSWkpNbEhHY2ZqMnNsY1F1c0V5NFpiQTZrTVE3TzFzTXFnSjg4?= =?utf-8?B?c3prTnY1S2JkZDlhbG16Sm41UERsUHJMYTlRVnUzNmlpajVnbEEwVExldk9t?= =?utf-8?B?VTRKWGFiT1NHUW1LcnlpblNVZ0ZqMXR2V2hlcjkwbTdNakhHL1RtV0R2emRL?= =?utf-8?B?LzFvZ3BGSU9rbkNzbHdqemVjODh0ejRadnV5V1VRUTBGYmRoajZEYjh2YTI3?= =?utf-8?B?MGR4SzBBRjlnOXU2S1A2QnpaRXhFbXdaUkdtRXlFeEMxaW5naUUwZmFIY0Vq?= =?utf-8?B?VWlHSU1pNGlnPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9496.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cVBuQkgxTEplelVCYktCMWovdVVHd1gxc0pZNGZoai9XQ0RUQndoTHYyZkUv?= =?utf-8?B?UmJ6ZHlGazljT3JYM1JHOVh0YlFsK0JpTlgxVHVBeTBSODRoUVlPcXBFcy9a?= =?utf-8?B?aWdnU01yT2FsWGZ1UVZ1MWxQc1Bka3hrWFcxR0tLTU1ORFozeUN1OWVMNXh3?= =?utf-8?B?dDhDcm5RL3lIMUQ5REcwQ1VBOVphZUx5d1dJVDVISi9SS0FCSm5ocVlQeUtU?= =?utf-8?B?Mkh5aDMwTCtPNlpjMjI0UFROZk05N1ErNTI5OVN5WEltY01HSTF4a2FLYjVE?= =?utf-8?B?TGhOdUVpTENKdytYYklETEZxcy9ZRWt5TTQxM2VTN1d4SDUxbm9tSlI0VWxj?= =?utf-8?B?UVJsUzdaaldUdWVTYmNXdEVyTnNIU0ZMSWwra045VXR2YVhoclR0OTdndVE1?= =?utf-8?B?bUFQYmhLMHZOWnJVS253c2gyM3BmWFNvQVZMd0xzWkJaNncrVmduS3czLzhl?= =?utf-8?B?ZEMydk1Mek5QLzZ3R3RnVUxaeUU5NEJrMnRuZmdjOG9IZ0lYSHdJZHozeEhV?= =?utf-8?B?azNnbTVJczZuRVl5NGFEY2pjbjh5dW5tZ0dOMlQreWwxQzYwWFd0SFpxWVdJ?= =?utf-8?B?ZjY3Z21pUGlhRk1QblRpWU43QTY1emVXaE5xRnZWOG5ES0hDY3dWVnNvbnhU?= =?utf-8?B?T3VTbit3NUhRNnRYY29RRG52MlBvMFk5N2syOHhCMGdJWndZcVBodmhQeEJ5?= =?utf-8?B?WU1JTld3THE5YmhXcjBZL1lHTmJaek5QV0hKeW1IaE5JSXZzeVkweDFZbGhQ?= =?utf-8?B?NFJJbDVQK21yZWJQSk5LV2EweTVXU2V1OEs5UHR4R2M4UHkzWjR0QTFwQ0lD?= =?utf-8?B?MDN5S2RjMU1NMTk5TGdzSkFFNlovdDY3WmRxWkg1Z2hTN1o1L00rRnZXdmdz?= =?utf-8?B?MWR3K0xOYTFJZWQwalBKc3VVKzRJaUFmTXJET1lraXRLUVJIQzRyd2ZXcXpR?= =?utf-8?B?UjVXWnBJaHJzanIrOVdnL3QrRm1hUTF3d29QTnBYcFFPVDE4dExZbGc0cWpN?= =?utf-8?B?eUwwamNBbkFlb0tDSktUMUZsWkFKRUhUc0hpaWt1dnRrMkFIOHhDYUtmenNn?= =?utf-8?B?dlRoSVpGUS8rcXlsbjlSdHpGbHg1bUdOd2cvczFIU1ZFelFEN2wxeSttcUwy?= =?utf-8?B?Y0EyS0N3Vm14MGFTMXM5TTNNNHQ2SnZBbHgxMXU0SytMMTBDa3BxN1E5c09R?= =?utf-8?B?eVpyY29CWFN1K0Z3OTNoV2o5YWFiUmdDSjRmSmhzYzlPNk1iQTRUSjA2TzJ3?= =?utf-8?B?dytnQWVyKy84TFRuUzFJZGdSQmhlYm5HTm9PLzhSQ3B5QitWZ3VmV0M2d2lm?= =?utf-8?B?UHEwSERhRmQ1MENXWTFBYmxFaTNFM0xkMk9VRDhJeXdiei9XNHRqVkVtRVph?= =?utf-8?B?Y2VIRDg2MThCWVF6cDlpUFFiV0lSd3ZXWjlrS2JIS2JMbVBoV0U2RkxrdFFR?= =?utf-8?B?SG1BMGJDZkM1NFZMdDNHWlFKcWV4NWJOd1Qyc2ZWNjJvckhiV05wd0wwOUtU?= =?utf-8?B?MG1CSjJxUVVHeDdsUHdmaG1JN0hDY294S0RPU09lNkFGQVcraXFBZ3Q0cXJn?= =?utf-8?B?RjFsQnp0cEt2WWt1aHFuRStXdE92WU1mdFBXSFZrQnEyZVJzTUljR1Q1L0RB?= =?utf-8?B?VmthbFF2aG9VTGo5WEVXRis3YzB1SXlGTEg3Uy9MQzZpSWtlTlNQN2wrWVJo?= =?utf-8?B?NjlMVTRhOUFlVnlYTHB3YzJ6dU5VZnJ4L2JSWmJxL3dzK29jYUtsbHN3MG5W?= =?utf-8?B?b0R5ZUNOL1JCSE00enZLS0FnZW92Ym1OUlR0OEJrTWlwVEFGMDR6QXg1dElD?= =?utf-8?B?M0lkWDA5U1QxN1F6L1hPRnMyUVlsbTlEL3cwT2tUYk01U1Z5STg1blVSWVdF?= =?utf-8?B?UGlHMFNnRTh0cTJjZkxZaTBwNTRWNUJPdjVPN2FuUkY2QStrMWJ6SUZyMWFl?= =?utf-8?B?enVyVERXZWNEbTd2OFNzTGliK1d5TDVpTEdGRVZDSy82Sm1SWUdUZms0Zm0z?= =?utf-8?B?ZnZEenFVTXRoc2tMNk1HQWxNQWRXVUk4enZ2MG11dFNWMDNRK1JsL3ZucWp4?= =?utf-8?B?Q3BoZG1CRjRlbGIzM29vUjdKeUFQOUVaZGhMTlJ3V1NET0F4N0p5NWhudkxU?= =?utf-8?Q?ENmGzQHamZlNH9JB1pNb+r2e2?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b27086ac-6781-410b-a681-08ddf4f6a1d6 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2025 07:57:07.3989 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 93dkhf7HgAwFrt/dcrRMFGx2nr05kAWF1CaDc2KdrlE6KZ6gswaR7BOUlgiaofro03EUQKo5LPohDpzuuyEvlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7125 flexspi define four mode for sample clock source selection. Here is the list of modes: mode 0: Dummy Read strobe generated by FlexSPI Controller and loopback internally mode 1: Dummy Read strobe generated by FlexSPI Controller and loopback from DQS pad mode 2: Reserved mode 3: Flash provided Read strobe and input from DQS pad In default, flexspi use mode 0 after reset. And for DTR mode, flexspi only support 8D-8D-8D mode. For 8D-8D-8D mode, IC suggest to use mode 3, otherwise read always get incorrect data. Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 52 ++++++++++++++++++++++++++++++++++++++++++= ++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 6b3e6b427ba84734a2359a964635a8f05cd146fd..be1e56072b94f38af934556055e= 321d9834bb07b 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -400,6 +400,7 @@ struct nxp_fspi { struct pm_qos_request pm_qos_req; int selected; #define FSPI_NEED_INIT (1 << 0) +#define FSPI_DTR_MODE (1 << 1) int flags; }; =20 @@ -657,6 +658,43 @@ static void nxp_fspi_clk_disable_unprep(struct nxp_fsp= i *f) return; } =20 +/* + * Sample Clock source selection for Flash Reading + * Four modes defined by fspi: + * mode 0: Dummy Read strobe generated by FlexSPI Controller + * and loopback internally + * mode 1: Dummy Read strobe generated by FlexSPI Controller + * and loopback from DQS pad + * mode 2: Reserved + * mode 3: Flash provided Read strobe and input from DQS pad + * + * fspi default use mode 0 after reset + */ +static void nxp_fspi_select_rx_sample_clk_source(struct nxp_fspi *f, + bool op_is_dtr) +{ + u32 reg; + + /* + * For 8D-8D-8D mode, need to use mode 3 (Flash provided Read + * strobe and input from DQS pad), otherwise read operaton may + * meet issue. + * This mode require flash device connect the DQS pad on board. + * For other modes, still use mode 0, keep align with before. + * spi_nor_suspend will disable 8D-8D-8D mode, also need to + * change the mode back to mode 0. + */ + if (op_is_dtr) { + reg =3D fspi_readl(f, f->iobase + FSPI_MCR0); + reg |=3D FSPI_MCR0_RXCLKSRC(3); + fspi_writel(f, reg, f->iobase + FSPI_MCR0); + } else { + reg =3D fspi_readl(f, f->iobase + FSPI_MCR0); + reg &=3D ~FSPI_MCR0_RXCLKSRC(3); /* select mode 0 */ + fspi_writel(f, reg, f->iobase + FSPI_MCR0); + } +} + static void nxp_fspi_dll_calibration(struct nxp_fspi *f) { int ret; @@ -738,15 +776,18 @@ static void nxp_fspi_dll_override(struct nxp_fspi *f) static void nxp_fspi_select_mem(struct nxp_fspi *f, struct spi_device *spi, const struct spi_mem_op *op) { + /* flexspi only support one DTR mode: 8D-8D-8D */ + bool op_is_dtr =3D op->cmd.dtr && op->addr.dtr && op->dummy.dtr && op->da= ta.dtr; unsigned long rate =3D op->max_freq; int ret; uint64_t size_kb; =20 /* * Return, if previously selected target device is same as current - * requested target device. + * requested target device. Also the DTR or STR mode do not change. */ - if (f->selected =3D=3D spi_get_chipselect(spi, 0)) + if ((f->selected =3D=3D spi_get_chipselect(spi, 0)) && + (!!(f->flags & FSPI_DTR_MODE) =3D=3D op_is_dtr)) return; =20 /* Reset FLSHxxCR0 registers */ @@ -763,6 +804,13 @@ static void nxp_fspi_select_mem(struct nxp_fspi *f, st= ruct spi_device *spi, =20 dev_dbg(f->dev, "Target device [CS:%x] selected\n", spi_get_chipselect(sp= i, 0)); =20 + nxp_fspi_select_rx_sample_clk_source(f, op_is_dtr); + + if (op_is_dtr) + f->flags |=3D FSPI_DTR_MODE; + else + f->flags &=3D ~FSPI_DTR_MODE; + nxp_fspi_clk_disable_unprep(f); =20 ret =3D clk_set_rate(f->clk, rate); --=20 2.34.1 From nobody Thu Oct 2 14:10:15 2025 Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011042.outbound.protection.outlook.com [52.101.65.42]) (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 750F7284886; Tue, 16 Sep 2025 07:57:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.65.42 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009434; cv=fail; b=Txx88vAin6eUJtCzRlheJQeCbCULLKxn/aafGldmNWL2SJxkhA3HOmdJ8HDIEt6niRpGvEcXt+5OPDt3U/9WfOCFbQMw/o2SHbBOwLwsBucUwfkgToAtrjUcN5cbzxTdzX7L6NzFIHHdZWAOTOftCTNSBhoguh7s8fyvNaIFHfU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009434; c=relaxed/simple; bh=hP+GZBOk6LHHZqKWeJTn1LVXizvUezYbt2jXvKLGZJM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=o2C4uOZEd92vlRlK+Ssxp2UnQXm70HbPjEab8z4Qq6BFRhddiIw5MJf9hmRt7s8n4aAp3YN1RvNsaBu35IgLkqEx+z78Kj2qJqNOLzDdwPUknWB0cmjksL46zibFXOZWMkuX+ql0aCrwPXlcx2ZJlxSctUnjU7+LF1xsNx7V3KY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=oFPnepoz; arc=fail smtp.client-ip=52.101.65.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="oFPnepoz" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R8MmNVDys3bHEiAJx9hn2R3pRzd7sSG2TYTh9NHUEGNftARJIb3gfxiDmDL8QyeqF6CFnOjJkmR3Dfw0DBZcUHA0M4VtNh10UwJto6MYnMgOkJkBAv7zx8HEjPYGiJ7UathWgLFxdaqu5h3rBATX3Y55oYxKi3jmphTv1FfzK/hbK3aTGuFADcPE9KJMwRXD+7FYCHW/e1kOXueWiCD5Ca8L/b5Bp1AuB6RA4CIVj3NR2GtE6K319QIgQfGOYNAENrd+9hsqgkr+g8B1jT2qw0CR7zaVzvRQImkqPHdrcokRwV7+hok8S9jZuioE169cJco7JJRbd/bHc2fVcpF3Xg== 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=jNAlmMfdI5JSqIQ7Jeabp7I5E5gnCPod3piVuEIgWY8=; b=OWraBkMpOsXv4Oz8i7IfRAC4K6VKlt676W2W6mA/f2sxe1+0bwyHqaGx38ay39EN0eRItqtRAkPPCnMKtdLF8Am7cF/KLw3TP5XDIgdX3bEtCfNorR2DgEio8QCkbLovNkIaHC9Zy3BAfAP1qnKAdJ8OHKkuce2Do/0R0kmi4fEJ0mB/Taduwkcxmga6ZunN79WNtolA4gE4A1jYpGUIEL4Pawx6o1cniZ5yzs/pPOyOd3zAe/a5Ol0EnQFrK9W/fgGz1PDxQ6hgyrdzT996PQ15pmYzZoj2jB+x2ZCtpODW+RFx48lp5wgKWlQIaSPVzcD3reRnyHT6WBzY3jMbAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jNAlmMfdI5JSqIQ7Jeabp7I5E5gnCPod3piVuEIgWY8=; b=oFPnepozuDdVCFJ57I/NmS1PR6udAfk/MVMj3ru86KYiOZY/JTPxs+oBHfdCw2f23KOfKqRuIJhgp+xPu+zZTr/39SrFZzj5JKPNAcEbuIHkavZIWEg7I2FCs7ee5hRDHfBDCL92RaBIMwO7+lQFzKm6dlw0IZs182BUkbwvcrG6U4VD88WjY8L+xgOOXp0oCocJH6HRfl43JhxCttHEVkgYg2LgYwBIOE29sBq7saiY6mQggfkKvUwOTkTGrLPGJs/tsu6A0aFxzpFMD38JZsi9REg05YUKZ8GgxKijF/cD4I0hYHkKjW4nHbSeNrGb95Epvukw6B+pzsySSvbYpA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) by AM7PR04MB7125.eurprd04.prod.outlook.com (2603:10a6:20b:121::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.19; Tue, 16 Sep 2025 07:57:10 +0000 Received: from DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33]) by DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33%4]) with mapi id 15.20.9115.018; Tue, 16 Sep 2025 07:57:10 +0000 From: Haibo Chen Date: Tue, 16 Sep 2025 15:56:43 +0800 Subject: [PATCH 4/5] spi: spi-nxp-fspi: correct the clock rate for DTR mode Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250916-flexspi-ddr-v1-4-69358b5dc862@nxp.com> References: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> In-Reply-To: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown Cc: linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Haibo Chen X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1758009434; l=1117; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=hP+GZBOk6LHHZqKWeJTn1LVXizvUezYbt2jXvKLGZJM=; b=qTTnjfKd+BP8AUIYS404FrRnbf5jgOT80XjsgU2Tx9OlT0cN4RIEW/UiHexp9bBydeBHDgT3p 7RRViEhEMIOA9NUj5v+fGxN4MqOjAa36xcOaRO5Z8beZVvP7OcrdUSa X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SG2PR01CA0137.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::17) To DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) 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: DU0PR04MB9496:EE_|AM7PR04MB7125:EE_ X-MS-Office365-Filtering-Correlation-Id: 76fef999-0c87-4730-0611-08ddf4f6a39c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SHZ4WHM0TzljUXYwVzF4SXZCNUxSMkY1eWo5ZStveitCU0xVSTNna0JCWjNQ?= =?utf-8?B?SWVaRkMzd3IxUjUyYUFrOWMvRWQ3azhIWEk3V0JVN1NUYmFyVFhaK2JNc3Rv?= =?utf-8?B?OXhZRWRQS0tiNG9kc0RaTU5oSGpwcXpCWklHVi9rVVFPMVNDWjBPNFZndGkv?= =?utf-8?B?Wm10VFE3akNLZjY3b2lIY0NMOEJsdDMvczdndTRZU0RvUUliejArRk96Y1k1?= =?utf-8?B?dmJFTy9JRHRoMEdLMUZkUWg4bWV2ZHZmUVJFUWNqdU50WHdqQVFROWhsSThq?= =?utf-8?B?WVpadExyenhjRis0YnplTXZFcjFwNEJIZHgzRUczeDdSNkxPZ2FES3NnSzAx?= =?utf-8?B?bUd1WlZYQVlnSURsRjJBbEZ4djBVdEl4NitXa1phdVhIUDdKTGp3Qk1GdE5R?= =?utf-8?B?L05zTjlVZFk5b0pldzVZWnRndytMc0xhb01wcENTOTFWeElpM3VQdURaNEYx?= =?utf-8?B?eGFNbitQeFB3TEpWaEl5VzI0Nk94TTY2V0xHaTV3cXdvdm5NcHNYYlpGd2Qz?= =?utf-8?B?eUhSMmZMalRoSXoxQkZnOHJoMkNEMENtNy9rN1RVc01jTnN4dHZhTkZ6WG9V?= =?utf-8?B?Y3Y3SGZ3Vy9oQnhienRwQ0hvSnY0T3J4QzR5Mm5TRFBiaVR3SlZ2YkR6Uk1C?= =?utf-8?B?dG9KOWllaFNDa2ZIWGlZVm90Y1ZiU2hadTVKcmNvQk0xeTNpdmEyTkl5OGNB?= =?utf-8?B?Z2QrWFh3SXl0Q3NzMUNEUFlRZE1vcW9GYkpWMnhvTElwRHZvalhaaGxnZGlT?= =?utf-8?B?QmFjcWxoUWJjQWNhUG5IaW0zRk9XdlFGVlpNakN4ellJUURFQXZBU0JmWFUw?= =?utf-8?B?cW5NNGtaaHVUem1ZY3AwV25SWVptYlVMcmw4cC9sYkt1dVl0cldqNENrT2lK?= =?utf-8?B?MUFaT1dNSmJ6THlEOXhsbTJIdlFPVjdxY09laWpsM3FVMVdyc2dYbkhmbUgy?= =?utf-8?B?U0RtazFOTXRSbnRCQ0RGUmt2U0xzOHltcEw1bmF4VndZcG42T2NCY3RLODBU?= =?utf-8?B?bFNQUEZQV25tZ0V2bDZXZmxGK0VMVlB6MU5Fakx1cEtaTDdtS3F1bnB1bDNi?= =?utf-8?B?ajRzVWh1VUlWYk1pWnE0TTVCZzlEUXZTWlgrWi9PSWZ3TCtLbWUycCtxTSs5?= =?utf-8?B?NEVLV3JoRkptam1oMHNSQU8vc0xMU05CZFBqRHYzdVRnM0xkeW5FdkVLalZs?= =?utf-8?B?OVZReFZENXNCSU94ZGRRczQ3bWV6VkR0Q2k3cWdTVTl5UytLRHBSZDZnQ2dH?= =?utf-8?B?WjVJN3UvUTVhMkJlc2dTQWpWT1BrQWk2OHFxM2EzdlV6WDQrMHYvY3RpVGFT?= =?utf-8?B?Z2w5MWVjcDFRQ1ZpMTlXM1VYdkZza3ZBUmF2NWhLTFhsQ2NWcUw3T1BHWmpn?= =?utf-8?B?Z1hrQ1BmWFVRT0pmcWhhQWNlNFgyWGJvV0dzdWhEdkhpcU1XMUNHbmoxa2Fh?= =?utf-8?B?Y2oxaEVuYkw4WldOUUtTV1IrQ3ppNEJ3RzlNbEtCb042UkdlYmpNZFhIa2xq?= =?utf-8?B?T2FkaDJRVWtCdnc2QTljUmZZUU80V3R4R29BdjlMVURuY1BDTzQ4U1c2V0Zw?= =?utf-8?B?V1lmSW1LVTVZNUtxQ0dETkZiSGlFZjk4WG4rMXVnemNuRC9aQndTYjFTRDkv?= =?utf-8?B?ajBvWTZzdzRlS0xNYmp1dWRrWHpsK0RkenlRYzVLYkU5TnpuckxtZ3RJOXFv?= =?utf-8?B?ZHpDcENrV0hJVUJBVkx6cm05azJJcXlQYzR1NkFhVkxQVE4wMDh2VmErMWZ5?= =?utf-8?B?Rzh2RDVCOWU2dHAwYzIxcXhYQThEQ1FQVmtwK3RzMlk4dkNnT09IcS85YmxT?= =?utf-8?B?TC9jbTZ2QVNHaU9PY0pMdnlpV1NVMWExWitxV2dubE1Ic21zMDNnMDJiVDdP?= =?utf-8?B?bVNUNnRQbk1KdzUzSjlBNnFkNVEvdUlnOGJYczNkaFptRmtyS2lPZ0JZSGll?= =?utf-8?B?djlEdDNkRnVjSzEwb01BTUc2bm1QMTd3S0lCZmprbnhWSGlKbHFTeGhMR2M1?= =?utf-8?B?Wk5vTVd2SHdnPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9496.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?M3ZaTlcwRm8xWXl4OHV5TDNFQ2JUM2pZbTFoNGp6TExQNmpOeXQxbmpPQWd5?= =?utf-8?B?ZjFNbGgzRDNyaWlUcUN2djVCRUFQVmFvV0JldHNlY1dkcG1TUFJZNXc5T0RV?= =?utf-8?B?Nk93MUl6SGovcUZQNHExT0M1SFo4T1lReldBaGk1SHJOc3dHOG0vTUdGUDJH?= =?utf-8?B?Z0NKVU4rQjJXWDRNNmxRZlVRUDRkb2R5MVFFVWhOc0lxR3AvVjQzZCt2QVFO?= =?utf-8?B?Sk8xMFFoTDRMZzhQNnpxMEZQcVVWK0tKSlhBdkJXKyt4bFpQa29tSmtkekpm?= =?utf-8?B?TEdjZFQ4eEdJY1B0dVBEQ2N3RWtNeEVpcHVkcTA3Q2oxWllIMG53MDJaL2wv?= =?utf-8?B?YWh3aysyQ0N3T3g4eERtVGFMdUZUekxKbkgrUk9EUEpwRFpJaHFsMEN2Z3Ft?= =?utf-8?B?aGhwSDVmY08vWUFIWVVFSXFMTmdCaG5FcmQ1M3ZXZnNHUVBTZlQzWFphNlhs?= =?utf-8?B?RWNJUkR5WWNBWkMyV0l5NUJpdEh5OTdhck5NZ2IvV3g1cXY0NDkvRExNRlZT?= =?utf-8?B?VGlWUVdFam80UVFQd2lkNE1icnB4SWp6SkFRSTlOUjNjYXg4ZkZkZ25hZC81?= =?utf-8?B?UFV3aFI4YXVZR3kyYVlYeXc1L3F1TW4wbTRodUZiNXR0M2R2V2hNVGQ3dDFY?= =?utf-8?B?VzVDYnFTK3VFQVZEeUYzUkJkQ1pxeHFoTHZHVStDR0tvMlVoNnE3bTdWT2FN?= =?utf-8?B?QTJ0c3FPU0VKNHZlYVJUSjZuenhWN0Y1eEdqekVSWkdrNUZoQkJhQlhQamNl?= =?utf-8?B?bVUxSmdmRDVTZEFsSmpIQnR2eS9YaWdIU2I2MVNLWHZIMk9YNkNhWnIrazhC?= =?utf-8?B?MkdNY0V6SjZFQkpGbGxnSUtoeHBFNExxN0ZTdHhDa2kyN2F2YlpYVGUrb1pY?= =?utf-8?B?R0R3UXBwWG9tQlhEMkQ2Wkloa2RZekdFTk1yZlRDNWF0Ti8vUU44MTBRNUsw?= =?utf-8?B?cGpxaktHMTRsL1JZUW5mZzEwRnl2T3RtNi9BMVVDS0dJM1VOT01CYy8rV09L?= =?utf-8?B?Y3VlcFhpOEJpTWxJOHpTMXFlSHFMbG56d1ltOUJtTXIwTFBYZXk4YTdYNkxG?= =?utf-8?B?MFF0M2htVDM2SERRdjY5VjAvMzZkZUpHYzRjVVo5eXRwWGtwOEl3SEF0R0Zq?= =?utf-8?B?cm85WUY4YVpDdkNEd3d1SEZvaFhLdVBiQStIcnBtZ0VCSzhzOWhOaGh0RzMx?= =?utf-8?B?enlyQjVqTzJFMzE2dVljbllRcjRrY3ZhcUxPdzRYd0ZiWDFlK1llc0J3N3Bt?= =?utf-8?B?MDlmVndPV0V2UkVCU3B2ZnI2VTZCczRJcnkxYkhtZm5ZRExGVHVURXpoaEMv?= =?utf-8?B?eW9JMkVtRCtJQTYyZHdRdkhrbjJZSlZBdDlTWUxjdlVoeWlHbXpLS211dG5k?= =?utf-8?B?QUVCdXlrZVBub25hS1hkS0I2L0Y1RHBKYVBJOVNqNlFONG1Dd0lnZ3k4aUFP?= =?utf-8?B?UFlnZkpHVUtyaGJTU2hrVzVzektqelRLVWpXL0xMODlaY2JjNEdsQzJ5UDlp?= =?utf-8?B?RmJwVFVOYTk2WEg0MElZODlpQnVEWmZRd2Fxa2FDQkZvNE5NZGVyVkdpajA5?= =?utf-8?B?Ymh2eFBoY1dmdlRXOXAydXhlMWlDZDRrVWxNMVRYZUxOZU9wREhlbkFFcXJw?= =?utf-8?B?K0k2ZCtsWDk3TElsQXBET1dIdS9oQnNzalRMSnMwRGUvT2RBMnBBNytENm1D?= =?utf-8?B?NnlqVnd5MjVDbzVqR2R0WTRQZWV5T2Q0ajQxQzhvQ20yRmxGOUY3TDl3QkJw?= =?utf-8?B?YjFiSFFmZUU3MysyalpLVFU1dkoxY0pMT2lRRTZkNHJraUUzMStLQU5DV2NZ?= =?utf-8?B?R2luRkUvR2V0ajNQaUtHeVBxS1pja3psOFI3dXU3QnNKbmZNTFR3MDdtbjkv?= =?utf-8?B?MVJrOVp3dHc2YXp2MkJmRE8wMWdXNnl6blgvZFpTMFpRWjcvdmQzY3NGcWxF?= =?utf-8?B?SmgzZjBGVjJrbk5NeWVEQ0J0NU5RWUlBbTVKNFlmNnMrTkF2RGxOZkh2SW1I?= =?utf-8?B?cFRHeXN2a2xwTHBTWm9WK1Y0RUJzQW9WRWJxb1FoVGp1bUFUMVMyaVBNcnNl?= =?utf-8?B?dDdlUlZOaTJ0dk1FSzAyaUhGSHREaFBMWDRwMzhONkl6Um1xdjlVeXgzVE1M?= =?utf-8?Q?L2cwyGBFYfPd/Nzhc7avh0t9C?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 76fef999-0c87-4730-0611-08ddf4f6a39c X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2025 07:57:10.3700 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LJVf+K/GEK6kXk/Cq+GkdTu5j/XJU6xu/38lGTVV8v/GhYLYTLRf7Crz7ZH2HmRFw7imn0t413mXQm1bClLY2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7125 For DTR mode, flexspi will automatically div 2 of the root clock and output to device. the formula is: device_clock =3D root_clock / (is_dtr ? 2 : 1); So correct the clock rate setting for DTR mode to get the max performance. Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index be1e56072b94f38af934556055e321d9834bb07b..15b094e8e892f0b61c1f320bba8= 97fa1f588be91 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -806,10 +806,15 @@ static void nxp_fspi_select_mem(struct nxp_fspi *f, s= truct spi_device *spi, =20 nxp_fspi_select_rx_sample_clk_source(f, op_is_dtr); =20 - if (op_is_dtr) + if (op_is_dtr) { f->flags |=3D FSPI_DTR_MODE; - else + /* For DTR mode, flexspi will default div 2 and output to device. + * so here to config the root clock to 2 * device rate. + */ + rate =3D rate * 2; + } else { f->flags &=3D ~FSPI_DTR_MODE; + } =20 nxp_fspi_clk_disable_unprep(f); =20 --=20 2.34.1 From nobody Thu Oct 2 14:10:15 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011019.outbound.protection.outlook.com [40.107.130.19]) (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 D3819283CB5; Tue, 16 Sep 2025 07:57:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.19 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009443; cv=fail; b=d1+oQzANmit2XqCrB3knhVXx7X38b63uy4tYuJJX7i+HxIzSJtjFfgrUQArpXwTC0yL9LYr2N+LqRUv/x7qJ+NhXXgmbUezPtZCoI5O9NIQkfbMoxmVMXNjvoRL4AMpJgl3nVPuNea1UtH4H4Ou7LVhrfbGuabpdJtw6N4f3vN0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758009443; c=relaxed/simple; bh=cPHhHavchVVN1S7oU6xrj+qaINK2dLQQJRfUUZWTkf4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=WYEoBSeD/UBwzQd0Qwjh000ao+4xOscuYSkYaRdMfxqxaJXUMrsu9WAs9sIaLluv1Vqs9ePecPIIZEZFtV3BOwAMtQsC+0LLMciW6Axp1l6lNiSN8AhvsOXc3xFViwbaMcPpkf6RSQRf3h1/YsTOs40YeHMnA2fY9BLYSbTehbw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=dMi7i310; arc=fail smtp.client-ip=40.107.130.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="dMi7i310" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VA8PrfgY1WL26y2Q7uB5pXV+HtYP8NDQYloUJefjO0gWiMRLyc2I6L1S+yLt3634Yc2+66WLo+/Olns5DFoFvEgDYtz11jRudxNNnNwwyugd1L0W/32LryVcQRd+Ai4UrvaJ6vpLYvGZoF+hhBA2Bz3EYkb6h3tidTTrSBlm0d8OJ6+4vwBO7Dvx7CD+4PobOI3pytIG03/i5szA9ba5hW4Cs8wiTjGarPCVJMZ7BZWMw38bTFCiHInifVIRjyx/+AlJ2qXf5OBFPfaAxeis3rwU1+O2gJx/lwaA5eFEgCbwKw4+i8g4jdoS2hfxn0b9oGhiIXmCubldw+CmbLd+nA== 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=evTS4P1MEoF9wL+lU7zvsQ2sEoHbHUV23F5cERj8BP0=; b=gsY6slFnSgf6osBeESaEwwqM3A0EYUGJR1H2N7h8xL+6w+l4jM36fUCrk5V0/X4onUW31E73sliI2syQyKJhLPZyOP007zqzEdRllbIG1ZOZKhNxAU0/ggwKtLAV3jqSaUrzESeWjuuD6p/zVeziHq5X98Bff6lX0kMC5FBHaJ3FcuUaUWcIAip8e4zYMi5Td2ZcTJHw2bx29WsoKn8vl9eUL7CFklntxRgHt4bDH1fB9YQ69nH8zctMJrNXOlGh7FwZln9qMouqFwtiN95/Oul0C0MCd/8LPdwPA/OxQ2BzO5SDJlobHaKrAKM/tyZvyNB4aTQ7qoRkYcKbbaIFYw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=evTS4P1MEoF9wL+lU7zvsQ2sEoHbHUV23F5cERj8BP0=; b=dMi7i3108e4Kia4F2veWD0Z1nHhpCt2aoAVL+vpeg+o4qr/CgrhGk5viyeIK4zy9kXCceDU4IFjQZrdvqqIeG5OSPvD3dsT5lo93v097CE2dal9TaU6IIbPXLpIhVzyqnFBVe/3ZUsj9AefY6qH6a3TV+YgAamKQ9qlc7e9vfTTzvNG7iE77uF4xSo8zbcdDv95Fqxjok2o8fnWP69Fkb7LiPkwW/QVE8cbSSyPlLvSq1bgzjaNMBYBDeaCQ2gbS0Gi5cKueJli28Nd+iOJZ1d5+uhSPM4P7/MUf4e5/DOhtLIXEfxuf//RqsuaHq362UlcZebfrlcTYj028+bLCpw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) by AM7PR04MB7125.eurprd04.prod.outlook.com (2603:10a6:20b:121::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.19; Tue, 16 Sep 2025 07:57:14 +0000 Received: from DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33]) by DU0PR04MB9496.eurprd04.prod.outlook.com ([fe80::868b:3935:5e0f:6a33%4]) with mapi id 15.20.9115.018; Tue, 16 Sep 2025 07:57:13 +0000 From: Haibo Chen Date: Tue, 16 Sep 2025 15:56:44 +0800 Subject: [PATCH 5/5] spi: spi-nxp-fspi: Add OCT-DTR mode support Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250916-flexspi-ddr-v1-5-69358b5dc862@nxp.com> References: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> In-Reply-To: <20250916-flexspi-ddr-v1-0-69358b5dc862@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown Cc: linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Haibo Chen X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1758009434; l=2064; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=cPHhHavchVVN1S7oU6xrj+qaINK2dLQQJRfUUZWTkf4=; b=yF7FqCek+y42NMIwMqek8z25qa0rGOBX3MzNyq2+Aw/FC4SQrTmzhQKsFajgPc/f+6vmsATfM 2AyYJ9HAKiAC8Y8mlBvhQXiAl15iLx+BGd52bV8t45vQ288S38Y3HWK X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SG2PR01CA0137.apcprd01.prod.exchangelabs.com (2603:1096:4:8f::17) To DU0PR04MB9496.eurprd04.prod.outlook.com (2603:10a6:10:32d::19) 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: DU0PR04MB9496:EE_|AM7PR04MB7125:EE_ X-MS-Office365-Filtering-Correlation-Id: b50e2f9a-a955-4e90-9081-08ddf4f6a560 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|19092799006|1800799024|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MWVoVGw4NklpUFU1SkZGOWJvMlJvN0hDY2JPem1tUDNqRWZjOWdzalhHcjFO?= =?utf-8?B?SkpOTEtmbldLZUwrakFYczMwUWZ5Q3Jpa3ZoUEJqakxtRDA3Z3E5bEowTGFv?= =?utf-8?B?ZmNEUmtrb0g0Q0pkRkp5Vyt3cmQ0eUZqQmV5anBOREd2STJ3S0V6WmdJWjh5?= =?utf-8?B?UTNISUVhYXloTHpNS0JGOEVvQzdwQUxFb1d4Nmt2OGFoQjdXQ1NKZTNwYk92?= =?utf-8?B?OXA1NjNTMzg0YysrK3JnSkJ6a0w2VVBZK0tDK3BzU2wwejJCbElObGFsM1JV?= =?utf-8?B?eDEwT3NqZjlLcnd5SzltMGtXbFN0SGZ0YVFUR2NkQWRORkU4aUY2RU1YL2Fx?= =?utf-8?B?dkJrUGk2bEtYQ2FuRGR4MVpTTEJ3QkdWYmpCTEkzenlQRnA2QmN6YVJuWmxE?= =?utf-8?B?VUhjV09tRHdwN01TZUxYczVwNXJydGJlSFNqUXNYaDZJSGVsZFNmZkxwZGJr?= =?utf-8?B?OEc3Yllnb2pvVTNqU2JDTmd6SE8ydXBUQm90dTN3V28yY3lQMmhlR242dnBF?= =?utf-8?B?OUhFM1BIZm9XTTVOdEZobVNKdkNERmVBa1B5M0t6Zy96UHFIaS9BZmk4Q2FK?= =?utf-8?B?TnJqaGRyZGUrWWZlOURlSy9xUnpGOGxKQXN5VndHMkwxR3daV2lvWTZibkVJ?= =?utf-8?B?ZzNpYU1jTGtXSUQ0RkJ4MVYxV09PdWVpcGl0Nm42ako5cmFReFlDSk9RSG9E?= =?utf-8?B?cmVBaENva0h2TzYwZ1FnVlZxenFyYzRqZHNVYlQ5TXgyaFIzYVNJQUowek9p?= =?utf-8?B?bVZyLyttcEtFcVRwYmxSSkpvL3BHaXlLRE4yMVNqYlhxNUVKREsraG5qelEw?= =?utf-8?B?Y3ZNWGo3QTFGNjRBczNuY3JkdDEzZjQ2Y2VzdWhaNEZTc2dsMlBZY0gvV1B2?= =?utf-8?B?TElCamZhcS83NURHaG9Bd3hEQUlJMVREVWFpYi9QM1Zoc0VUSW5VaE4zUDVP?= =?utf-8?B?aTFHcm1xa2d2Yk1YeXlnRS9lSHN3dFNKRnErVTFlSkQ3ZStZWkNvU3ZzTkp4?= =?utf-8?B?WXdsZzhXaFR3NHFpcEthVmZlQTJaem14Vnh3UXFqNzZrRC9ZZUZSa1BOanhP?= =?utf-8?B?VmhkWkdwdHA3TzRxR05Nd0JWcE5UWlM4U1lkeWJjZk9qZkhWcFhtcjNHZDNi?= =?utf-8?B?N2NmZ2hMeis5U2liV0Q1Q1VwMGFJM3h0K1hxeEpOWTk5Q01XSDd6aGY5MW1w?= =?utf-8?B?Z0tUMyttMk1MU3htTkdSdS9xR0xyUzhMem9wYnhQM0JqdmhONzlwMlR1WVov?= =?utf-8?B?cFU1K0l0L3RVYnVSaGVvMTdwRUIwbDVHUU9pazBHcEtMTDF6cnM1MHNQa3dq?= =?utf-8?B?WU5wajd3N2FHUzM1emtONUZtUTB5ME1vTFNyZUlvS2NMNEY4cHpzeTB6R05F?= =?utf-8?B?Y29HZ2g2K21NZEF1dVhTRHY4bEtyaFBoeDhPUE1FY2FyUjFhR05SdGRpcmFy?= =?utf-8?B?R0NTcDg4WVN4bWFvajE2WUNvWWhiQUNycWh1SjFERmFWTnUzN3Q3WXVjUm1O?= =?utf-8?B?a3M1WTBOcXFMZjA2VFAzcEFUQnV1eE55MGhkdzA4RDZaODh0dDRmVDRGQ3FD?= =?utf-8?B?ZGJKSVBXWFZZdjNUMWZnUVhQNTJoRUZSNXRyRFRnd3BrMCtxRndPaklyZ2xx?= =?utf-8?B?dVIzeThzeWw1Rm9CN0N3S3hCcnFLZjdIcERkLys2Mzlzb2gzWXBtcjhXUkZZ?= =?utf-8?B?cUhCUkU5MjV2ZmU1bU1meFYyTk04NHBlZG1PWjFHVUJIMEFiZ3lKcHQ4STJI?= =?utf-8?B?a21aMkJGY2R4Vk1ubW5PK2hkQ2hoUVNqRFFTRzFsOStQVGd6U0tiTWlRbFFI?= =?utf-8?B?S3VwaGpyMWlzWHNTOVloTTdRYWVtQnhjZVUrWnRFdWNacnMxcmxwbTdLTGFR?= =?utf-8?B?U0hrN3U5K3JXdHcwVjlhMXpoNkJtSDVWaFJzRGtvWVdyM3VXUmloN3hFRUti?= =?utf-8?B?NkNjNVVXdlhOSjV6amVYQlRlQmFkRDhEcWxmaEhnQ2tLdTk0UzMrcSthM1ZV?= =?utf-8?B?VHZaRXA3YS9nPT0=?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9496.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(19092799006)(1800799024)(52116014)(376014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cThsZzh6TURrK2RQcUtPTDUxVFhJMXVxRGNSdkQ1VXpTandER3NEOUs2T09p?= =?utf-8?B?N0psamwvQnYyWjNIZDlNNEdlZTBNb2xRSllyeDZjSktKU2VDQi9lbUJ3akRS?= =?utf-8?B?aHk3TVcxYTd5WUdVQTMwVXptVGJNZUV5eDNZVFZudG8zM2Z0OTZRMnl6c0lI?= =?utf-8?B?aTVVaVNCUlc2UzVncGswaE1ReFhtYXhsL1NSbGxLbXJCd2FDL0tDeFNKOVYz?= =?utf-8?B?bGJZUTIvVTJWR21ZcU1pb2JabzdnK2s0T2FpV2tMemxMY1VzbTd3TlI4R1VW?= =?utf-8?B?dCt5Lys4OGxtUk8vRmN6TXRzME9RUWNQM3BWWjZPL0VNYmE2VWFpT0VXY3Vp?= =?utf-8?B?NW14TGRqdGozVmo2ajBxVDU0U2dVejZNUEJqR2xPazFEN3FYUWdCNUsxOTFH?= =?utf-8?B?TU5DamlUc2t5VHpySTlQaGppcVJlc2xlbGI5SFdySTZkYldlRzhtOXdoakY5?= =?utf-8?B?VGJXWHVMNjYrRnJDN1hLbFR0Wi90Y2xpSVRFTFd6emJjWGM4TFd0WnJqUis0?= =?utf-8?B?TnBSL2Zwdkt2cm4zSHI1QVdoRjJqa0xmenlWRjF4alYrVFk1WjVzbUpFMW9R?= =?utf-8?B?K1JIOW5TOTNndXJEcGdUZkJsKzhiVFFmamRXN2UxWlM3Y2haNVo0QytlNTB6?= =?utf-8?B?WFNKdEVvRXd6amxzTjRFbFVYd0dpNEhQcmphd2RaR08yNitkekJBOW9Qc2p6?= =?utf-8?B?cXFidFRGaFhUT2lNdnhseEo3aFdhRkV1OWlRUFU3M0o0SDNodzVPbllKdFlu?= =?utf-8?B?aFQvcytUTGFPWW1mWHVwSmU0c0l1cnRKeVRsaEtCbjFUemN5cWs1dG9EZEk2?= =?utf-8?B?UXNYUGRUUnlPNzJ1Uno3SVdrMEJIRUcvVFlhcnhPY0dwOXlUeCs3S3QxZTVw?= =?utf-8?B?Z3JjckVqUmdlTlJtZk5vdDFMTEtyN0ZsNjVreUpsRzVabjB3NFdzSDlrdUVi?= =?utf-8?B?RUNISkVicGc2SVJJRFM1dmtIa243YmZZMThSZXRqOTQ3WDl5WTBMMmxBUkNx?= =?utf-8?B?MnlyQVcrRlFyd3Y1SnFrMytLOENrQTFMQVRxb3hwMDR0ZUpjalBPZElOVldy?= =?utf-8?B?d2NXZnl4R1JMUTU3bmZCTUU3eDlhdWdZMXJjUmE4cDFsLzErS2RNaWR5YmVW?= =?utf-8?B?REI2VDR6MXVhN1FkUHdhRmxDT0d6ektlYUQ0OER1aWFHK091cjNSRzM1Skor?= =?utf-8?B?MUtmQXBibFUwZ0h5OGVlaWFpUm5jaFZ5VTgwNDkxLzB6NXRhd3EzenpWM0U2?= =?utf-8?B?NEVrRXRDNlNXTFA2N2lIb3ZTM2VhaFAreldMMGlobENGdGw2WGpVZ3pmNkRv?= =?utf-8?B?WHRlRFI5Wmtzc2RsZkZNY3hERXF1djNYSDJ0Uld0TUtVaDN6Zy83aHhBclpX?= =?utf-8?B?ZkUybE0xRjd2bEdYQVY0V0tpSmdNQlQyNGRnWVZEOVpLL1hneSs5MFZiQUZM?= =?utf-8?B?S0cxOEplb2M5czA3c29YOVIwNlBxSmhzTUE1bG1aMnlZWFN5REpzRzRTck1a?= =?utf-8?B?L29VZ1d2ZzRZTFpIRkdhaU1TSHQ4R1lTSHBrS1VIWGJndm5LT2c4SkVFUEFq?= =?utf-8?B?UDgxTjFvT0w0aTM3QnV4MUVOamloc1lHN1VVK2ZmRG5wdjNTcmJLeWduZ1hx?= =?utf-8?B?eGlNZUtGRnYvWDJubGo1b2YvS2dqcjNnZVdldS9jcEw1azlZaUNOb2pYRHE3?= =?utf-8?B?ZU1wYXk2cmtuemRzamJRNWlpUWlUUW4wQVBicTRjTms0QlVlTVJMZVozTkVk?= =?utf-8?B?dXAzbUpFcTZSTmlsWGVqZlRnYnBlcHpGTDBNelJvUU9BZHBoekc5dkIxbVE3?= =?utf-8?B?eU8rR0JUbmNzM2xza2dCR1dRTUdtWlZoWG9OdUo2ak5mL3ZhQTBKa2luOE5Y?= =?utf-8?B?L2RrNTFlTzdlUSt1eEc4S3d4d3BiK1YvVmJCbTBwalFtUkhaOGxOUkRJZ2xO?= =?utf-8?B?WHIxWExhYkZ0RlBxMkRCZmd1Kytzek1OQTczdExkS2o2YitXSDQ4S1FBbjBL?= =?utf-8?B?NEdtSDQxM1I3aWN6ZFV1S0hpTENJV0RrRG13Z0tOeitPRHc1R2NsV0dreE5s?= =?utf-8?B?OW5qTm1Kck1qMnMzK3pKQllEOC9pNlBrZmxHcWNjRXBaS05oQm1wQjhVVEQz?= =?utf-8?Q?xwqQkaW7/FDjGdzszQCtkanSw?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b50e2f9a-a955-4e90-9081-08ddf4f6a560 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Sep 2025 07:57:13.2341 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: KSjMr4zbnYZ6fQ252AtX2AUSWrBPFHs55MNecQxoswAPFr7Cz0nBPQwDr2mjARs1QRvyebjo0EZ7umrCjdDgrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR04MB7125 Add OCT-DTR mode support in default, since flexspi do not supports swapping bytes on a 16 bit boundary in OCT-DTR mode, so mark swap16 as false. lx2160a do not support DQS, so add a quirk to disable DTR mode for this platform. Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 15b094e8e892f0b61c1f320bba897fa1f588be91..389cb20872db6d9653a146eac71= 82b9a4574496b 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -330,6 +330,8 @@ =20 /* Access flash memory using IP bus only */ #define FSPI_QUIRK_USE_IP_ONLY BIT(0) +/* Disable DTR */ +#define FSPI_QUIRK_DISABLE_DTR BIT(1) =20 struct nxp_fspi_devtype_data { unsigned int rxfifo; @@ -344,7 +346,7 @@ static struct nxp_fspi_devtype_data lx2160a_data =3D { .rxfifo =3D SZ_512, /* (64 * 64 bits) */ .txfifo =3D SZ_1K, /* (128 * 64 bits) */ .ahb_buf_size =3D SZ_2K, /* (256 * 64 bits) */ - .quirks =3D 0, + .quirks =3D FSPI_QUIRK_DISABLE_DTR, .lut_num =3D 32, .little_endian =3D true, /* little-endian */ }; @@ -1236,6 +1238,13 @@ static const struct spi_controller_mem_ops nxp_fspi_= mem_ops =3D { }; =20 static const struct spi_controller_mem_caps nxp_fspi_mem_caps =3D { + .dtr =3D true, + .swap16 =3D false, + .per_op_freq =3D true, +}; + +static const struct spi_controller_mem_caps nxp_fspi_mem_caps_quirks =3D { + .dtr =3D false, .per_op_freq =3D true, }; =20 @@ -1351,7 +1360,12 @@ static int nxp_fspi_probe(struct platform_device *pd= ev) ctlr->bus_num =3D -1; ctlr->num_chipselect =3D NXP_FSPI_MAX_CHIPSELECT; ctlr->mem_ops =3D &nxp_fspi_mem_ops; - ctlr->mem_caps =3D &nxp_fspi_mem_caps; + + if (f->devtype_data->quirks & FSPI_QUIRK_DISABLE_DTR) + ctlr->mem_caps =3D &nxp_fspi_mem_caps_quirks; + else + ctlr->mem_caps =3D &nxp_fspi_mem_caps; + ctlr->dev.of_node =3D np; =20 ret =3D devm_add_action_or_reset(dev, nxp_fspi_cleanup, f); --=20 2.34.1