From patchwork Wed Mar 22 09:04:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 13183693 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37E15C6FD1F for ; Wed, 22 Mar 2023 09:03:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230025AbjCVJDF (ORCPT ); Wed, 22 Mar 2023 05:03:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48316 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230027AbjCVJDD (ORCPT ); Wed, 22 Mar 2023 05:03:03 -0400 Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2083.outbound.protection.outlook.com [40.107.249.83]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06AB47AB9 for ; Wed, 22 Mar 2023 02:03:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T+P+Js/qI1FKtX2/S3hLeEtEGRNbBShV1hgt1SHogaBSgbNeCojzzZx2pxlALaCWd8HIJqclO+U72XQ9WTLLo57D8J2Wu1039dFIQHQ9odhC/Gd3v4/ioliLd0pG4pzIft9aK1RbtTjAPRLOnjeC3AvMg2G61EB3qwrS6eESOeWHrqxiTV0xGd94CS0ahI9Ji2hmGKp2pLE0y1UtaYfHBkHdec+4yAmHpDpFGJHECj6JgSgG6E/5LCQk+BnFphYZxGKuJdVbVLkyTX7sBum5vhr9XPXlcWlspOPI/Wg4zJTOjtomc2t043f2jqPQEXOkTgNU8JhN1y1i0X70NwMYEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=COreK4QkUSC3LxZV5C5SpoXHE1O86YcSNE9ukcUbjmE=; b=EUV5OSpT6g9fmnULBxgaOHV9HJgMmjnPYra6xg3JYBrDZQOigJaCLub7v9CMB/Nrcv94GYx6MyZFyVAVLrS4Osp4XvZRwZyZWzc6gws+h9J7UlqdZrC3DDnAgnFjO9S/qcg3PIfy9Y32C4JkMQf7pbp9wDmZABDoAaW5CbZC9gVmHTL/JQwOSUP/j2RPDpp5NbSy5VHCaiJ+BLN3YupYpoaZyyOYzfJXhT4MAyehD+t1vH203W8c6H9YE9rAwrAtV9aZNL/MUghQyiq8RO2gll/VDL3Q/BObeqZPvimzkP1l09oZ8aAVEY125Q3jMwB9zQY6qtFlQd87FLNA6010DA== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=COreK4QkUSC3LxZV5C5SpoXHE1O86YcSNE9ukcUbjmE=; b=Jcu4u2c06olMqUCXxOEin5pHyK12Z0Ou9Jvza77s1lsgnoXbKSWGNPz+ddmGsQDFC8dfKqdJoOFd1qS16fYNbtfOTUSayBUjEUrkQmK1cFJkt6yfigNpyPqFic5jwbdxwq8KZKf/f0kmKRNlqpLxFsrRWWmVKvo+AU9ULbVTvWs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB7PR04MB4010.eurprd04.prod.outlook.com (2603:10a6:5:21::30) by DB9PR04MB8123.eurprd04.prod.outlook.com (2603:10a6:10:243::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Wed, 22 Mar 2023 09:02:57 +0000 Received: from DB7PR04MB4010.eurprd04.prod.outlook.com ([fe80::df09:aca5:4487:9fcb]) by DB7PR04MB4010.eurprd04.prod.outlook.com ([fe80::df09:aca5:4487:9fcb%7]) with mapi id 15.20.6178.037; Wed, 22 Mar 2023 09:02:57 +0000 From: haibo.chen@nxp.com To: broonie@kernel.org, han.xu@nxp.com Cc: linux-spi@vger.kernel.org, yogeshgaur.83@gmail.com, haibo.chen@nxp.com, linux-imx@nxp.com Subject: [PATCH 1/2] spi: spi-nxp-fspi: correct the comment for the DLL config Date: Wed, 22 Mar 2023 17:04:50 +0800 Message-Id: <20230322090451.3179431-1-haibo.chen@nxp.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: SI2PR04CA0007.apcprd04.prod.outlook.com (2603:1096:4:197::19) To DB7PR04MB4010.eurprd04.prod.outlook.com (2603:10a6:5:21::30) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB7PR04MB4010:EE_|DB9PR04MB8123:EE_ X-MS-Office365-Filtering-Correlation-Id: 82e63515-7b29-4a79-9621-08db2ab43a65 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: M28xyKDyqZU86m0Gg7VkCZ0gxVrtkaJx1otl74NyHmIk0iDH5nuZCjQAxUhx4jYfbKNBHRXXnj4Sh2nfvQjyebnC9afpbfvGF2WHZlMo9bNgCO4zaKhpvFa9sBUkiQDd5jnct+ql7gYIp43OsxnctXOnlu1ZYsGCno9XjlCK7npUoN06CWbmqfWL9iwHr/6nlk3If34Dv11HKZXzJIJ2T2uJ34cjPoU8DlZxf0fMjWhBEV2h5NEI0zistZ3+gsNZGwqro07RGs2Bvtv9rBFxL7yvDMWX6jJVLg3W67i0eXdE975S8FWo3ThqgAtCFDNxBeFMl9l3Ml7kUA6ox0m7+XSf8x0Bz/yiwKyWxUm2xMXX6ATDNSjqF6ly7SQMoG5kQwvPvNjeByGWLOlQnagM6b3I3erQSo+46n+PWQLC7EYROqm/6WxRnHzuwrvM+2Fe85Et6WNCLQwlDz4m35Ebnrze11Moc/GZkvrh/VTqo0zULMgYoTXUgMqdYW0e0RIZSgxfjOMbbM1sRejoj1UJqxBsthgyJdqqUbkwZYCecafYx9vOStrzsGRpDsKb4Xc8iPXstwSVAJ2IWNV7NSIEvLSIIOAeMtADiw8dlExsI4emXzIzXi6mD+R1WW4VYd9g9srt9gYQ09Yrisic/Hjudg8E/MZ4hIk6s6Fzj1mneSbJ+iHXI+NuZHIMBdSBQxl7HD39ulfu5ZLD/cK9Ye3WVw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR04MB4010.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(376002)(39860400002)(396003)(136003)(366004)(346002)(451199018)(38100700002)(38350700002)(86362001)(36756003)(66476007)(66946007)(66556008)(8936002)(186003)(8676002)(6512007)(6486002)(6666004)(41300700001)(1076003)(9686003)(4326008)(478600001)(6506007)(316002)(26005)(52116002)(2906002)(2616005)(83380400001)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8pDH6hoR9O+4gbna7+YZItnQ90+oaen+Z83iOagmF039FXiFXU/+YT58Edl1MvlMtR3XZX6VEQnZ6ebSeFy8GD2cunhMJGalrXC10qpt/Hy/8NZKzQLDq1wS7/pDvhzh8EDLVcUkvvGzHJ73AB6pYXFI1sUZuP4RTSa77koGQzHH8ZvLVbKI20mjS1ubkLl5p8rNXpY5AwDfGvdFAnofRCrgyAOJ7mFpxmV6rWZoBpiTGw8y3n3oJoVQGG901qs5IsX5d2Na1LKaufYQZHr03eQ8TAlEt1pIZm1At//7iYhXXbAlVAxpvHhC+HiVPWCif5s0/pzCCfLgTx64gZLxn4tLEQtmRPGiHZo+GFoAQi+ttzV7UexYiq7V9agCI8JihIO6k+vSgAso+am+Pndeio7orGsLebNHrWMdC6HgEunRM+OCnO4Oe2hL1YFjEFX3UkgEkGQYrK8v41/bo4dUbmybDsfUvCyDAM0I3s8cKbtJTM8phJooMcQPzZBxy5fUAq7De7NLq3LMDNNL1BqblugPG4KruHHvS+kESDZ2B224eit0oz35IInwkW8C3yOrGki69OxCbogGYkS+K2KezlbxIL0fesaDM6uK0lzavE/El1lZe7Sh73exDJIAWgeXjemGrlxzApX/FIuaUmcNfcrSVwFTcXM8OS2nxB6jKnA9NQBOgFkP12Y6TxY7lgikAedTDcETgOmA1qJJJiXPYAPbgyreCI6oBgzgNT7JbZI6iUl5PQfar/VACwWnUqvtH3oHlTivsYUazMyuoFCFLUjQjFQt861RdwclzKCfRmcChx2jZEF9hY4bqplbXfQJF+T+AQF/jJ/f3L33j0z7ogJZz7bjgdyZNRTDIcWKMT7hXU2hwE5vpaeFrMU8tEioBeuOj12GvIZOnwXStGUvaLoWxy+xcIegE5yjgxJp2u1vhUGumPNNYx1fNo7HipaCF7Y8g/QH2hsOgrjS66kJmUHz2nzN95Ht7J43+5Cn5oT0oIsLB1VTaO/XNoVfK6hrLWD5XHAnx8fk+C9jNGnu4PXH3QwbOv/OfFdMVNWyDkw2jNA/gmFAjxHx6PUwVdo0OY4JwrwtpcUmkHwiWohd26p5OSEY0AAnfzh7Cd1diVgUpMSlyqn6sN2B79WUT6W9bX19ihFZTcjggVPI4G83iEaXc7GbuLk7sy2pj6fVHqbO8pdXr1fIza/GNi0UxuejA/GY4NoX4rlb/81r2g0bPBd90Dg2sXvAj7sca4KZBpPVMNhkJrXRoBmMEaypaWzRtuXhNUKlgwnmdC9382IrrP3yLSlE0sumdTdpkcIrwC719W1lRtRTwBC5ldwfjWe7pzuc9xzNo7vm4xBGxkoL3ncXaFYKB1gwrKjn9EAuCMr2vDrX5ox2vkttgN9Z66CgfYxzhiGzxhDKHeiEcSYWidwykujjES6jRNU/K8qoC33FUVmPAzq2nEGVrvC9CDgFhfzv1J8U1DFp98DQ5bs4gTC+3cCxbwe7aCLmDLmc1VFnIDtaAzTfV/poxVJdLlZ7qqXla5pU0PilnfA5OhzTzKEx0jptd7b1x6hPO87yAfJKmcce5XPe0Zwa+37eaoa/ X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 82e63515-7b29-4a79-9621-08db2ab43a65 X-MS-Exchange-CrossTenant-AuthSource: DB7PR04MB4010.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2023 09:02:56.8710 (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: pjId+IVp/AC65hJU1jynpt5HAIrleyw9No7Pp42mvgcJsKJhyflEeJXAduKvqQvF15lCMjmNaGm3iXANj91BUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8123 Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org From: Haibo Chen Current DLL config is just to use the default setting, this means enable the DLL override mode, and use 1 fixed delay cell in the DLL delay chain, not means "reset" the DLL, so correct this to avoid confuse. Signed-off-by: Haibo Chen --- drivers/spi/spi-nxp-fspi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 76168cc1e00d..6735c22b9137 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -997,7 +997,11 @@ static int nxp_fspi_default_setup(struct nxp_fspi *f) /* Disable the module */ fspi_writel(f, FSPI_MCR0_MDIS, base + FSPI_MCR0); - /* Reset the DLL register to default value */ + /* + * Config the DLL register to default value, enable the slave 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); From patchwork Wed Mar 22 09:04:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bough Chen X-Patchwork-Id: 13183694 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF5D8C7619A for ; Wed, 22 Mar 2023 09:03:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229635AbjCVJDH (ORCPT ); Wed, 22 Mar 2023 05:03:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230018AbjCVJDE (ORCPT ); Wed, 22 Mar 2023 05:03:04 -0400 Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2083.outbound.protection.outlook.com [40.107.249.83]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC2907EDF for ; Wed, 22 Mar 2023 02:03:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fQiO8iR4mK/Y0DIkj/7CbkAo7a4cSHTHRv70u8CQsdF+5PQPcpbuRhk2pG5DKhL5YlYqP8ui+fqZxlOVfhq3WlrfMd6kNfVtdMWe7pAAMzxglF+vW0pFXaRY9f6dDgBXzt2Oc0EGwE3Tcvg+/B74y/s+GkvGgFFqokNf9weyT7HNJ5PzXJGdAmGmL6zgOK0RH1/OlE424wADalorbQ32NP87CrwXQVJKLcIuH4lMb4H9E8c0ayJPk5GEVl/vyVLQOpLHlI8NbAcerqZ0XnPO/uvZgFg0WaWwO0gfSjU95Gu2GI5pkEt+3HQRay+Xf+0f5AUg7jzMYIq6cz28WvUNwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=8NoNo06SV/+6J21doXq6m08sg+ILGWKHOX6UJSJKy0w=; b=JWnWapIb62fRQc59aaFTG4BM7F0E1+grTxh8FBsPH0C5i9I1JCZevKi6ZezGKmdOaXntJtuPByhl1xHYmTDXqZ3bLaumsgbtGMN8ilKm+AsVCSNnPdcBeQOK4uMjJpEescr8hVTYVEC1ilrcpOTrA/LVvLpfgVsMZzHr4zZbVomf1+O3rwrWi+vc8b8DhSRU5Bb+Yv0C2Plz3qvjae6uAigNxWDY97CbpbGobpbQ5XsrIxywQCK43hMUK9d4DH2kXZYySAjkpQ3cdgB9E6hB7msu2k5vQ74HADKk/8M6Io10cIXASbWG+u/HClXJZSkTmoMpzGiMaphUFkeFqYKO2Q== 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=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8NoNo06SV/+6J21doXq6m08sg+ILGWKHOX6UJSJKy0w=; b=YK9kRtdsgbaE/fvmb4e4tbiKsiyWJvvxd4Bm+tT0l8dHA/lOA0dRXPTrXuoehOd2tfM5wmkUSaJXZr7qIMRzA3RSmQcTV542hub5Vm5lleIM3EaPvQDjqnmeN6881Qew1pQ+t5pFDB3sm3AiEhYGdG81MCLBf5tQnL3xvw3mteI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from DB7PR04MB4010.eurprd04.prod.outlook.com (2603:10a6:5:21::30) by DB9PR04MB8123.eurprd04.prod.outlook.com (2603:10a6:10:243::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.37; Wed, 22 Mar 2023 09:02:59 +0000 Received: from DB7PR04MB4010.eurprd04.prod.outlook.com ([fe80::df09:aca5:4487:9fcb]) by DB7PR04MB4010.eurprd04.prod.outlook.com ([fe80::df09:aca5:4487:9fcb%7]) with mapi id 15.20.6178.037; Wed, 22 Mar 2023 09:02:59 +0000 From: haibo.chen@nxp.com To: broonie@kernel.org, han.xu@nxp.com Cc: linux-spi@vger.kernel.org, yogeshgaur.83@gmail.com, haibo.chen@nxp.com, linux-imx@nxp.com Subject: [PATCH 2/2] spi: spi-nxp-fspi: use DLL calibration when clock rate > 100MHz Date: Wed, 22 Mar 2023 17:04:51 +0800 Message-Id: <20230322090451.3179431-2-haibo.chen@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230322090451.3179431-1-haibo.chen@nxp.com> References: <20230322090451.3179431-1-haibo.chen@nxp.com> X-ClientProxiedBy: SI2PR04CA0007.apcprd04.prod.outlook.com (2603:1096:4:197::19) To DB7PR04MB4010.eurprd04.prod.outlook.com (2603:10a6:5:21::30) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DB7PR04MB4010:EE_|DB9PR04MB8123:EE_ X-MS-Office365-Filtering-Correlation-Id: e94fe5f7-eac6-42a0-691c-08db2ab43be5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4Wz+raWEGPMPZiEag64Ze+c7vC8VnWVI7xEgsLhU4iJOPMzOHW4lb6OtHg6pgNdmMtb5vkU9FgoWDLGRX3DdCyrJ7fKv6E3LXHOPrmnTcI47+iwuDuyokhwaoIsp0Ui2zrK/h1OD9edEiQSYT+nfdTB3d6dyBa+pQ6iO4x7/I8BP55iIMlcz3qjYX/CS1Tfv6TujcP9XL7u792mBPPJVeI8Cmq9MBBvogj8Yd03PUeR2ZuB64BgDLzS8wCpAAyJgQt0Amh9VQxOCdrUJyDJddq4vxFMnHRsnVSjxLe3LwgEFA5GQSU9Zh7tMXkCAyei2j9BVL2J+7rJREQu9YAtpUh0e332GNSCTHJGn6ajesTgYY5yDIhAius7PS1YLSlNKpSnNG/46zKbsOqx6epdp3YZjB8GG/H0m7RjUwDxr1d4yATUDhEb+ANlizXbuQSchQGqCdNUZTgP3K+ASDnfKKfT6YqvpfRjt5/TtjNw1odk5qCjrVphC8KImdFiZko61bwq9VsQD6GZGk1vbZ4DBpAsRnlbAlIOBs+LosaFj54HJ692Vpfm6Q1/5cfzQmNsBekX8qAuazsz2sR8HYG4+z4N3tLeKVZf/KdWmNTabL7eUaQoYLxEGjPaL6SumWuMYhHgkIbDP8zYbfcKotuXHtgF5mhPYZKEnWyHgJCOt5ORjhgcNwBby4jphlh/vuwI0T/zDqJN1FnuYPi0sOwXl0w== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB7PR04MB4010.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(376002)(39860400002)(396003)(136003)(366004)(346002)(451199018)(38100700002)(38350700002)(86362001)(36756003)(66476007)(66946007)(66556008)(8936002)(186003)(8676002)(6512007)(6486002)(6666004)(41300700001)(1076003)(9686003)(4326008)(478600001)(6506007)(316002)(26005)(52116002)(2906002)(2616005)(83380400001)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: N5TVVTGHA8RXZIC99DBIEtm0jWU6n5RrAiWjyFU1hrB1J8Sg/vW58XSGxeFs5Y+VcTcVmXZ7TIYXJ6uTP+Owwo0bYtg5lUokj6IQ13Y9fVT+M9lWSR25Lej4wH/sJKCUOsyg73CGC3XizdGRq/78ejoZBBssLyHp+0i5drYwcnJ5eW6CgWzO+7rxdMkpTPsKjBvnBrJhfdLS+L1pHq8PcteqxgKzWawSMO1zcyES7hl+JM3RGCuo4JTlkogJzY3QjwVeT5+USYFmLHTxFxHaRJIndGyOQnhPHj6MjGvtYwRjVz1XB4neiHJj20HIUr6zxp9gW3zTsLSM7aKISVbjydGW1LMqFOfIXx/Ek1vautv8u5CF9tazvGGRS5co2jZFBpCf5DqJRkqqNxO3xghHjogMyTN80uH1Y7bQLyyMB7kb75Hxit47DOOC8yrzlgMYhjzXMDCm8aC2t7yLF4p3CHv7U1kyBEUXpsA3mWhmHBRqIYdPmv7LCS/0QSAyQ0xRW7LLYWeUASzWavQ36zLmdtUS74ll9Oscpsf+ByJ1QNncUqetz/vTSdP9REy+PBKU4s7dihRuRlqCLSWeA4kcy4hFC1rtvNPhT+fgptHogtxOJumRGcaEh0/x03l1E2VO9YOZ2cZxOPsCeR+2n5vNmBLD+8Eh80DNakXTJZ+nKkzliygq0Vtvl0AcQnHYwPwKMCP95sGYGq4mhJnS0GnAIJPM/u0xAIh5hTtqvAxJ6bUjBRlv73O6Ow4uXUQYQZsiH33ccc2tLyc7MvkNaH9SRd5DevD5MFpIR/j+H6eVLn+aNH5IqOaMFq4/Z2Ktc9YOzINCl2S0+lIDJXfy3nmKtp0CMU70LUjgJfU0s1eNev9KCxQic6MR5LFvH6jXS61/B2NHhlFP99/yLH8Eh+KPgsY1jR9wKTTqHU+AIg2l5pfldJzNq2H1D14EdkrRusWJeJ/fBWx0hucqjXR0oC3jVkzRWjfPHZdmFUyYI1FeUyBECd8NMIgQRtz+fsgkftOcdtftAFD5M+dqbFF4SgXiMrVqzM7r35QZCSirlth45ak7adaVO5/0DD35FZ2TJWaVX79+Ik2I+6uRe0FP95ylyVb7KhYJBwXapnSKf35Wm0RhsiGxrjE7WW5WKLY+iFcE8BFu8VnImohqsXcLCPUT2a5xeomaucm3lVrXOFLIMTbCaTW42Kn16mroObxggrwArhFtHmHKxT0YnLhMj6Gd9ja9MI89Y4cmdanbyxdY3FqtZh8IKkNoQC4mwTMIlUCmwcLUHHmtN8McCidWlOK/o6jMAJSjv+rs1D6ztZoYlHyZoBa7sIRWX7spyXTMzVnMcEt8RImkZANw8x7BKTF+2Qao0VFsfjmcFCFkPjNMIrb4Fg2/yDLkeb07WaC5WBofPe9WDmsySw19wK/gj9awgaASWmK1+rwF8nz7ngQtnCK3lyFeOAIY156fwOdlNWbt+YSe6+joFnpo6zU9lcut8BTrqYQG+4r1zPhk+BKPO8DkJXKhimn3aMD9ElhVxfSalgaEL1PgMix+RYtI3d3nXgOP2HBQEtjxsE0JbAnrQ/Uer2O5Bbccp/8MLAS8IEsr X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e94fe5f7-eac6-42a0-691c-08db2ab43be5 X-MS-Exchange-CrossTenant-AuthSource: DB7PR04MB4010.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Mar 2023 09:02:59.6364 (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: hh+HdcflwoGkLmQRWeWMA6GmhXCTl/lUUVC1ZapkjjF6kE8BOlWQWDJ2fVhpfQ60okpFYXfCLdf/ujy/6+3IHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8123 Precedence: bulk List-ID: X-Mailing-List: linux-spi@vger.kernel.org From: Haibo Chen When clock rate > 100MHz, use the DLL calibration mode, and finally add the suggested half of the current clock cycle to sample the data. Signed-off-by: Haibo Chen Reviewed-by: Han Xu Tested-by: Han Xu --- drivers/spi/spi-nxp-fspi.c | 52 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/drivers/spi/spi-nxp-fspi.c b/drivers/spi/spi-nxp-fspi.c index 6735c22b9137..544017655787 100644 --- a/drivers/spi/spi-nxp-fspi.c +++ b/drivers/spi/spi-nxp-fspi.c @@ -214,9 +214,15 @@ #define FSPI_DLLACR 0xC0 #define FSPI_DLLACR_OVRDEN BIT(8) +#define FSPI_DLLACR_SLVDLY(x) ((x) << 3) +#define FSPI_DLLACR_DLLRESET BIT(1) +#define FSPI_DLLACR_DLLEN BIT(0) #define FSPI_DLLBCR 0xC4 #define FSPI_DLLBCR_OVRDEN BIT(8) +#define FSPI_DLLBCR_SLVDLY(x) ((x) << 3) +#define FSPI_DLLBCR_DLLRESET BIT(1) +#define FSPI_DLLBCR_DLLEN BIT(0) #define FSPI_STS0 0xE0 #define FSPI_STS0_DLPHB(x) ((x) << 8) @@ -231,6 +237,16 @@ #define FSPI_STS1_AHB_ERRCD(x) ((x) << 8) #define FSPI_STS1_AHB_ERRID(x) (x) +#define FSPI_STS2 0xE8 +#define FSPI_STS2_BREFLOCK BIT(17) +#define FSPI_STS2_BSLVLOCK BIT(16) +#define FSPI_STS2_AREFLOCK BIT(1) +#define FSPI_STS2_ASLVLOCK BIT(0) +#define FSPI_STS2_AB_LOCK (FSPI_STS2_BREFLOCK | \ + FSPI_STS2_BSLVLOCK | \ + FSPI_STS2_AREFLOCK | \ + FSPI_STS2_ASLVLOCK) + #define FSPI_AHBSPNST 0xEC #define FSPI_AHBSPNST_DATLFT(x) ((x) << 16) #define FSPI_AHBSPNST_BUFID(x) ((x) << 1) @@ -615,6 +631,35 @@ static int nxp_fspi_clk_disable_unprep(struct nxp_fspi *f) return 0; } +static void nxp_fspi_dll_calibration(struct nxp_fspi *f) +{ + int ret; + + /* Reset the DLL, set the DLLRESET to 1 and then set to 0 */ + fspi_writel(f, FSPI_DLLACR_DLLRESET, f->iobase + FSPI_DLLACR); + fspi_writel(f, FSPI_DLLBCR_DLLRESET, f->iobase + FSPI_DLLBCR); + fspi_writel(f, 0, f->iobase + FSPI_DLLACR); + fspi_writel(f, 0, f->iobase + FSPI_DLLBCR); + + /* + * Enable the DLL calibration mode. + * The delay target for slave delay line is: + * ((SLVDLYTARGET+1) * 1/32 * clock cycle of reference clock. + * When clock rate > 100MHz, recommend SLVDLYTARGET is 0xF, which + * means half of clock cycle of reference clock. + */ + fspi_writel(f, FSPI_DLLACR_DLLEN | FSPI_DLLACR_SLVDLY(0xF), + f->iobase + FSPI_DLLACR); + fspi_writel(f, FSPI_DLLBCR_DLLEN | FSPI_DLLBCR_SLVDLY(0xF), + f->iobase + FSPI_DLLBCR); + + /* Wait to get REF/SLV lock */ + ret = fspi_readl_poll_tout(f, f->iobase + FSPI_STS2, FSPI_STS2_AB_LOCK, + 0, POLL_TOUT, true); + if (ret) + dev_warn(f->dev, "DLL lock failed, please fix it!\n"); +} + /* * In FlexSPI controller, flash access is based on value of FSPI_FLSHXXCR0 * register and start base address of the slave device. @@ -690,6 +735,13 @@ static void nxp_fspi_select_mem(struct nxp_fspi *f, struct spi_device *spi) if (ret) return; + /* + * If clock rate > 100MHz, then switch from DLL override mode to + * DLL calibration mode. + */ + if (rate > 100000000) + nxp_fspi_dll_calibration(f); + f->selected = spi_get_chipselect(spi, 0); }