From nobody Thu Oct 2 11:48:28 2025 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011034.outbound.protection.outlook.com [52.101.70.34]) (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 6A41F2F6572; Wed, 17 Sep 2025 07:27:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094063; cv=fail; b=BcVFQnifRX5xqB09fRCLEEPJ6EI0afOQ5WYNTCrAzH0CJdfjby8C0TWAs50bb7nyPENgSmKqcX2bDEMNz0srGnNLwuTMTFoyY4j2CRhYpBPPrxtZWIP57S5CkVOPtWQZk381JZt8aW3DYPrSIa7KaqAS4KVy47w3DyPcHCVlYpk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094063; c=relaxed/simple; bh=e/etS0ISZob4Ig8ik9H7GfK186WxrbMjguvBkDviCkU=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=LQIiMP2MZI4mjEm8wvHJSkfR89wTb2+Iz0y9fz3cdepvlEyPTs2CremKJt7GihCtBcgcW+3s6BdddA0WzltGOX/ctU01xF2kJnT4jp2DzWqgXNfr2d6eDQabuNtZqeFxwMK7GEFCvYWMcqYY+BgRzwMA/eUEI+jMsBHePOAr/GU= 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=GUtFQR82; arc=fail smtp.client-ip=52.101.70.34 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="GUtFQR82" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Bf0aXF5X+yydPZ9znll9phg85Txp5EjMcmJHVPtSU4oTdVAje7EgL07A7+TAHfTmLZufibzqxh0/7B5tFXYg4wssIL5awkggbXaLa/AAnzbdZGf5H/qW7H2OkGRJDQgF2HQRQlVaY0OTt9NzHNBw0C2aGadBbanM9DvL2xPttnUQrokNG7RG2FTJrlCt6InhyWcJ8TIuVLjjvQxJ9tyoDsJMhVITKdk0pjcB1p8nX5NuDvylBUDvTn4H/gvRUEPlGe+TA0mQ3HJNU3z3sy+/0wguztmVLF6VnwtW3nNX/ul3pRqZqy2SPCBZIkgRY02a2CCo/twpocKfsvaNZhyi3g== 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=UPT+2clts6iO+BBV0zeV+H7JCWlQy1xQiYpubobd/2A=; b=JJQvBC/zxggKz+ZbiVJpNvkyG8g2Xiv/lbpTs/c5VB92wuesz/mVbx3YITe72iUzw9dfWv5vYFfUgQ6avE1sfsR5ScdYPcRVHYKObRQK1DnfgjIu5iS4KfWOikX05rLb9PeQw7q7OkSd2ZySQ+rM+nJ2oCcF16Gk5PFVD+KaznY9ztGzGvtz5QnAUHs41R50r24yMEqTt4kNIoY1O5hPXTW28w2LH3gYHoVePCWo5KCRJLz8kCYXroCVt16tpIpCEeoP6kqP8XiM1EsIjtqC3IYAETDhNpvoq0UQQRdWw14ov9UMTNnPK0Tz5XcDDVOEmIEnpYOYbQVBbmJ3L0oC/g== 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=UPT+2clts6iO+BBV0zeV+H7JCWlQy1xQiYpubobd/2A=; b=GUtFQR820waBC2HNuN09TVgVlXg4n9RGt6uq7Yg2qr1hBSv/YncL/VXfOFp6L2+qgKzdUED4eZzTLgOFUuiKYgOedNS8INji8gNMY4AvKcs2ReHfUUcxpTrbif7NkUle5y1pPVAnb3GnodYxHKK7h3206aKI5leh5dO47p+ISWb189ZzK1kLFg9gcwrMZJonGvkK7gYFVm40dJthrufeYMQY4AhreTk9sZG5A4VDl3FDyz2znlK8n3w90qQI0EXtmN4J+WuTQwQrO+/O9AyxU6kjVJQnCp4hmRhKPmYlZ9cq5ZZ65eEO42LYrzzMmK4JlLcvqx1HjTBGAZL8z8Zp9g== 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 GV1PR04MB10800.eurprd04.prod.outlook.com (2603:10a6:150:203::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 07:27:38 +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.9137.010; Wed, 17 Sep 2025 07:27:38 +0000 From: Haibo Chen Date: Wed, 17 Sep 2025 15:27:06 +0800 Subject: [PATCH v2 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: <20250917-flexspi-ddr-v2-1-bb9fe2a01889@nxp.com> References: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> In-Reply-To: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown , Frank Li 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=1758094070; l=1891; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=e/etS0ISZob4Ig8ik9H7GfK186WxrbMjguvBkDviCkU=; b=opnFikrJrHVfsFW8PebcHX3eyCxpIpsVZQb5zk68Xe864wZIVGAKaS2LwTU54cmAwaDBLgR9L 28leeBo+GOPAlYEH3lLnL3oHlCY9YUfYg/iKh9kdoB5vLjkwLya3paq X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:1f5::6) 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_|GV1PR04MB10800:EE_ X-MS-Office365-Filtering-Correlation-Id: 797f2952-74f8-4c43-0839-08ddf5bbadab X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|1800799024|376014|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Ujlyenk3cUtjc3R0eEMybWoxVnFVS2VYaG01MThKV3JoTUVsd3ZkeXdSU3Uv?= =?utf-8?B?Q2VkdCthMVlDcS9tV3ZjVkN6bTZ4Vkc0K2lIVisrNEFXVG9Zc1BsOE5nb3c3?= =?utf-8?B?SkNXYXBaV29TWFl5b3pmeUlvVDBBNmpwditXNkd2ZVhzVXMveE1GQldPRWE3?= =?utf-8?B?RzEvaFpPM0Y2OGNvNlhpTUJabXNZQmpxVGNlOFZlaWl1VWdrc3NlaUg2aS85?= =?utf-8?B?U1Zhc29aOGcxT0hwZDdjUjh0OXBrMlVBTldSVWUvZXpTYy9wVmljS2xmWm0w?= =?utf-8?B?aTJPQTlkRGlkU210RC9tSTZvTDBObWV3QjZ5SlVLbUFKeEw4c05MTHFxNm5T?= =?utf-8?B?T1FUcVBPV09QbkVIUHZvdEJDaVdNRTlkb1FBNldUbnlkaVVnaHNwT3JaMnRE?= =?utf-8?B?YWZmd0loMFpaSUgrTTBkeWw2TUpzOW1yNmdORCtqV2c5R2tlNCs0M0pmODdV?= =?utf-8?B?RmM1UzdCcWFxQWRKZWZvdWtkbHZjelo1My9ORFlsREtULzRRcUxhcE9jYmFv?= =?utf-8?B?K2h1dmRKZCt6WFNDVis3TGEzc2paYWdacEFXYVNrVXBMSDdpdjRHSGw1TWRy?= =?utf-8?B?dWNPdzNLSGhXYUt4Ykhad0h1eHBMWEJxMjFFTktXQTdyeDFUaEZlckRwWGtq?= =?utf-8?B?STFkYnUxYWg3UkM2Q0pSL1d1SFZMTVdRQzJMSXpGNFVPMjJCbzVLdldNeE83?= =?utf-8?B?Uy9jdDREVVpXMjlvUldqUXpRbTlMZmlpYThSR0k5ZGNTZHZGRGZhbWxLUFh6?= =?utf-8?B?UkJSR3cxSFU1TDRLR2hGYmFOK1BqeXFmZTRDQ2xkaU5idkl1T1d0VVF0OGpB?= =?utf-8?B?cVFzWFBrK3JyRE1RdmQ5RExPTGUza2hNRVBVUmVGWVhRaGdZenQvSmczZTlm?= =?utf-8?B?QzFkdjV3TXVTeDZrVTNvVWRmZCtsM2hWeHNhNGVrVkdjVTVvMDB3R2xuNXhX?= =?utf-8?B?SVRVT2dSc0xCWXEyQlNsZW4xWml4NnJFTDlxMkMvREp4Wi9kS0lFeWZ1bTJZ?= =?utf-8?B?UGFWRGY3Vi9EajV3dWZpbkNJZ0RBYTNRQ29JcUdpMWloTFNxS01SczcvTDRC?= =?utf-8?B?SUJEWG0zVUZNaWZFVU84ZjM0WklYajBoZUZpQW5PRW5RcUtaVlZRVDR6MGRj?= =?utf-8?B?dFBYVW10V0dhd2k1UG1iUjdUN0N2eHZpbWlocFMwMUt1YVQvRS9wMm91OHl2?= =?utf-8?B?cjBEM2tPdU0zR1h6UkJDZC84U0lTUyt6MktqNEpxMXJUK25KSDRpaTZqUDRU?= =?utf-8?B?YmFZU1ZydDduN3JNbkVWN1h1TXA3SUZzNitFbzUrY2xxUnZLbFFnRzYydDQ4?= =?utf-8?B?aFZkaGhuVVpDRW9OZDN5eVlIYjhINzFZbUZNSzR6VlJUYTF5TTRCeEhkVktx?= =?utf-8?B?UXNNclMwaXh6VGZHSkphSjhIS1AvOTJ6cDdPL3A5MVpTM1VLRUVGOWV4aXhF?= =?utf-8?B?L3BNZW1kUnNoZ0srd0V6dzZ1dmV6ZS9ocVRyUHdHSDlodFRkMjFjUHFVMWl6?= =?utf-8?B?c2RLSlVFZjdpMFovQnRRVUt3RUxZS1FzK0d0ejZ0UjNTQ0FmcmFnSDUyc1FO?= =?utf-8?B?Nlc2Vkw2MUZRcDZlZUJLckZJdEJZSm8xK0tLYS9EL3E1Q2RSNXdBYThzMkxB?= =?utf-8?B?Y0Q0UFFhc3Z1UjltQTFYVkJWK05wM1lhSlNRbnBXc2dSUlpDTVp4VG4zQzRj?= =?utf-8?B?dUs2RnB0bklXS1RmYzk2RWw4UGN3d3lVMDdHYTdsSTJHdmtja1dlVDFGZnlT?= =?utf-8?B?dmNjdThaSXFYRms3VENRYWdLWTU5cnpxSnBKQ3huaEsxRVFhMzVEdW1ReEhS?= =?utf-8?B?dlVTRXV1Q3NlOGluRVAzb1VxZ1FJQWJSN1RuZENZVFlVLytHZmM3UUNKYVBt?= =?utf-8?B?bjR0QkZYWUhVNjBwbWZ4cGY5clRmUHpMd2k2eDlFQkRocDRPVjM4b1dpT3ht?= =?utf-8?B?cWtyanZ6dW9YVXBtL3BSM2g1RGNpWkVuQ09GOVZha0NNWXNRU0lJbk82Q0Ry?= =?utf-8?B?MkYzbGUyMFNBPT0=?= 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)(366016)(52116014)(1800799024)(376014)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YktnMEYwa3ZPbkZZZFJZVC9SbS9yVzlDWnMvSndRN0I5VWVzZDdJckVGT2Va?= =?utf-8?B?NlpIc1ZkTWJWTllpQWF5WXQ5OHNRL0w3Q3d1WmlGQWpXVWFpaHRFenFHNzNm?= =?utf-8?B?V1BWbzh1YUM3VnlVSUcya2dzMFVjSUtNbVQ3eG96Rnd3VXZ4czd1UjE5ZnpC?= =?utf-8?B?RnBYZ2tMWEZoZktzeXZuSlBpT0lNamJkMXFjR00velhOcDRtUnRWY2VWYUN3?= =?utf-8?B?U0o1bGZPSkRFeGVLVmsxQnJ4alRQazcwc2RYUTRLMHpSajlEYmYybTUwYVh0?= =?utf-8?B?ZFpXZUZxckNyQXZrMFplcTl1Q1hKTGNhMzc4andkd0MzT0tKTW5XOTd4dUEy?= =?utf-8?B?QVdYaTUyT0tQWWZsNGR6dE5JQzBqdVRHMXZGQmlaekhuR3gvNUhuWXh0MmJG?= =?utf-8?B?M0t2Q1VxN0E2R29RYmVRc2J4dmI5NVdieXgxaDk3cllKSzlhcnhhZ2pkSkp6?= =?utf-8?B?MWlyL2ZXRkF6SWhMQlhOVXBxYko2VWttNVQ5M1FpZHcyOVYxdWMwT1kyaUw0?= =?utf-8?B?SllkK1BNTGpOQS8xM2h6WkNEYkxHbFIvYll0REFNRHRUaUNXcmZVRnJmNWZt?= =?utf-8?B?ODIxaG5HdTRManM2K2JnODA2UGtOMW42MWN4YTVHUXhvdWExTHhuWmJWQ05B?= =?utf-8?B?ZjQzMlJoQXZWVS8wUUpUWG1maEFodjh4RWlxQmFaOVpRRFJnLzJKbDk3VDVx?= =?utf-8?B?RTFVOElZT2hYbkNncStFckRRTFk5NmFQYkluZ2RnY0FzWFpyNjBrRDlQWGtC?= =?utf-8?B?dGtiVlY1KytyQkRqSE4vTDNpb2FaM2gvTzZ0R3JWdGwzTGhJMnNDVW1hbGMy?= =?utf-8?B?L0VrNDNDeGQvQ08yL3BFOTVqUnZYbjh5ZXpBQmdQdy9SbFY1ZXhRZHdDdGJK?= =?utf-8?B?Mlg2Z1VmYms4dEMrcmVpUlRVaGNML1l1aldiUU5kalVkalB6dGlpNFdpMDF2?= =?utf-8?B?MEo0dmhjWko5aXNqWW40Z2RBYkprSVJUZjlIQzB2Q1VMQ3hDSkdWbzJXMktT?= =?utf-8?B?SHpXR0llUFBCNDFrcWlJOGN4TFM0NEtHQktqR25DSUF0SkwrbXoyc0Z0WWtS?= =?utf-8?B?UEVwR0V2elhhNWJia1ZiaUc4bGRnUjkyeWUrQmF2cjZZRHozQWgrMVhHT3R0?= =?utf-8?B?TWllZkFYT1VtcXorREEvVWM4dC9seUR2S1pHaDB0L2VLbE9tM3AyalRYTjJE?= =?utf-8?B?T3pqWkZoTkY1Z2FPR1lyemFoK3FJNlJvNzRnSG54MDllZ0d5N3pLQklLVjdG?= =?utf-8?B?LzBhMTBoa3pESXFnS2R2b1RxZC96bnRYc1FNWTRoZUVDUG4yUDJvL0xVOWxN?= =?utf-8?B?SjBOREg4V3lud3duYndBMW9BeVVaaEMwRkFYdi9uMXdjalJJVU9EQ2R6dGhG?= =?utf-8?B?Mkc1aFZIdG5aR3NGVUlBb2cxNGpFQWNmbEtPTU9MZGF5a09RSnBkTmQrVGtG?= =?utf-8?B?Z3poenhXYnpNdmRVaUFJclVGS1NJTFZEbDMzcVlOL0NaVzFXanl0MG92L0VE?= =?utf-8?B?bVpqQUZteG80NkR4VURWV0ZPQWl6UTFVTWYreFcycnkrWUJPQVJCajh1OEw0?= =?utf-8?B?L3oycjZJSklqcHd4WmFRY1hPRU4vRllUaXlPTTR0Y1VtNWtKWHRoWFFnT2J4?= =?utf-8?B?NE54WEgvMVIwUGRaMXVqdC84Q28rd1FOUGNFRFMxTXBqZ2hsUXNPVUV1b1lw?= =?utf-8?B?cVU2ZkNGSXNuc2xxbkM2Y0R1eS9za3o1aTZ4Qkc0RGJnRzVqalNLYkRHRTRx?= =?utf-8?B?djRGa0lrc1pHMW8wT2tIMjRqdE9hU2ExeVkxdTArMUtHYklaODJQSGZ4ZDVM?= =?utf-8?B?YWwybUdwMG0vVHJ1K2VmUnQ3RkFqT2VhWWJleU9zWDlqWWxkOHZrRXordjlI?= =?utf-8?B?b1JTWlZxMjR2SklBc0VWUzFhd1dHVU5UWjFpVEthZzhNczFKc3dIZlRqZTBh?= =?utf-8?B?OFFSdVNHZnJBR2t1ZzQvdThWNUhiVFlOdTk2UStIZFJiTDMyMU9LMmQ1ZXNH?= =?utf-8?B?a0t5WFVqWG1ndTZhZGJJc0dSS3lEL2ZScU12WjZoeTVoZmFuWlZ0RTZyQnV2?= =?utf-8?B?Ny9URkU5cHNwY2RXTEVwa1d5K3dBMWVYQ2E2K0ZqZnRIQ1A3U3BVVEllZExi?= =?utf-8?Q?romZhYawfBIQ0Qn6pC5vrSU0L?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 797f2952-74f8-4c43-0839-08ddf5bbadab X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 07:27:38.0154 (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: fLEuB3Tdd48mcB4/y7LVdK1NKPFdz3D5R1OMWtMPdpoWqLafhUAaNwVYJ7hRLDCmt2Q8u/Q7ysfGmUle8Kw9PA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10800 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 Reviewed-by: Frank Li --- drivers/spi/spi-nxp-fspi.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 848fa9319e36d65e8152931324b8e34eb162f5d3..db4b92490de957580c6298baeb8= b68a310c23615 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. @@ -1071,13 +1082,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 11:48:28 2025 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011034.outbound.protection.outlook.com [52.101.70.34]) (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 A03392F747F; Wed, 17 Sep 2025 07:27:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094065; cv=fail; b=CkIwlANutOEh4fBT/EUe9VfCWIDJI0vZ1Nsp48t3lYHnyCl717ZM0F0yNjUb+FCihegrMEWGP6Maysa7aO7OTui2Jh1IxSeZFREF2gX3bJhvcP5MoLE6jV5472c2klelEEWB+uDti7t51l4lSADCHCjckfK/HWi1crzheHIxuYE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094065; c=relaxed/simple; bh=DvByLpqUfbVxLGbVFGdqzSQfGHY0MfJF2DFSrJLtO6A=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ieDMOrze4EH8fhd6nSB8YIsOCfQ4aPLgmgZgmRkyMg2KMuAXcTbAO8cKUkOcOxb6mSoW7iNKw2ta27CBdBc6aRwRMnjAKbl+u/j/iQUBD1ByTlmF8fsK4JrhT6R6AnC+pWTbvHZSVXrlhwXm6doWgcBJzdo7hfY67H7UBpVdjJM= 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=eWqhTCZM; arc=fail smtp.client-ip=52.101.70.34 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="eWqhTCZM" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sDuqs7O5UstVyf/7xze7TeERZ3J0k7usBIK7CUP3QZMS617Qgd3nHNDNXUtzrfZMTshEztfTEwmr0VssosgoHwpW/0IcQ1B/Ut5nbdOxiHf/f0r5wCmU6q+G9RK9okjoSqwmYLhfzgYKS06NP37+jJXO27hP1hRiAmqZvoX6GICN3FAHRJyUCkAiLiA+GgMjJLuFMLxM7c294gX7Si1AJqFFklRjkX0rmRLh1mEF7KLT/1aFSbJwUiehqtdRb3EaqW0K5ASje82jg8DdltAgjG1vTQ4O8XXLIRSWzPUY48WF2hOjgARj9A9OrqaITpAlfbUfwQsJv0uEUi++oXa4SQ== 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=O6k7eNK/49HO/MQ4N989TMDKWKdkaHhbvl4HgCzVskE=; b=YwhdszqtYQXYitVmJEhiK+b0aFvdMvbgSW+vNzNGibYhH7NIx1v9vnSHoN53tEXyxIRJfJSht4NUOUK0Ve0KlxHPVpDQdbnQUnLQ9z6pFUsyfsoO7TPCmjxBSmR/yKCk5WjJsruI1mSccsiMtRl7onQRyYgD9VLt/5lXCV0GAL0IcsWpzvUuBN2lvpBwemFt6sIB96iNKCwUf7Dk3Rh6c0iC8Up62sF3+IS36+f65OPr7vOPddBcVuErWPWH8lCSoz5w6GT02PB6x/CpUHkkeVluQhtcypVQZvsztxxQtA4MUpBgAVyFmcEpTWhoi6ADROlK0A208vWaR2nsR3X43A== 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=O6k7eNK/49HO/MQ4N989TMDKWKdkaHhbvl4HgCzVskE=; b=eWqhTCZMZjYt/xZehgzEMHA/ZLeOsageJ65IymeU0ITNCQwTgMa2IhdV+dYZvSuX5XMVqksSfx0BXwm6Ar1Ky+aAJ5pqgsE3+LRHSzWfwuWZJOuPR7YhU4LTxLXKO6Fa9/fuJ7H731vZUhJc1DHmEuJN0SNdd1Y/MGv459r2KMTlMV9Kalj6WWNPvJRRdi79uGH9zXTT81gLPq54+rNFdo4Ut6Ry6XxjEDaCDKXwKoEtU0oNJ0bbB7nbE1dMWyHBvsdFztXdyudVfD+KQpZylCvlpOaJaTvaEa+/3sbz4kt9jXAKI49m363nDsdOpUHTXJ6o5GcykKgjt4LNBfqW+w== 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 GV1PR04MB10800.eurprd04.prod.outlook.com (2603:10a6:150:203::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 07:27:41 +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.9137.010; Wed, 17 Sep 2025 07:27:41 +0000 From: Haibo Chen Date: Wed, 17 Sep 2025 15:27:07 +0800 Subject: [PATCH v2 2/5] spi: spi-nxp-fspi: set back to dll override mode when clock rate < 100MHz Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250917-flexspi-ddr-v2-2-bb9fe2a01889@nxp.com> References: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> In-Reply-To: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown , Frank Li 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=1758094070; l=875; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=DvByLpqUfbVxLGbVFGdqzSQfGHY0MfJF2DFSrJLtO6A=; b=l2yyC2rJ61nThyNN3yP3z664DqbWrbCSGBHrzz712CitPw/q/DwRiBQHNRDvPUsTu6UUj+NtR ZjRc+2YxVAZBijEIsBZUnnHymALwuzFa43KYwZgG9J85EVh2FN3gMqS X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:1f5::6) 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_|GV1PR04MB10800:EE_ X-MS-Office365-Filtering-Correlation-Id: 58f8e7c4-138d-46a9-299d-08ddf5bbaf78 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|1800799024|376014|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VXlhQzkrdjZoT2NBcjZKVjlMZXhOdlQ0ZnJqczhmOHBlTjNZM0diNG5QcjY2?= =?utf-8?B?dm9wZDdieWFBSUNFcTh1YXFOR3o1N3orYTEwRnZzRE9PakxPOWFuYXdHRWdH?= =?utf-8?B?N1ZaLzNwaDB3M2pkUUhXWXJ5SnNJZlFuSGV3bis0bTFPQVhoN3pyMGlNNXE3?= =?utf-8?B?UEZYNFpHVTl3MkIydGVjQk9KVTZLVU5iWDZtdVlUa3JQSE1YejhrOWN5ZEs0?= =?utf-8?B?cXpzWTJSZUFmMmphVG9mQlVWeGU3eVRGTHF4SVQ2ZWRhUml0OWJMdFpEc3oy?= =?utf-8?B?QlV2NVNRc01xTjR0aGpaM3dSa1hiRytkaStvek9RVERLOThUS3BwZW9rbFEr?= =?utf-8?B?Q1NIcy9XVjdnckhqaHZSRzZYM3RUeUpuWlVyak1adzd4K1pCcURoNEVJcWZW?= =?utf-8?B?a2lQeFU3S2NMeFAvSlVlNzdRY1o1bVVCa3BDWnV1NlFaVWlPUm1WYkdtNFFa?= =?utf-8?B?aEhsU2dwbVlVR3hyYU5NOFBGTW9jVFhFUmN3c04yZ3RpT2VqTlNOT3E3Y0NC?= =?utf-8?B?bTFlZ1JFb1dCajB5NlJVaTdTbVNkL1l0RDF0WmlYVWJEU1FmZ2gwS2QrQk90?= =?utf-8?B?SnQxTW9yM0N0OHNhc0VXRkszMXZKa3JIdFhlR1BWd3VDUUdZOVdnMVd3Y0RR?= =?utf-8?B?Mjc1M1RBQlhzeXEreWl5cS9yajlVS3ZER1NmY3dKYmJyZXZGRVdFTmZmaXdH?= =?utf-8?B?VDdWVjYraGZWanM0cW5tVlprcTQxTEltR1ZpSWlGK2gxUVhNUHpBMXBkRllS?= =?utf-8?B?TlJyTmY0cC9ndzB2WkdITWRsY1U3SjNIVEMrRzNmaXZxN3pjWDBLdHNDeWg2?= =?utf-8?B?TFliYXhQOVF5SXhYbTFwZlVaSlkrYUZBbjZQWW41c2xHNjRiYmZkWXpKcjhs?= =?utf-8?B?MHMxdkwydTdLTk9RenkrQ1MrM0Y4VE5jbjRveWxJS1dJUndYbW1seG5hd2kv?= =?utf-8?B?eGZtb1FyaGQ0V3VRZHFwVjI5aHpJTnNncVhNTXd0TU5KVGpZKzkrbmsyeGo5?= =?utf-8?B?U2hSbUhHeUh0VXJWMElKVnljSEZMZG9rTy9tRXk5aEpCcUN3VzVmQllqcXJo?= =?utf-8?B?L2VsVkNldTc5aUw5U3FPMyszQkFZNjY0ZXpjSHlmOVh3Q2JCNEdaTm5Uc1NU?= =?utf-8?B?QWdxK29SdmJyTE96R1l3UnBvYTROQTUrdEY1dHowb3MzeWZ1andBdEN6Mmh1?= =?utf-8?B?aXVmRlFEK3BqWXJwelZBRmc3b1Flb0Fyc0NLNXBmc0JnWHJqRVBnWXFFVlNN?= =?utf-8?B?QzQ5UktxSXpTWXFGaW5mdmxPZWwwRy8xTWRyZGxqb3JQSTZiRGgzdXBJdGkz?= =?utf-8?B?b01EOVYvUUwyM0xScXZuMFh4Q3BVblRoT0R6eGpQTWJibTlGQUxaYlFadVhK?= =?utf-8?B?VWk2Rll5eVhEY0IyWWliL0xIZExEZ2hzYkFidmNHU2FjQXpSd1psWURneWJo?= =?utf-8?B?NzRnVmxCV0lkZ0YvKytMdkc1dFRXMGwxVVI3Tlg0bGNDcExKMk14blFKQklH?= =?utf-8?B?dDV0VUVyTi9oQzFYU0VsY2hhN1g3Y1NxemNoRVBrWDhxdEJpL1ZOeHVFVklV?= =?utf-8?B?NVk3Njg1MDBpTG00SmdWajE1QldwTEwxRmFYdW8wdWpBdHBrU3FKRmlISGZN?= =?utf-8?B?WTFWanU0QWNJL0VLcG1CYjVNM20zcnMzZDRHS0ltUFlSbTYzUmJkQTVxQ0Ey?= =?utf-8?B?WUxyVVkvTlhCckFnOGF2dVY3b3UrOTdoc3F0UTJhQlZxaktRNkVHVG96OEhI?= =?utf-8?B?Vk9EY1hoVG9hYnlYRWZQU0NkQ21nUW1qTmU4N2QzSDYwTkptQm1zazdpbm5I?= =?utf-8?B?ZllQL0svTFFhT2tIQTlHYm9EanBDYXRNTnZiV05xK0JiNC9SNnV0QXNVdytH?= =?utf-8?B?TU9WYkRFN1Vzejc2VjlQTmFQQ2NiZWl5azJzeGtTYzRvOC9yTWpiK1dRUHc1?= =?utf-8?B?NnRaYmdDQ1NseEswR3prT2NWdTUrTG5sZWY3a2lRelFiam1SdkROOFoveUVt?= =?utf-8?B?K1luTGhWY3BnPT0=?= 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)(366016)(52116014)(1800799024)(376014)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dHFJaWdXdGVxa0hhNjQwWTh3VVB2RUQ2NEN1WWlxOUE2d002L1JCdzZMVHl4?= =?utf-8?B?blRhZkFSdTAwRWNxKzFheW52cGJtV2Z0REtuaWRQMUI5VHhDN0FTY0tUV25k?= =?utf-8?B?WHZ1cnEzS1RQMHR3UmMxSm11dnFhblJCVzVKYVMrWmNhVWE3cThvT213Rm43?= =?utf-8?B?QnhDaS8rYnhVTG0yWnRSaEdnak1KWG4yemhuZWNlSHpuRGFqUFhIZjFMSkVX?= =?utf-8?B?U3E2dGRmdENqVkJYVVhYMjV5WmRUb2hKVjYvNExpSkIvOXBVWHZOOUxtQnBs?= =?utf-8?B?Ry9CbHl6amI2Z3pvdWNOV1JJRFRxTHdBTmtTRlFZQXlqa2NFUnlCY1p5T1BR?= =?utf-8?B?RENoR0R3R2FMamQ0WUErME5uTnYwaldzMnNTTjJxclhwWFhPOXFzSmVFNUNT?= =?utf-8?B?bm1hK1N5NXdqNitzU3BPRnBpczA2eldOYzhSemJiRlk0NzRlVFd0bU4vcFFQ?= =?utf-8?B?bnlraUJDOXRNdFlob3EzRmVCY0ZqMmw4M2x3Vy9GYUdheEFBRU5jMVA5bXU0?= =?utf-8?B?QjRIaGVMRTNrRGNWai90YzFnN1UxazhQaFZQamdlRldxSnRqcTJzUVMzMmpJ?= =?utf-8?B?WEdXdHpOa0NPREJwTFdoVmVzREdsK3Q4a0dCUnJ2KzRCZlovR0lETVpCQVVV?= =?utf-8?B?eHhWcGVPZ2dPTnV3UFRTQ1M3UTdrelJQOUpocnhodzdEL3l6U3I2K0JzR2hk?= =?utf-8?B?Yk5BU3Q1dVZSQy9xTFp3T2pTTDNYS3JHNFN3bGRUN2YyOS9aM2ovaTlvNCtw?= =?utf-8?B?Q1A2cWxXbkw0dlJRRFRNSWtOTDdQL3czK0ZUS1JaVXFtdjUwUXZlYXJFVTNT?= =?utf-8?B?US90LytXc2dyOElRVnhLdm1NOW1OdXpHeVh3MGVabEVpaEJYVklpbEhzSVI3?= =?utf-8?B?N0t4YmhzVVhES3J2bmZraThJQzN3eEVCRVZpWkFxSnlRYVpVekh2alNtRUlP?= =?utf-8?B?TTlpejBuem51dUVQa0UxMUNTdFd6VmtkYWhCSjNwYnpCYjZoNWhtZXlmT2JV?= =?utf-8?B?elhqK1dIOHFDNFJJM1hJV2ZRMkoxdi9hT1NqR2MwaWRxQ3hOYzR1NkI4ZWlq?= =?utf-8?B?bTFZUGhrQWtRMzkyMjJiOTBEL2xYSFVUZXZiM1M2UGRHZ0hkNHMyWUVEWnhX?= =?utf-8?B?Q1p1bGxKaVFueHViRWpweFg2ZzU0UURuV2dhamtzOVQ4K3grSUtVSjZnUkJ2?= =?utf-8?B?M2dWSmk0dHNYZ2NZRit4elV2OGVuTjRROUwwUDFTNDRFblBMdXc2VmNlQzd5?= =?utf-8?B?cHZxWURveHlCcFFZL0p4YlQ5b2tSSXhnYlpGdExBazl6WGlDLzlkZHJVdkJt?= =?utf-8?B?b2pRRnYxNVB0VTdOSExJQ0swYm45Z01jWUFJWm9UUmlMaTlJalE2L3pFVTBQ?= =?utf-8?B?cnQ0YU8xSzRGcmlwcklrd1gybS9VWjJrc3piL3BSRlBCcEJxdlFXL3c2azg0?= =?utf-8?B?L2tJRS9ndVRpTmpmYjFCVDFid01rUG45eWJLOEQ2dkIraHRqLzdueVdnVExr?= =?utf-8?B?ZDZmblI2Y3V0Q2Ira1JqSForZVhuQy9QMjE1OEFvT2pReFJ6M1JIV0VBOHg2?= =?utf-8?B?cDRzWGJyOEJYSm1ZbnRHUkpnQmJKL1d4SVg0NTdkR0NPeXFJZ3BWUnJYdWNC?= =?utf-8?B?SnhIaDU2eFg0VVRHNnFwM0hwdklyQ0JMZkJUcGx4WTlMS0FaMEkrN3RCNTA5?= =?utf-8?B?RXFFWmViRDd2ODhmdmpqNThlNG1ZbWwrdVJhZmU2SDJlVHpjQnlYM3pLOUMv?= =?utf-8?B?TnNrRDF3djBOQi9vcEg5Wm5NelV4b1ZKNE8xZVQ1ZHZmdU9WL2d5dU83ek0v?= =?utf-8?B?TEZGdzVzVGo1blBGS000c0JJOGRUK0pCRWdSSGVrMFhKMERUaDd6bVEwQ29J?= =?utf-8?B?Z1k0ckx5cVlWNzRUSU01NkVsRUcvSE4yUHV5a2c4T2h6UjUvVlVYWSt1ditv?= =?utf-8?B?MzA2MGphTE5XbmhOaEp4WDJXYW56QzQ3Mlh4NVVIOTdRY2ZhS0owQ3RQUzNm?= =?utf-8?B?QUFlWFBZeFdSbjVwV0cvSk1RcUNRNWdrNmVZQXkzRUd0WHp6VmVoMVR0SHpB?= =?utf-8?B?NGlSVW5nTDdJc3J4R0hveUl5L04rUzFGeVN0ODhZTjRCVi8zVXlVakRoZlhv?= =?utf-8?Q?OAZcxuuGBNPbaMdcFTlsUN4oJ?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 58f8e7c4-138d-46a9-299d-08ddf5bbaf78 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 07:27:41.1348 (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: Bll0dO+Z7dn61ylh8+6/gDFaC0VSD1FCKI5UhasQ7nThuHUlMAmqASZPkKZtILsfe5IAdvLZdfEHIKnOk//IaA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10800 Preparation of supportting DTR mode. In nor suspend, driver will disable DTR mode, and enable DTR mode back in nor resume. This require the flexspi driver has the ability to set back to dll override mode in STR mode when clock rate < 100MHz. Signed-off-by: Haibo Chen Reviewed-by: Frank Li --- drivers/spi/spi-nxp-fspi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index db4b92490de957580c6298baeb8b68a310c23615..a1c9ad03379682dc1fc2908fbd8= 3e1ae8e91588f 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -767,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); } --=20 2.34.1 From nobody Thu Oct 2 11:48:28 2025 Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011034.outbound.protection.outlook.com [52.101.70.34]) (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 29C2B30170E; Wed, 17 Sep 2025 07:27:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.70.34 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094068; cv=fail; b=RbU+JzhVF4z6diybZ9xErzFr8s+eSunLi2Ap7QfZcY741AHw4WyfiotzQL3jvNosubKpB7shR+Tt5F0G663xo8L3RxS0iUGXYs/lazsjbNk5CACne/CsN14tiry7cesJROzfTw05RG525XQb/e+J3gxXimZdHzgK2K0SzA25rDA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094068; c=relaxed/simple; bh=gQ8kR5CMjyOcapID3MS4MBVmknJCWHyPM8Vvf+wk2ao=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=jHrG1mgkMJFm0e46XIohjpJG9+tXRnQwIQbYwbwY2SBkdx23r0dBIj/rTbyUVrun8hMfVzJGsNWxiDDWJTUuah84lf8oIKvg7jfzwUhfjQjAMDOCEnza/L6jM8U2/ywHbppTnk82UbGsXvkgww9fy5wOedEWf1S1UO3qH4i9Rc8= 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=aHXIj+ap; arc=fail smtp.client-ip=52.101.70.34 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="aHXIj+ap" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NYablo1Z8TDnlRmH/hBHUZWN5qmg2pvXy9MxZD+JO6xj6QsWon3HgZMmShzJ80SlhMVWmBHCfpu0FFrCkwam4Cm0IkCuEg8QUq8LITEdkYjgz0jY8jOCXrf394BjS9vExzrKzrgLMH7emdmpf7UCKz5SkX8+Ug+ObSxSC+gxGCcj2g0hESy/gMEURlsSv30OIYgXanQbGoKVp161ofV1HLK77TKci6xRFd0sbXU+PRkfFr3C1z/x2EXPLH2WnQHMkQXquUeHVh7Bhgl5jzXo8ytcY97sVI69NIrw6GxoJUaIEGPR6MzQySSqcxiAZVTOw3ga0Qrj0ltxhk7J0dlm2Q== 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=y3gT+ReM4/doVpbAYVVfIgN8eyQjOsIZteo1Xl5+5LQ=; b=JhiMVj4zlmRaJTTwNwJ6ee3tZW/BJYWL4xORlaJADceZViedBZzcB0EJsSe/IEk0P4Xi/hlH0IpjSF78t4kJlUxBgsE3EfseuL8I4oTyGOeKqQL40mSxVl0XohlfA/cJmpLfpRqHghe7A8BLBiL7m4DS6yi6ekTzvP1gpVK5NfjzndpS0z1G23K82mvwCh/PcQwm4Nr4Z2/vmKrS2TrVr/2HhfHHDMxHgNXiTrKmhYidmnCd4qgkS9fhO574fqLYw0Wsl4cS6EBvZ9x7hdMo7du3qJ2qeHawlidkFAD6uVZV5ElA76tpoRCURR0A8WZc5jTxYiWhLKGOCyE11PxDyQ== 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=y3gT+ReM4/doVpbAYVVfIgN8eyQjOsIZteo1Xl5+5LQ=; b=aHXIj+apG3Rg79+Yy5SFp7LwVyzjI2TI4yG//biojuJGV5RmtUgfL6/cmlocITwbCL8/HxTieyimQXaJeDP/LW1WX0rQkkZgdnybMV02GItKlgZVkP2fxUyrPdVj/+pz4MwjmFeegRjh6KBz1FKhs/yGL1qgCHk0MtAaW+HOALI/+utHDmyLorhfx06tKlpYItSVbuXQPFe4XpusH/T8NB1Deomk+vWw+RtmFaIDkjbkqLEgs4L+K15T2Tu7U9sjKFl6xAFEOW5yVRYAmkoj3Ku7ZwcPVxFSruLGv7f07z2s7BOj4Tw3vPVwdKGkHXN3rBdu+gWUKbMddtf9up+HdQ== 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 GV1PR04MB10800.eurprd04.prod.outlook.com (2603:10a6:150:203::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 07:27:44 +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.9137.010; Wed, 17 Sep 2025 07:27:44 +0000 From: Haibo Chen Date: Wed, 17 Sep 2025 15:27:08 +0800 Subject: [PATCH v2 3/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: <20250917-flexspi-ddr-v2-3-bb9fe2a01889@nxp.com> References: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> In-Reply-To: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown , Frank Li Cc: linux-spi@vger.kernel.org, imx@lists.linux.dev, linux-kernel@vger.kernel.org, Haibo Chen , Frank Li X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1758094070; l=2269; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=gQ8kR5CMjyOcapID3MS4MBVmknJCWHyPM8Vvf+wk2ao=; b=AdV3x7ICxHkMdEeqxKbcPDmBkwoxxqwIDA0hEjzxWkaqV8kaHEHrzYrQIgctcavCk2ziiDB7E 6G3mGv60XtUDKwbDmAHPOa8LWPYwUiM5ltpxkOzCadhACACRluIQf/S X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:1f5::6) 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_|GV1PR04MB10800:EE_ X-MS-Office365-Filtering-Correlation-Id: 57974d45-023c-422b-d4f9-08ddf5bbb176 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|1800799024|376014|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?eDNaMFlyb3oydGRKcUJTNk83YnphaWxZdFVPSWhoT1p4WlNqQkNBU2c3NTB3?= =?utf-8?B?RnF2RStpQUdZL0ZzdCs4UmRBMktBU2FHTHJCV3BWNC95UEFHSHlaWHVZNVEy?= =?utf-8?B?ZGplZWVKOC9wT0c5bmRSYmV5TnZnK0Jzb0JJMHN5ZFVOWVZnMjBRc1hZMlg1?= =?utf-8?B?cjMraHVjZW1UZXNRcjdUeFdNOHpVWVNnUWdrM2FzT0tRMmVhMG8yZFBYME1R?= =?utf-8?B?Nk1UQ2wrUFdlOS9MVCtGTXpWbFllSkgrK09zT1Y3UGJkQ3hqQWhCOTdyQmlp?= =?utf-8?B?ZHNPdVZITlgxVUpkbWhaRjZvVGd0dlJBVHNOTFBjVzRZOG9XbmhGNU50bGdm?= =?utf-8?B?VXl6L21rbG83aktZak50S1I2Zk9HSDdzWExKdHc0SXkzWHpSWjRoTXBncURN?= =?utf-8?B?a0VOYTJrb2JyMVUvK3Z1WEtJWXVMNWtZWi9HNTY4c1psOGZNMFJGaC8yM09j?= =?utf-8?B?dGFJbmdYcUw3cW1yWGoxVFJBcE0xd0xCV3BVMXlQNXh4MTRHZG1IWExlTjBy?= =?utf-8?B?M2FldkxHZkcveUlFT3duRk5PckFxUjRHbVRJVnFWV2xsOVp4MzdwaHJGZkY0?= =?utf-8?B?ZmhWVkw2WHJRYjYzVFZvWFVGZ0dGc1ZEYWphT1dNdTFsVFJaTDZOOFlqR3V0?= =?utf-8?B?eDFhVElJZ294b3o5MndPcGZaOUJRbm94Y3YxK3pyTUNGcDdicHNNZzBKejJl?= =?utf-8?B?WGtjY2lwV1NydnVLNlBpcW82a1RZWm1PUU1sOVIwSEVjUFZ1Y0VVbm5ZWUVq?= =?utf-8?B?UVJsT3I4bE8yTXFnWHJjM0hKdkRMcThGYnhDWXZZRUxYTGc3blA0b2hhbWx2?= =?utf-8?B?QkYvQnB3WENiU250Sm1kRDhhL3RCanVLTzFzQ01BMGRMdHBFUEJubjlKUFNP?= =?utf-8?B?ZzhtVjN0VVQwQ0dXWU9SM2xqUlJueHo5RGJFSTc3cWVlbFhXUVpkVytOUGk2?= =?utf-8?B?QUdUWUdBUTFxbHRUNXVEVmswYTRRb2RvY2FQRTlkUWk5WEUrdUNJUzRWaFlX?= =?utf-8?B?eWJLNkdUVUhTVW4wV3RKamkyaXpHeVRudlhqVzgzR0V5T2dxMnNXbEFuMjAv?= =?utf-8?B?eUZtYWVjemhFK1FEZUdJWVZiV0d2VzY4UG5weFBXQVdpajRBSXYzSlVIcXll?= =?utf-8?B?TWpFZDJFYU5vOXVEaTBMbG5aaisrWkNZaGtPbHo5YXhzR3FIODQycGhmU0JX?= =?utf-8?B?UUlkVDByWVYrSG9PZEtaNUxTVVMxdlRPYWhyd0wrQitMKzcydkRkVlJJRVdH?= =?utf-8?B?bVp1MVFYWWFyZTVQTURua251Q1poM1Z5SlEzZlNkWGI1dUVGbm8xL1NaVTdn?= =?utf-8?B?K2piYWNDK0RGc0d4YktVd3A5emFJV0lQYU5laWxONXNIVE1lMGlORkt0T3Q2?= =?utf-8?B?bVgxWFpyTmU4dG5EWDFNVmtiaU5ySkF1Z2tSUGl5UXNkU0hkUVRHQzZQQWwz?= =?utf-8?B?aW9FeW9ESFJITXY1bFVWa0w3VDNpZFVuV3JjSWVTWTlydHJJa1l2OUVMMzRF?= =?utf-8?B?SGpQTytPcXE5SFdBbFNOUnA1eHJMbEh0YXJKdWJublFxRDFkQktrUjJKcWU0?= =?utf-8?B?Mjc4NGJTOEp3VnNKeGpLbmUzTTJUeUJscEhVS3pleVFTcHQwM0h1K2tEMEsv?= =?utf-8?B?NkhwcWdGb0pEdCtxSUFlcGdQQ2lmQksxaGhBR2g5UlcvQ1hYVXNjSEdRUnNh?= =?utf-8?B?ZGhkYjR3eEkzYXpHSXFXZzY3WjY3MFBRU3BrZ0ZWaG1EdHpLaXhvcWZPVVlj?= =?utf-8?B?ZFVBdWYraDdrdXVkZFQyRWdicGpTbHFMOUo4TU93K2RCT1AxRXJWUVBMbEYz?= =?utf-8?B?ZFA1dHV0Y0hMTllnUFk2UWh3RU5yU1Ixc2ZoUjBsL0dJQUszRTVSOEZoWmlE?= =?utf-8?B?SlFWZXFpaFpUY2NIb0pMWVRadHBSamxQcDBJMVNpSFhMRDRDaGhOZFNqZHFG?= =?utf-8?B?VnBhZCtER3hPWTFCUTNIQi91eks2UndFQ2o3ai9xd0RvRVp0OGZpcG9aVjBk?= =?utf-8?B?TnU3YmV0bFV3PT0=?= 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)(366016)(52116014)(1800799024)(376014)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y3N4WThrbktDby9wdUdPTkhlTUVSL0EwbXkwM1UyU3d1eEhNSmlXTnYzVHg2?= =?utf-8?B?a3lrVTBFL0ZKMmxubWpPdnJhZ3AvOGxVbDlRcDI0eTg5SEFzR05LTlVIMkJQ?= =?utf-8?B?ZVh3Q1NlWjNFTW5wRlR6aktBa0xYUDlYOGUyTXV6c0dwRU1jOTRtVldwUHI4?= =?utf-8?B?MTVmR3ZDTWx6bmtUbGpFSEQyTkMyYXF1TXN3K2duUlFKckV2NzRIajRFQ1M0?= =?utf-8?B?L0pseG9uL1gzdUNqMHlTRXBIcTBVMHlWNTdmZzRaMzIvRFF3MVFOOHNMWmdy?= =?utf-8?B?WGNocXM2a04zOFdYUHJSbXZiTjJBVmt4aHFvYnZ0bk9hVlVOMnF4MkJ0Ykh2?= =?utf-8?B?T2NwMWdZVWJmaEd4QVY0bTJUZkJ0OElJd3BxcURRbVAvTlJuSlNpL3lNM2VT?= =?utf-8?B?cTc0L3ZqeFJYckJ4ZDFMNkVTcFA4bUNsNk9NSmswckxsZlg1UW5wTVdKbWZJ?= =?utf-8?B?dlREWFB4Q3ZsZDVOK1VYQVVpOC9SWHd2dXRvcHRnVGVkSncydDVRdlI0U0Z5?= =?utf-8?B?SG16b1B5NjRaNUdxOUpSdWRET29aZktCaHFmU1J3Mzg4Q1puOU5tYWQrbkIy?= =?utf-8?B?dXYyYm42eTdiT1ErbjAwR210emVmcDc2clFRTlhhSWxiME9od3hNdEJleVNB?= =?utf-8?B?bGhXcmRpcE14NHhtTE5tc2ppY1lCR2RMR2tFKzRrRGdCcFNWbytacVFEcVRZ?= =?utf-8?B?Uk9wbjBVUkVKNkNDN3JaRDV3RXhKRlhaQ0hzSjJ3bHJQMFNzNWtvcFdRaWN1?= =?utf-8?B?ZU14YXBrOW1kU3hUaTdPSW5Ma0hZSmczR2xQR2cyZEx1OHpUWXlGTW1jYVla?= =?utf-8?B?TVlESmtzU0RpeGtHTjVmQjFJQTJaREVoQ3lDVG5zTkpLT3hjd3lDY0pvUzFj?= =?utf-8?B?QWpFSlFIZnRndU1XYU03ditNNUFYOE45S0hEUWZEaFFlQmZtZ2sxQ3cwOVZ3?= =?utf-8?B?ZHpCZUVFTEZVOUd3ZzBrSzJvVjcvYitmQ3dKVGthUGtqcHlKV0hrSW9oRVUw?= =?utf-8?B?ZUFRRGk1aVpWV2RqekJNRW9IRVAvQXpwSDVQWEl2NXFrZzRHVTlvZnR4eGdy?= =?utf-8?B?c3dnRUtVc0VHcjhjN3kzVVFHYnJaUFI0WmF6QkN4SE1Ob3gyK1NXeVRsME5t?= =?utf-8?B?N1FlWGpzZzB4ZHNEdDF0ejN6eERTbWJOWmhJUzd6ckN3VDJ2KzZXMGUwanph?= =?utf-8?B?ekNhdFpjSFJrcmU1bWxNNzBzakdRdEdYcFA1ZWMra3hDaFNqakh1RkovbWFq?= =?utf-8?B?NzI4dWJnaTRXZW1ycmVkSzlTc1FJTlh1RmVPYVlCM1dhb0x3b1JQYjlSYzZ1?= =?utf-8?B?czRlS3NlQlZZNEpGNVJ2MTlsak85ZS9hQ3ZvMm10QWRRRUwyZitDVE1mOE1M?= =?utf-8?B?WENnZS9Ja2YyTUtMTkdxM1F6RE5abDZmMHVlaVhqS203K1FCcDl1VnRGS2U4?= =?utf-8?B?QTNzUk1ieE5mbWxjdmNob0czR0hWdjhtMzBpQmZiNGZqOUUxY1hHNGh6eHV3?= =?utf-8?B?RG9YRHA1TkcyWVRlY01vMzhuVExpODc2RnZjLzdRM05QU3V5T0kwOEFJd3Nj?= =?utf-8?B?d25hcDh3NllrR3BLd05GYTJpTnRoMlBULzN0QzNJRmV2YUpTRDIzZURJZldy?= =?utf-8?B?ckZxV0NndUkvZGt5RnlhRlZFbGtwS1U1OXYyWEVocVhQT1BxN2tqTll5VVBG?= =?utf-8?B?WUdjRGJBbmxGWHpFTUJ2MEFvL0xnZVdTSmtIL2w3czdHZnZaaEpWSCs1SlV1?= =?utf-8?B?WUpPM3VvT2oxV2pIWUdhUktmTlJUYXFPL09PaDhROTU1bDZtWHVzMzdkUHV2?= =?utf-8?B?Z3V2czk2NEJMR3o5c3JqTjJOdkZPbFhBZzdFVmRiWmZ3RkcrL0llaGZLUSty?= =?utf-8?B?STVYODZNTFV2K1U0V2t6UVhITWQyVXNRdFB0bjM1QlRvOEtMeC92QVlqT0cx?= =?utf-8?B?dGdYSEZLVTlWSGZqMXorOUNDMStTQVFER2NtS2JYQXkzcDJocGpPYXlzdkNn?= =?utf-8?B?RnIxVCtmTkVLam5LdnF1VWFLZzJzZWlUMHJma3I0ZGhCTVhCb0pmYnU3dlJm?= =?utf-8?B?QWliMUVLd3hPd0VxNG1zcTJ6NmFJMFNEcFNXc1NqNHdwcVVDdXVvM2RwT0tM?= =?utf-8?Q?Pt0e9K1Vn8AeHiFpNUQBm5kMq?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57974d45-023c-422b-d4f9-08ddf5bbb176 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 07:27:44.3434 (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: oonL3IOscLlc2O3bnezLTut393OAN2T3YXe79lM1mmPKpjBj6NLYTTk1EAfLdtlfWqYAsg6ZX/Tw+/QfTi/6Dg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10800 For DTR mode, flexspi need to use DDR LUT command, flexspi will switch to DDR mode when detect the DDR LUT command. Reviewed-by: Frank Li Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index a1c9ad03379682dc1fc2908fbd83e1ae8e91588f..bd61f951d6befdb78cdd84d4531= aab378a47c56f 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -559,12 +559,21 @@ 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 : LU= T_ADDR, LUT_PAD(op->addr.buswidth), op->addr.nbytes * 8); lutidx++; @@ -572,7 +581,7 @@ 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 +596,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 11:48:28 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011009.outbound.protection.outlook.com [40.107.130.9]) (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 1CDCD302769; Wed, 17 Sep 2025 07:27:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094072; cv=fail; b=OLIGf75GV+wEQQdG8RKaGxaouCI9ogbw19oSy8nWgsL4/VQpdDPIrubGsCHEOcvvBTrZfPKTLXFkQna471izjDCIAeMBtdjf0aT1g5oH3czoaFVMv0Iq2gz66jEqh5vvNd2w50Ft5qMtg+3aJKDsvmIZO4H5SZHt0y4ePhyG1eE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094072; c=relaxed/simple; bh=A7NvCJTXHjdqLiosdwIGrGa+tymxc1g72mhNEicU/8k=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=hTsLxXfUdC5c2/uZ9yyypEOju+xuogGYeRQJR9NMeqIuuQ68rV0KtxX8dWOf98DtVLIg/Jx4sSwSyXAi0wvNkL/WiQ+gqf+1MBv1rbuk815xRtw+CvJgLNcyjCQQ+AtRiXrBN5sp8jsV5L9r2gUN8K3VV2K9PsBzlVkQHts8PH0= 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=iGt3vROE; arc=fail smtp.client-ip=40.107.130.9 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="iGt3vROE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lZ6wOt2TeO0DREqRq/rk41GF9+vz89FQcKMaOVuurrSWDFKbENoUm49VQGtltbBhor+WR/cLfSjY/Ggx9LcrZiU1B+JXxBlN/KJ3tVMar/Xt116Yy/23n8vubRxEIGs9KXIuphW/32WImLofILZYvqGlZY/dbWGcxDv8caTekmC0tQfxrBqnJkG38Q8FkuWYjceHiZOaSudApkI1O/TPN39MdqVGE6D5Ok9hkU+ZlohVnpG73jcdFncXKT8w6auqUabkk1czIejQR0DrMIv0i3iAL1IQ3C7+0rwLccRZFVKX3EVjDlEyKwWHqTdJdeEuqevnI3hcOF2qps3qS6qadA== 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=k1mD60g4u2A6dtIFMwCSkUL8BCbvFKR3jK+PWGmyi3Q=; b=abhQ4lJr3WHLYaBYTNcd0b53Vn/YnU1xj7Yt5130TmxM4phFmyf84ZWd8d3fkQClCALNVttwhDawh3n1z6mg47l/SF/YYomnScpICulesNeDvFZqCZQk1sxt55l0ajN1VOyX32UAtXFYJgKzZkrGS0W0JZHZPTj6V5Gm7jnLhm8ZrqK6xYXc7wFe9j3uk3s6UUhwtf8QkoNAHFEB+EuV9QO/ZHNVZYb3rKINj/YjYtMx5bUEDtNtPAFRLYeSZOZI9EhG3vZLOR6cURfFxe49bAGvIx6E/suBvGotMBXAvyVDCeQNGQPR0+5UZHVS15ijeZN4WhiLZcqk8socFyICVw== 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=k1mD60g4u2A6dtIFMwCSkUL8BCbvFKR3jK+PWGmyi3Q=; b=iGt3vROEyMyaVF0goE5YqI2Z42DWwadZync02THMTyUcguDakFVO9/cwXbeOYwd33XXDJ0LOW949yZO9uXu/LDHPGmjbQEI6xo3VgOhcRpMFR7z9IYDvVDQZ6Ceryp3uwatu13vJjrMJC9nheFJjBiW1Yj/ZkWRg7muPq0vjzyRYUcuhrFVp5W08f85fmtbvcsdFQknTOhrFVIiQftIog9otYo6Wosen0ib+7x+lk2eO8xnrJMlOB0+tGnMVHOB5gGTqODmw9T5g5DQNJ4Nva7nxoi8ukMFdSBvbAXjs7bVMV123G5khfkLZ0pos4yYQtGGlMYd7eHJ7vqnmBpG3Pw== 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 GV1PR04MB10800.eurprd04.prod.outlook.com (2603:10a6:150:203::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 07:27:47 +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.9137.010; Wed, 17 Sep 2025 07:27:47 +0000 From: Haibo Chen Date: Wed, 17 Sep 2025 15:27:09 +0800 Subject: [PATCH v2 4/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: <20250917-flexspi-ddr-v2-4-bb9fe2a01889@nxp.com> References: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> In-Reply-To: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown , Frank Li 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=1758094070; l=4159; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=A7NvCJTXHjdqLiosdwIGrGa+tymxc1g72mhNEicU/8k=; b=0WpZ71yY/vEQCjAocrFq6Xe31QuqGcm07+12T/+jsp7jyranOkjXfZm200q0EMgV/YhfgD/j5 Pl5SwBB9QwUBA9cse3mjhx1R76Z0BzdDdkgU6LtdWm9l53s3BXrX0dc X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:1f5::6) 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_|GV1PR04MB10800:EE_ X-MS-Office365-Filtering-Correlation-Id: daf65cc9-828a-40a4-09bb-08ddf5bbb332 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|1800799024|376014|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?dkNiMEVXMjhwdUl5ZndpSUhyUCtwVUJDT0pPcDRlNFQzOVQ2MXA4anpVWmdh?= =?utf-8?B?V244ZThiWlZnSGJJRjRMWFhWVUI4T2V0WSt2SG1yWUR6SVB0TlBNZ240ZXBk?= =?utf-8?B?U1pHNldHazFWbEJaNEVXRGVwNS9DSDVxRU5BMWlmbEVVSkNaRlFEVnR5ZzU5?= =?utf-8?B?SGJYYXg3L29NZU5WVEh6ZGE4eGNGclNoL3BzZEZ0cjQ0MlZScWNqWmVCUWx0?= =?utf-8?B?RHB0NlNVVmI4YzNLcGdabGhoTVhFR1lMc1d6b2RXWlU0S3hrWkNWZDA4VVVi?= =?utf-8?B?MnNNdnB6STFkYzlXUGNXTDBRdjY1MDBReDgyc2QwZXQyWVJkU0J5NHdvMDhi?= =?utf-8?B?VnhOWTkzNVBJWmhIUm1zR1c3eFdjTDNuV1J1Mnl5eHVSL0pkNEljN093SXM0?= =?utf-8?B?RUtWdXBUeERFVWtCQ2VTYXhhWG1NNGZrbFFzakhSOGYybk9LbnVIQ3lLWUY5?= =?utf-8?B?SUdWYzZtOUJSNFNMN1hMYVVIdFNWOEk3U09qUksyTlEvY3BmT0pxVmJhZlhG?= =?utf-8?B?WjNKcVdFcGdzelFsQ3NqRllVc251cjlVb2FZUHo2ODZrSTNqaHdsdmV6QnAx?= =?utf-8?B?QXRVamR1dTJGLzd5WTR6Y3NtcFdJMEtwWHNkc3NNdHlxNFhPbzZzS25vdHBE?= =?utf-8?B?blQ4eHd0aEI3cTV1N2NuZTJFRmk5aGZKR3pSQnpnN0hpZmRTQjBXT0N4Ym5z?= =?utf-8?B?SHdRNldvSjdZSnJueXNQNGM2TVFOVWswcTBVSFhsc1l0bXBjSU0vKzIrS2ZJ?= =?utf-8?B?c0toaVRJZW1raTlzQUFCRjQ2dHVEU2NzejhUb3VwTzloNnZyZENmLzM4eWd0?= =?utf-8?B?elpPU0NTRVpIbUY2UGpmU2Fhc2ZWZzcxSHg1NUFNQUN2QTB6cTY1SXZkL09I?= =?utf-8?B?VUswcXpJaGV1L1E5dVpxY1lUZWZJTXBPS24yOW5TZTNDNWcxV3BrTHZhNTJN?= =?utf-8?B?ZGZjYkRKZ1hxdndSZCsrUE03dGhjWGs2UkRNeFhFNCtmc01lcHZXNlRBTlA0?= =?utf-8?B?anpmY2xXUWNYaUx1dGJkcmFnaTFWdWlZSWdIM0xibEFTREh3dWNqTng0amE1?= =?utf-8?B?VGVLMCsrMy95YVZKVDl1ODhSRWRnQ09lRUJUd1VhMkRpYXNSU0gvUzcySU1x?= =?utf-8?B?NWgxRzVsM2JYbDRoaVZndzhhWkNWOFVOT0ZEdHY2Z3gxbkdoSGFVV3FqSTRR?= =?utf-8?B?a001UXBIdmd3cmVZNkYzKzJPLytFdER1RWxXWnFYNzcyVDRUQm1WaFVQNVor?= =?utf-8?B?T3RxbG9wSm40Tm80blh5Y0hZY0JRRG5IWVhpQ0ljV3hiSWhrRjlnZkp1d1RN?= =?utf-8?B?cXViakt3UlRlVnpaWDY2SnFhK3hteGFvN3FzaEV6d0hRcHlmVERrZlhwZmtL?= =?utf-8?B?NXc2dVdwbTVlMjd3K0JpbktUYjFtWUt1UFBTZnN1YjIwa3VWUVlYTlFTdTh1?= =?utf-8?B?UFRJTzVhTzlUU0dBaGp6clRrS3p0VCt6OXhoOW5QR3E4OHBjTHBXRkRMbXQ2?= =?utf-8?B?NFd0TjZxTnhQN0Niam5tVTZ1RWtCdGlkWnMrMjJHMmttTklKbUZBRmkxWHVv?= =?utf-8?B?cCs3akRxK0E2WlZFVWVoS3ZNUEczZkxYbHlzd1phL1pMUU55QVd6NUtCUWFm?= =?utf-8?B?dXdDRTA3bXpLckx4MGdPaEhRMVJwSjhhSTIxR3AwR01wbWpDeFNpeFY0aElz?= =?utf-8?B?WENQQi9LNVJ6RXBFUWN6YjA1TVVrZVpLejQ1cVZjSFAxWTBOcm5QdU1UVXAr?= =?utf-8?B?T3pYd0VxNzAvc3E2dHNZY25uRjJ3OGp2ZjAyVmNvcTVRY3oxalJEdkM2Y0dF?= =?utf-8?B?SHFKNndWbG1pZ0ExemdqOVJNeHd3bXAzTzdiMTNURWI3Zy9CMk9kNFdBYlF1?= =?utf-8?B?T1N2ODIwbDJTbHN5WHlmekxoMlJ0Zk1UcGdDL0tmRDhrR3pxWjQ2c3NzYnVi?= =?utf-8?B?VisyOUhzOVVKT25YaGpCTVFKMmYwY1ZQT1RLc3d0MHE4V3ZmWHlHMm5VaW5P?= =?utf-8?B?N0RkZm5SQVdRPT0=?= 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)(366016)(52116014)(1800799024)(376014)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a2M3QmJiSnlhdDIwd0FTb2RDME5pODhObE5ySUtjSFZtMUdFT29vK21oTitI?= =?utf-8?B?aVUraEZrbEkyWWRnbWFESU1XZi9CQUNndUxPWkt5OUR6aEZURkdxa2tOWjJ4?= =?utf-8?B?dU5wZ2p3TlBXVDV4dGJIOW83bDZ3cGpHN3gwZG96REN5eGg5UHI1aEI3Sm43?= =?utf-8?B?WHJFaXZRZldvWnNWWW9Cc25MUVlUdnY2VHUzQjRkaFdwQ0NEOGhpZEhaUUlQ?= =?utf-8?B?UFU1U0NhNG5kUldXbGxPT0lObVN5Mm9va1NzZVJwaHcwU0Vid3RLTEh3VlRi?= =?utf-8?B?Wkh0Tm1mNDlwWEZBZjVBbStDQXo4RnpTdlFjR2tiWjUwd1c4MVRZNGh5UDNt?= =?utf-8?B?d04zdVBLcDFoYjl6WHptZkgwckx0WlRMUU40MEliZDF3QkZFc3NhejUrdGY1?= =?utf-8?B?eGRnMDIybm9HcTJad1hKTmtCbFM5R3p4dmQ4SkI1TG11K2QzOFU5bm9GQVhK?= =?utf-8?B?R0VlZmtxUjh4bDdUZkF0N2NoU3FPUkk4K0pNb1pTdnlQVFVJRnYyM2o4dFJo?= =?utf-8?B?SkZ3VVhWTHNJSlZGbE5Fbm5OSW54TEU3aU9JZElyVi80NWoyaUFqNjMzWTB2?= =?utf-8?B?Y0N0SCtWRG5FaWlhY1U4V29lYlpEVk5RRCtjS085QmtLeHd3ejZwaVB1eUlp?= =?utf-8?B?SWFOd0R1RE03VGtZVitrNEgxZmxiUU13YysyREU5YmVLZkJOL0cvblpHVWlr?= =?utf-8?B?ejRsbWxvSVVqUk5Xa1htQnU5aVJQM2R1V0I4Q2R6V0ttYURLUkVSaXJjSzNy?= =?utf-8?B?QTQzS3pqR2UybHNJd1NidWFmemhDRjRsY3VuWG43enF2WnFRWWhzcXJHRWxJ?= =?utf-8?B?UU4yUld5TkRuNHlXZkV5ckZNZ0F3RVArR3c1T1A0UGN3bTQvajJ1cWdRbW9H?= =?utf-8?B?UVV2b3E5YkM2MXZETUtYbnRZQTdtNDhnRGtMSno3blZScjEzVVg1THlEOGgw?= =?utf-8?B?TWZ5NXBUWU9BSmZ6YldrSDZ4VHZ1MnBML01VajlFSmpSQUhVR0JBdklqVHhh?= =?utf-8?B?V1RZKzdZSmpYMFM4RzlnNGxER1VmUEliLzJmc0o2dEV6Y0diQkpneEFhRlAv?= =?utf-8?B?SCt3MXBKT1NsdTNHNVRWOTBLVmQzNWtxSnZWbTdTVmh3dFErUDdmSzJsNUk0?= =?utf-8?B?UnBhWTRIdHZkWXdCSS9FYXNiOVJEL21QWnBnQTRzaWx2RlUzdWRmUW85UTdW?= =?utf-8?B?YktjUURKNGRYZXJrQ0FSZHdyUytGVzV0T3R3TlZxZGNteWF6dTJLTUJWOVRr?= =?utf-8?B?b2Y1NW5JcjZ6V2VXM2hhemRmM1ZwNlFNR3FTVXl4NWI1OVlpQ29RM1V4cDZ3?= =?utf-8?B?NVFHYWpUTEdzZ0xqYUhaVnFtWnFDamFaeElpODlFYTdNejJYMnAwRE9uVnpG?= =?utf-8?B?MVlxSUdlejg2NzZOdTdTODNwN25rVXZsVld0MEZZbmdaR1hLdFg2dm5mQ2li?= =?utf-8?B?dGZtVmxqWkdtcVNMZXlHeEJTbFpJNEkyRnpLU3MzTmxLZENma241amJCekJX?= =?utf-8?B?MWY5UmplVm1FV0dpU0pJWVQ5WGFPUnpVb3MrcXZDZUE2dmJoY3N0Q01uUXoy?= =?utf-8?B?UmkwZXlIVjZxQ3FHMjFTMlFuQ1ltUlZXNVdJSnpaOUwvOFdwNTAwRnhkd3BH?= =?utf-8?B?bmNSbFVvcWswVzgwWWw1YVd5QVBHZmVMQThWMWt1aTNmeU9MSi90YWhzSkx1?= =?utf-8?B?YkY5WFV2eFpOOFh6ZldsbHBoSDgxTHB0bmVhbHU5ZTl0ZW5jSUxiSFgzYkJl?= =?utf-8?B?SVh5RE1za2R1RnczSjZSRDE5Nm85STdVaVNUMnlrSnl4L0RSSmdjcnRKSHlo?= =?utf-8?B?YTd4YnRDY0g0TWdoenNZN01pK3cxdXRkMUZxMXdOd240L25DbTRESm9EZEhH?= =?utf-8?B?cmxjR1MrZU5ZeWRGUlA1TzlQaUZVUmNKUnFPYk9vZ1B0WkhaVnJCd1UrTTRK?= =?utf-8?B?WTdwa2daU1dyUi9mbCtZeHdrTXQ3TDZuWEJhdVJyWFlCMTJqRE5QRDJWbE9o?= =?utf-8?B?UEZhWE5MMU5LM00yTWcvTERqeXlmMzdERGFqOUtsdk1wMWlMYk5ESnRZUG8v?= =?utf-8?B?NlI3c0xjeVp0ZWtaMUdBVHNQUzBuYWxETDh0MzBOb2ZKYWJDQ1crZEVtWi9u?= =?utf-8?Q?DL869PcBcZgG9u05zK/wDFjLG?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: daf65cc9-828a-40a4-09bb-08ddf5bbb332 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 07:27:47.2473 (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: Lde3ke4iQjhFvML9BzBKSk2xO7Je+9+QWihfQn2+9hmMxAe+TnS4Kgds+7Bodn2isJ6bATfTzitsBQqWHykB1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10800 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. 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 Reviewed-by: Frank Li --- drivers/spi/spi-nxp-fspi.c | 56 ++++++++++++++++++++++++++++++++++++++++++= +--- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index bd61f951d6befdb78cdd84d4531aab378a47c56f..d25679fafad7a94a7ea2a79d7e3= da53f4939c9fa 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -399,7 +399,8 @@ struct nxp_fspi { struct mutex lock; struct pm_qos_request pm_qos_req; int selected; -#define FSPI_NEED_INIT (1 << 0) +#define FSPI_NEED_INIT BIT(0) +#define FSPI_DTR_MODE BIT(1) int flags; }; =20 @@ -655,6 +656,40 @@ 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. + */ + reg =3D fspi_readl(f, f->iobase + FSPI_MCR0); + if (op_is_dtr) + reg |=3D FSPI_MCR0_RXCLKSRC(3); + else /*select mode 0 */ + reg &=3D ~FSPI_MCR0_RXCLKSRC(3); + fspi_writel(f, reg, f->iobase + FSPI_MCR0); +} + static void nxp_fspi_dll_calibration(struct nxp_fspi *f) { int ret; @@ -736,15 +771,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 */ @@ -761,6 +799,18 @@ 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; + /* 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; + } + nxp_fspi_clk_disable_unprep(f); =20 ret =3D clk_set_rate(f->clk, rate); --=20 2.34.1 From nobody Thu Oct 2 11:48:28 2025 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011009.outbound.protection.outlook.com [40.107.130.9]) (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 6534A271468; Wed, 17 Sep 2025 07:27:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.9 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094074; cv=fail; b=OPSfpyWz2XAyu622DDw62CXHklNuCep6o55PYXwqXyb5ztbHKqIjOUjmwMzJIV/KM4dOq49hPhrG61d1k74EMeso2xfGHrNiQWKFvnOveGsLGvlr/3jOFTJg1XJiTfa8UG4ujAzZmXZXhgv0DfmwhIFWqLr7oZLRlemBvR6TJHM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758094074; c=relaxed/simple; bh=+aJ92F3gnNgw/1jCe1LYU2CFm2OJgpxxN8BwsUKbwY0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=qoU0hX54A73PGHZuTX8hkz3tnbbDZU3gkbqtlQyISVOUuhZyDNcZDSwHf2Nf26Ky0m6caJYjoQaGE+6dqNYuEuDRtABylLW1NgylnAdwCnvavGtPFZ2UeQ8TupK0Ze3mE0OCI4iMYzoPSr9Em7VBfAbZ5Nf6sWpNFrwonTrl9aE= 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=YHY41hDE; arc=fail smtp.client-ip=40.107.130.9 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="YHY41hDE" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WYwbTxBZ4uR6JH2Ppj1w4pJRLdsIYYX/h4rKjpR9qwqx2T4BKtemD+s6kMfQOxw8LJG/i0yHLliqzIKcZDqdXpGR8FYNmwufQUHZwiqmqndrlLYATac86ESU1JKSD+bkISaIvwhUvZhIOtaTdnFCxN63LtyH0KPYTA2+mtIpxj39pCMFvnh3ZDfxZIRlhS81VRUcctxIqcfAthS7uQbxwDADTTZM5Ya9fdWm069jkMHghVg900q9fyp/YVlyQulBdyeIt7Ly6VhXmKMiZYvD6KqARNZNl9xzwFXgmKMBuPlpQmezYkS2q8BpWtuH0I0s6YkavSdUJqj0kpWd72AAMg== 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=2jPe6vbW3xMGag555bqGSeSR94VvjTg6eNt7zQ+0na4=; b=PR28Vr3r+tdtxGJ01FtMoQnepnXaNJKGzhlERea1qEq7W2ERzMdUnXAAKqEvPzfKoyEtPgjlnwzs1pdMJ30N1pdCcX3ZFACsadQKHfbFP3SpT8oWuyKlLukPDNg+3vz71QbzbH9ZXTr29AolIKl0yZqrY0GNkEclkW9fRfm+262V9/LNtSpFURkYjvk1Zswy5+8O2l3rCRhBTfShZhD/eRedazvS10/xwEf+hEYX3sXgpL4Iy1+Lc6MLeK09WhBteQ6NHfpJSyKbWUjwr+A9XFqLo/thAWE+LELz8VNlJtwrQ2kE0OtPBPifN8hI+wxhsnPU7AqhwhybvpycUHrbOQ== 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=2jPe6vbW3xMGag555bqGSeSR94VvjTg6eNt7zQ+0na4=; b=YHY41hDEANe9jBwgtHuBj4Qa9gOfICAZMQjH7ud9ATF4sY7p70DJ4lIfvGEnJf4vmYGE/EcBmtVxzhhIDNfx/Dv14LVnRIxHiCKAgxA3XwuU9jNqqcRuGtiFFq4ULHj+Kau2U6/FA/JtQ7MSxJgqRecYFtEcHspEbF0hI+LGGTQZGlcCS6EeVhEOGDCU12523dL6lnT/yJBf7Gl07THhv7HJqC4UkVpvtO0YpdMjcjncUQDMIgETNH4jM5ACuptosVzJEO2uOYTupcAWLOJD7Fmj/KRF3RVsWzO+UvAeP5j1NY9HfjyCOa0Ttqgtd4wuh4gFE8NztrxEFsKy/bmSUw== 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 GV1PR04MB10800.eurprd04.prod.outlook.com (2603:10a6:150:203::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 07:27:50 +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.9137.010; Wed, 17 Sep 2025 07:27:50 +0000 From: Haibo Chen Date: Wed, 17 Sep 2025 15:27:10 +0800 Subject: [PATCH v2 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: <20250917-flexspi-ddr-v2-5-bb9fe2a01889@nxp.com> References: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> In-Reply-To: <20250917-flexspi-ddr-v2-0-bb9fe2a01889@nxp.com> To: Han Xu , Yogesh Gaur , Mark Brown , Frank Li 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=1758094070; l=2074; i=haibo.chen@nxp.com; s=20250421; h=from:subject:message-id; bh=+aJ92F3gnNgw/1jCe1LYU2CFm2OJgpxxN8BwsUKbwY0=; b=wasocU6rYgQVf6YX4dsrjUdX64W4eqt/bM+n/Q1aVR0RpUa5x/VkNXlLYvp711cpcQmSE/pRd rubQzqQU4XTCNrZSBwbvKUDN2OagpdLlVoK4lK4eHtZ06Qo36FLMuUO X-Developer-Key: i=haibo.chen@nxp.com; a=ed25519; pk=HR9LLTuVOg3BUNeAf4/FNOIkMaZvuwVJdNrGpvKDKaI= X-ClientProxiedBy: SI1PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:1f5::6) 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_|GV1PR04MB10800:EE_ X-MS-Office365-Filtering-Correlation-Id: 66c75660-85ad-4cfb-d453-08ddf5bbb4f3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|52116014|1800799024|376014|19092799006|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?NFZPRVpoQTRzK0o3OXhtcnBqVGYwZE05ZUswMUhXamZBK3Z4U0lYNkpocDE3?= =?utf-8?B?aWZWaXBZUjR0aUdIOEZEZUMxWitUZGsrYTY0RDdkdXcrUFhOUTM2QTNUQklJ?= =?utf-8?B?OE1XUi93NjFrenpIZkEwdXVhUWRVUHZPalg5Y2RKaEw5ZCs2c09DeDYxMGc0?= =?utf-8?B?eDF3b0Fra2NBT1lUUGhGeWo2QUMzVE8zNCtnVDYva0NmVmt0MGIzcHozSy9R?= =?utf-8?B?UkhxV3pvRjVVK2hZTk9BSEFOR0Zsd1JnUmtMOGtSRWNsRjNNQldvWXlvdGZU?= =?utf-8?B?RitaUTBKelhzbktQa040NW05ZXI5cjRtMndvdkJNMkNVbFZiRkVldkwya1I2?= =?utf-8?B?dC9ZWStMbDFyQ3pYb1NxeXRybFBLSVloQ3BKNGF3Q21jU09lTVdCT2xKeWtL?= =?utf-8?B?R0JYaVVhUVpKRlJKT2l2S3plQXY0aDFzRTRKODRoREVMTzIrZVp3YnVXbDBt?= =?utf-8?B?bmErWUh0eFB3NzBIa3ZWaS9nVnd3SjhrNnZRM0tuTndqc0xVTS80Q3o1SkNN?= =?utf-8?B?eGRNNW9KV1RvVVBacFl5NC9SME9JUDFubWJyMi9UTGhjV3dad2lGZ1BVT0Rs?= =?utf-8?B?S3M0TDBkV3VsOElEbXVXZ05kQk0rTkpMc2lpWW9Xc1BrSm1hbytJTHpmemRT?= =?utf-8?B?SHlOSk1hL01tZGQ1TXVLRURaeDlSVEp2clZRYitVVUhDNUl6MEVSQUpaT1dF?= =?utf-8?B?R01ESWExVVFJbEJZL1ZJZm53TGxXcGhmNjF1bEVlZ1JkMzVtV09ibklYV1BB?= =?utf-8?B?S1MyU2Jtd1JFWFVSdEVPZjgrVGhGbEdhQ3l6V0hpTXJ3YldBbGh5b0hVbEJh?= =?utf-8?B?czJIVW5wNUJ0SFZTbDd0YUdHd0kwaDdMWVFDNnVKdEd1VjJmYnBtdFdRYWFD?= =?utf-8?B?dTh3OWllbXUyU3VabUFSRVFVc0dGVGxZSUh2QUk3RVlOZ0NQUUpycU9aUUhr?= =?utf-8?B?SmxJV2RaV2tZV1MvUDdBbVgvZHlmNTZ2cjVGZllpUkpZcmowMjlBTW9zMFli?= =?utf-8?B?bElhdkoydWhnK1paK3pDYWFQUGowdTRRME1zZmF2bGg1WXZUNjZ5Zzh4N1Zm?= =?utf-8?B?OVdXZit6aytucDRjNXBxdDNkNGZGNnVjdlQzOWU3U3RCWnVMUjVCU05yUGI2?= =?utf-8?B?cHVsSzJuanRmOXVCSW1vbDY3MEtQQ2huajNMWS9WNVJhUDJLU1N0OFlxUmhy?= =?utf-8?B?Z1JDMm03ME9JWng4bUQwdXN2T3ZzWWQ2ZTNKcjVKSUxKOTh3U0V2MnBwMmdh?= =?utf-8?B?Q0NOZDJ3VVJsZVUyMEN6VmI5VU9FWEdURTMzN0NLZnZPV3Z4Vk1YZnpxcFNo?= =?utf-8?B?KzRJRHVzQjVNRmIveWhsNkIwblpnSk1ubjIrZ1ZxL2VYdXlzbHQwTG1GUWtw?= =?utf-8?B?dStjb3BZWkg3S093N1hFMnpKVURMSmtQNDk1aXdhOGplOVMyQ2hlSXdNRjVW?= =?utf-8?B?OWpzNURUcnVyWmY2WFJ1WUdZUXREc3B6VEpweUQrRjJxNDJ6SHpsWTJmY2FQ?= =?utf-8?B?Tk9kNkdWRGp5UXByempvSTQ3SVQxbFJxVlB6U1EvQTdRYzZ3WWZoYVhZVkN2?= =?utf-8?B?NzVXYjUvWlppU2lkbUo3VmVDaExMSzZxQWhkTFdrOGI5TWNYME5CbC9XRGd2?= =?utf-8?B?cVkyYVZTODhwSkpqMHBjVCtSWlNQY3MyZ3J4dkVGNFl2cnp5VUw5YzEvWW9k?= =?utf-8?B?Mm9uU2hxcktBU1J3MTRmQmhoaXlJVW9Pdzk5YUhHYWp0OEhjckhyeEpueG9i?= =?utf-8?B?Wjh2eEZjU3l3cXdhRHFkTUgxUXpkMW5ocS9MaUFUUHh1UTlMMEptMDllQlkx?= =?utf-8?B?RVRuOHpxeGduQlJVSlY1M2tlNFJYZzd3TG5nQzlReU1LZm5ScHZGbVVRZXEr?= =?utf-8?B?dlBLRWlYejJkWTZHaUF4c3ZlMUN0dnRvbHFjbVZ4VlJJNHVRWWxOYmZ5RTJY?= =?utf-8?B?WXdESUdOL1daR3RWMkM1VUIyQlZYYkovZTl3VER3S3J4UHJROGJIY3NHWkc5?= =?utf-8?B?NVV3WHQwN1lBPT0=?= 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)(366016)(52116014)(1800799024)(376014)(19092799006)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bWJxU2JJeFVESHUvV2hkMUw0WTByZ3pUWGowQkdiR1IxdEd3RHlTdld1bDRK?= =?utf-8?B?dktwZVp0aThVaGZ5SnVLeXUzeEl2Q1ZtTnJJSEtGSjJuZGdmR3JWTnQwSmpD?= =?utf-8?B?d3JNeVdpYXVIdENBQnFrZG04Ri82MDdxTFZ5SGtBVmd3bkRJN0lnSFhNcFlQ?= =?utf-8?B?QzdyNWtwd0ZWUFcwR0VRNW5hRmlqNkUwZ1BnYTZmTVgwYzdCOENtWDg5WktJ?= =?utf-8?B?bjFZKzdtWEJTY2haQnMrb1labEtjeWUySjM3dW5zLy8zM2dqVTczcmNEV2VG?= =?utf-8?B?WExLMzJrN2oxakZjQlBsczViNmlTdXR6cmVpMnhHU0hucnBZWmMyQWIrNlg3?= =?utf-8?B?M0lvSCthalFkczdqNlFSUTVwVE9zeEtqYlV1S0JXRUpqRDBudmNhMVc3cGZl?= =?utf-8?B?dGVTUmZTNVd0Z2FpWndVaDhXMmNtblBpZ1NwVU1Hb1RrTUcwaVZkSlBkcitI?= =?utf-8?B?WVV2c2V2ZXhVSGl4NW1mNC9wLzZNSzhZbGVxSW5tY0NCOVB4V20yeVhlVklz?= =?utf-8?B?bHkvMklHNWRaclVHeGh1Yk9ONTdGbVNKY1NoWS9GWGpwc0xHY1pyaUV4NGdi?= =?utf-8?B?aWlHRjYyNjREaEwvZy9QTnVnSkcycEl5WnRzd1VHdndmMlZFOTVLTHg3SEVx?= =?utf-8?B?dEdRQ1MyYURXWFI2eDNsSWZDc3gxR2dXNHJ1S3pzUnB3djhLVVNaNE5SanBm?= =?utf-8?B?WFFDUnE0akEvSXdhcEFCbUx0SWhHTXVLNnlpbSt5Nndjbno4ZzYvRDMvelJZ?= =?utf-8?B?SUtKMHRrNDkrQUFoVmhzc3lieDV6cjBkZFRYWkJNdW5VWmMzMVFqV2V3UzQy?= =?utf-8?B?RTYwaUxpcnI3d0ZnL3JuVzU3TVFoTnB6eDRRWVMvdUZDYWpBM2pTRS8zS01H?= =?utf-8?B?end1WFgwaWM5UzM4MFp4aGh1VTlVQmhLWWRZUWZ1OXUwVktaYkdjUHQxYTVY?= =?utf-8?B?Y09lYjlGMWpiZVBiWkVtcW1LQXZxaU1kNTFvWlBiYkYwdlkycG5nclFZVmk2?= =?utf-8?B?ZytTU3AwZGt0TmtycDNtYlA4eWgzalNmRjJ3bWZXclczenluTGZLQnYwY1ZV?= =?utf-8?B?bGE0c2ZwT213WEREcWMwZUg4QnlSTlRTaGE1NkR4RGVFWkV2WUpNNGo2aWFF?= =?utf-8?B?aE9IQ1A2Nm1KeWU1RitKYWJ0Y214ZUo1TENQMURDeXZxcmZKV05PTU5YKzJa?= =?utf-8?B?eFpNSUpkR3pLRmxJY0EvM3dTUG5QNmFIcXp2ekRtK3ZLdHpja1k1UWJ1WWg0?= =?utf-8?B?eDlVQndXZEtrVTJJRjBCQ1hzMjkyeDUveURkWDJGY1pWOUtZSGRUcUN2dGNG?= =?utf-8?B?L21YQis4SWZTY3VzampGMEJvZ3pENzhHNjdnVjZrVjZJVmhqVjh0MG0rNDdk?= =?utf-8?B?U003ditvT0FaSDZ3V0w0KzZiNi9oV0g3SXRidUZqcURaVmw4cUhOaXUvVnJ5?= =?utf-8?B?TWhsNkRjQUN1aWhMMS9QOVpnaWhLN2JZVW90d3VGZVZKNjRJVjFxK1JGWW03?= =?utf-8?B?KzB5ZWhLbkpocXFSM0Q0bTFlcFAvUWRRZkdPRlFnTHAyTDhrV2RVbE83S01V?= =?utf-8?B?U0JFTHo5WTNXSEJTMzlOZU9TZ3FQNnRqb082WHBPTy9oVUJ0TW9vOGUwSVZN?= =?utf-8?B?empPSEFOZGpiemI3QXlPRDM4Ky9icC9Tc3ZKZ0hJRnJvOVo0aGo4dkMydWhZ?= =?utf-8?B?anFoendLL3N0cWhHZkhkWlNRakZ5bUlBUkg4akt2Z0lSSUhLWUV2K0ltdWx6?= =?utf-8?B?VEt0ZVN3ZCt0aWRFdDFKSFVSbG91Y0gzZGJBYnU0cGMxOG4rNE5JSGlHazdy?= =?utf-8?B?ejl4M1pLazlxTU5UN1paTDRwaTFHL2NKemdkTnp3QkxyMkt2eCtGNVYxd1Zo?= =?utf-8?B?MTREWGZCUzJKL0hGbWZqK2R0Sm5VTXhHRFJHelZxSWdTQjJJTVAvQzN5UjI1?= =?utf-8?B?U2NnOU92RmNoQXVKNHBNWk1HZ2FUeGVBeVpCNFdXejJWVUhtQzB6Ni84OXNp?= =?utf-8?B?SldZZVprS2lLdTROMGdSSTdhYXUwSUdhVVFId3VFbHFMbDQ1bk14aXBtdmdx?= =?utf-8?B?Y3RhZGtLSnNmYWxQUXJkSnY2WVY1QzZuWHJOMmdtQUFYaEJVKzhud3QrY28v?= =?utf-8?Q?vpPHedBGxHY14pr1ci5taRCqd?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66c75660-85ad-4cfb-d453-08ddf5bbb4f3 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9496.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 07:27:50.2710 (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: szw+jXv6Fhzyl2yWBTcg/CjgwqEJc0Zk1ycsIf1IqatcEDFrr4MYU6gD0sngj8OxmyxJVrkpscF63ispai6kHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR04MB10800 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 Reviewed-by: Frank Li --- 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 d25679fafad7a94a7ea2a79d7e3da53f4939c9fa..f9371f98a65bdc7e5eaa612c077= 0a6228bdda364 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 */ }; @@ -1231,6 +1233,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_disable_dtr = =3D { + .dtr =3D false, .per_op_freq =3D true, }; =20 @@ -1346,7 +1355,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_disable_dtr; + 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