From nobody Tue Apr 7 19:07:18 2026 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 F1734C4332F for ; Wed, 19 Oct 2022 08:21:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229587AbiJSIV4 (ORCPT ); Wed, 19 Oct 2022 04:21:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230153AbiJSIVu (ORCPT ); Wed, 19 Oct 2022 04:21:50 -0400 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70104.outbound.protection.outlook.com [40.107.7.104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 81D717B7BA; Wed, 19 Oct 2022 01:21:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N0W3Ts1ztmJ9gdIZt+w3uvHJ9vK2Bj8W5kE4OJmEaZeRodYm88M4yXFS0xfMZXeHTnJ+6WM8Z6UP497IzibtxO9bBEnpahnjyXvGPEvxXL6V5Tu2nMqXxVyXjLq5THYJcw+x3V69eRpQ2zrltgoRgSuw7cNxCNb4sM+8eVbwUMo6Od44jwnkLfRVMAON181CCGMhprsChT8SWo3HhE4FXFM+YpZPLmpNjn3Ae8IHTuAz97SvTWGJBoF7uSqFh2qv433QHLWkNl8oK43sgGJMsbRjhQbHEiKS8pZldqRhbg9dl/kh2aurWNjVKOqyL2/5KJgdKcE/gx03thfi3WkE4g== 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=t3fLESMnk6sIqVQ9NjyRNm6gBDyIFXUIP05qlM7qhUY=; b=isndHxhS+MJ1PO/93itlJ4pP4dwXv4UZRwQt/oI371ypKexNB7+p/FydGJtIUwY11H3IdqVO8Tkx++ErAgoDnr8JN3NViLB/s0FOg7HLGkV2u/6BAaZuiDCiF5524lHwqXPA2BcHRkcZmxhl+IgKIjRGacKFpnbAaDjd8oYr3pCDo7PnJWk6sMwgsTCU0bgGWBWW22Owp5u7wl7pJnPk1HiUTf/rApw6uarHN/CaVBpDi+m7xrvCJaeQ8lcpqhcafRoHf8MFbJM+m7Z1LqfxCHgC/+YJK5mkeyKp67rNJIiyQ0x1BoHgit3fH/N9pHkJ0IHFTrxurd1rMb48NWd/aQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=plvision.eu; dmarc=pass action=none header.from=plvision.eu; dkim=pass header.d=plvision.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=plvision.eu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t3fLESMnk6sIqVQ9NjyRNm6gBDyIFXUIP05qlM7qhUY=; b=A+C4ojQOeYCfuo3ME8rSuubp9ktQq8Cl3zWfvg6p8XJnB3Rf8k92o2g6LsttMc78wnfLBQ24AWejNZOXT1HoM3GXUit4jM1ivAC4jZsSxqn1DcE4d+3aI7EREIoJrQBLXFaqPdSXAv5tOdmOyzkOzF5fZQWsyXffZn1aYkZadf0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=plvision.eu; Received: from VI1P190MB0317.EURP190.PROD.OUTLOOK.COM (2603:10a6:802:38::26) by DU0P190MB1930.EURP190.PROD.OUTLOOK.COM (2603:10a6:10:3bd::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.33; Wed, 19 Oct 2022 08:21:40 +0000 Received: from VI1P190MB0317.EURP190.PROD.OUTLOOK.COM ([fe80::a621:b61f:de56:b8]) by VI1P190MB0317.EURP190.PROD.OUTLOOK.COM ([fe80::a621:b61f:de56:b8%7]) with mapi id 15.20.5723.033; Wed, 19 Oct 2022 08:21:40 +0000 From: Vadym Kochan To: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Rob Herring , Krzysztof Kozlowski , Roger Quadros , Florian Fainelli , Liang Yang , Cai Huoqing , Vadym Kochan , linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Elad Nachman , Chris Packham Subject: [PATCH 1/3] mtd: rawnand: Partially revert 4114f97c41cd ("mtd: rawnand: Get rid of a few unused definitions") Date: Wed, 19 Oct 2022 11:20:38 +0300 Message-Id: <20221019082046.30160-2-vadym.kochan@plvision.eu> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221019082046.30160-1-vadym.kochan@plvision.eu> References: <20221019082046.30160-1-vadym.kochan@plvision.eu> X-ClientProxiedBy: FR3P281CA0110.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::7) To VI1P190MB0317.EURP190.PROD.OUTLOOK.COM (2603:10a6:802:38::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1P190MB0317:EE_|DU0P190MB1930:EE_ X-MS-Office365-Filtering-Correlation-Id: d3b68600-5c8a-4d46-b09c-08dab1aaf2d8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hD3fBs81da6+jaZY2Lh7W5PX6/9iiYmFacwrl2vUwj+x4fo6+1HSEanlJFdp5ulXLGlIxvcBaNGp00yt6jL2NelaEBT6zoxBIlSFKNEQN86li0v5XEqirG2b83ee2ANFv4VegXtzzZCDGW42Nn89GzWa7sEo1eg93RlvJnv6v9oz1OxMipWv3QgrZu+TLP7g/LxfV/Qcx7b+ftuCSH3arWciriE1FMNcHp9343tY6oOfIFY7iqmNw2n638nSw6zAPmGRkTq4F04KZviO9AdZu1yoWQGVtofqlWu21pwTosyFx6z3m7RNev4wNCLrzuLo/vBMjy6IKFGGCDvLAqrSHZ8ALJIvDTk89VaEa34oPHy94SqTOXby0b2DfgefLXaYRexJMTlJOYFcpOThJfcgj7bTtUhjz6K2ttPGCgMlUjLc3X8aYnqgoLSQBMqixN4rXyLWqsQBCGM2OGDDIOVSq3LPg99cN2zgcU7LOQW5sfm6SlKpgH7METdHE7yzXMHCgvaHJ/vCZBJSvh6wNPaNI4RyY7VRWSCz3qxQ8MCNLKspTXpuUztvTxUAeE2PI9C2gN4ooICHLCdDyTHjmRw72D/6q7aKGXg1KcZSRX0rgZt+zYuR16BLhuqHUZZByF2wboGvKbwXCOuqaW2Qi349pqtxaGiTfLY0iRebMjAA3ZWnfWNSgy9JqffcA4iLE82k3+DZoPvTjmACt9gjcKEfxnL4cgR6kkeLC/j51/AQNFmDtuYD/ImYZoTF76gvqSULJaDHCactm5I1perAGrM8zwpW4FvP0O4fe24j9UevrBzpWKRfpXMRyJrLTYVtYuA2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1P190MB0317.EURP190.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(39830400003)(366004)(136003)(346002)(34036004)(451199015)(186003)(2616005)(26005)(6512007)(6506007)(1076003)(52116002)(83380400001)(7416002)(2906002)(5660300002)(44832011)(41320700001)(41300700001)(110136005)(6486002)(316002)(508600001)(8936002)(66556008)(54906003)(4326008)(66476007)(66946007)(8676002)(36756003)(86362001)(921005)(38350700002)(38100700002)(26583001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?OJH6QvTS3f/HcPrlkaubQ40felMaab7gMjH59d1XA2DXSHSuJGb2Ap+SOG7t?= =?us-ascii?Q?O+fEwHh3kubGFvfC+LyhV7MVGhOpxyOjmZ/0WtwFZ4EkGk5xQGHEW9PzfoHk?= =?us-ascii?Q?G2Z9Mde+eJwxYiBiYLkw+O9vksLa401DaF3eAkpCqAsEKfOltjgVW5vgB4nk?= =?us-ascii?Q?Mj65zmT/eWW5px2P/U2hX9G+hxPFrY5L58XO0MbZay3Rh+1o+R5rU/wTzbwV?= =?us-ascii?Q?O5S6W+T1vCJCsMPmh7BK51wGlTArcbsHcxzMPrQ7WjG6FmPofQvwkOFcSSpb?= =?us-ascii?Q?wEM7M/tQi1dRiqZRDSAjMRcJBrI7u0cvHZteM8IixNaRKmHLMBHZfR1LG+Oc?= =?us-ascii?Q?cv2K1pdOkPTDXFN6yzYwApHw0LN0Ir6sfqg0d5D/GyDSKmWl1qBT4ckFM5yz?= =?us-ascii?Q?nczNHJv1coJL/xP9TezOwMQCL4QpneGgN9rRQc9Imr+D00kKJtz3Up/xnJ5j?= =?us-ascii?Q?INgq74UczZysRGZWkVdm/uY5bMObhOndCtXMgCaZJgpcec8ZgQl/lOjUep0w?= =?us-ascii?Q?S7NknYE/hEvASZkl03jDeWjpFlz9HQGzq09peXRPvp3DdHFoxm/Wp8cSD/h2?= =?us-ascii?Q?Kw04RtDUuCsQXqXlBhaBgnSrdWRkSMYAR8tD7MMBWHciYybxwAEohe03OHOp?= =?us-ascii?Q?/18yx28wAq7V/n5LvgLKwzCAKHxdfSqzgk217t8JW9KmzSb7Wq2WUToE88MC?= =?us-ascii?Q?eSI9EzQTdc8CtM317tB6omKCPXB9fzHKUeOpEDULaEA8AB2RBAmPBBRGQJ0i?= =?us-ascii?Q?fQtCWwrPJ9wh26uRWe0IakkPP/Nw61+s/Hm0u16qdxaznwL4X80ERKjhsIUJ?= =?us-ascii?Q?O7/OENrt4P5ejiGf5929tqg/gc7H17VHuXLvz9s7sIXgc/IKLXap7MtykAVG?= =?us-ascii?Q?ogZuINSkBbHCIW3qC7qkin8Osaoe0cZPhY0b5VLt6F4l5vBiBi7Lvfvw+asB?= =?us-ascii?Q?ucfq01fTSaE72+fh/FAP4bl+iPRip/gFTcKTgbDvCOsJvHBuTP5CqxyKiex8?= =?us-ascii?Q?g0jblDsGFqLXHrwDRxbg4AnDz+hJyZM/sfkteeckWwllaZSwuGVOvVTR3U+P?= =?us-ascii?Q?mCwiQGLavrIBfxmAZkKXkc46GKyaC0JWe2KXixzVlUXVFi/hgukkDE7QVYlM?= =?us-ascii?Q?nMi3sc6bW31ytXnIP8urTJ/ueoAvynjWWX3SA9zoL59vyshWiIgCIPv8FT4k?= =?us-ascii?Q?JtaTEyuGhl63AaZqGmHUNgFCgYwQwPfCw8JUB87NrRj/SKzbxTWJBSuDRHMc?= =?us-ascii?Q?u4IcrPqJVpFLmD4CA++zpFzpd+IGD3YDmD4qhlabl6zRszsSWKISmlibXfWs?= =?us-ascii?Q?yDaqZpUCw6Kia8dcRRCw85NcRNXYD6XWSatZ5esmWmsyBjou5T8f3i8/NbmX?= =?us-ascii?Q?lAUg72TQfKSmqDTZ9CkkOY6X63M9HX8xSWeaGM13OH7o5LVbiSQTui3GPCuZ?= =?us-ascii?Q?I/HQPYSSNIT8hNSR+7xtYVbl15qr3op8dTVCIn8DXRJMfffAHloKzyWhN2+D?= =?us-ascii?Q?xmiHF9UMlikr3pKfP08rdN4XW3ErgfEDzVXLb+rRi33wLfCxMrBKIAnba7MV?= =?us-ascii?Q?IPRD7bDdAkIb533cGHN8DlVnc5CHBcrQosG5ny7ECX4hqAHtKaXgfuJEJRfc?= =?us-ascii?Q?jA=3D=3D?= X-OriginatorOrg: plvision.eu X-MS-Exchange-CrossTenant-Network-Message-Id: d3b68600-5c8a-4d46-b09c-08dab1aaf2d8 X-MS-Exchange-CrossTenant-AuthSource: VI1P190MB0317.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2022 08:21:40.4596 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 03707b74-30f3-46b6-a0e0-ff0a7438c9c4 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: xRayd4KFYxFfZy0yt7aIkTxwEHCkLjUfVONyLe7opJXHJW2e6OBHrBumHqxu8Im/t7gnyI5J8rRen2qPoCUE+Rp2YNKAS9Oif76fFcdFhss= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0P190MB1930 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" onfi_async_timing_mode_to_sdr_timings is required for ac5 support in marvel= l_nand.c Signed-off-by: Vadym Kochan --- drivers/mtd/nand/raw/nand_timings.c | 14 ++++++++++++++ include/linux/mtd/rawnand.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/drivers/mtd/nand/raw/nand_timings.c b/drivers/mtd/nand/raw/nan= d_timings.c index 7b41afc372d2..5604e3dc632c 100644 --- a/drivers/mtd/nand/raw/nand_timings.c +++ b/drivers/mtd/nand/raw/nand_timings.c @@ -642,6 +642,20 @@ onfi_find_closest_nvddr_mode(const struct nand_nvddr_t= imings *spec_timings) return 0; } =20 +/** + * onfi_async_timing_mode_to_sdr_timings - [NAND Interface] Retrieve NAND + * timings according to the given ONFI timing mode + * @mode: ONFI timing mode + */ +const struct nand_sdr_timings *onfi_async_timing_mode_to_sdr_timings(int m= ode) +{ + if (mode < 0 || mode >=3D ARRAY_SIZE(onfi_sdr_timings)) + return ERR_PTR(-EINVAL); + + return &onfi_sdr_timings[mode].timings.sdr; +} +EXPORT_SYMBOL(onfi_async_timing_mode_to_sdr_timings); + /* * onfi_fill_sdr_interface_config - Initialize a SDR interface config from= a * given ONFI mode diff --git a/include/linux/mtd/rawnand.h b/include/linux/mtd/rawnand.h index dcf90144d70b..7702abf9e1f0 100644 --- a/include/linux/mtd/rawnand.h +++ b/include/linux/mtd/rawnand.h @@ -1481,6 +1481,9 @@ int rawnand_sw_bch_correct(struct nand_chip *chip, un= signed char *buf, unsigned char *read_ecc, unsigned char *calc_ecc); void rawnand_sw_bch_cleanup(struct nand_chip *chip); =20 +/* get timing characteristics from ONFI timing mode. */ +const struct nand_sdr_timings *onfi_async_timing_mode_to_sdr_timings(int m= ode); + int nand_check_erased_ecc_chunk(void *data, int datalen, void *ecc, int ecclen, void *extraoob, int extraooblen, --=20 2.17.1 From nobody Tue Apr 7 19:07:18 2026 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 5B68BC4332F for ; Wed, 19 Oct 2022 08:22:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229979AbiJSIWJ (ORCPT ); Wed, 19 Oct 2022 04:22:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55064 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230170AbiJSIWD (ORCPT ); Wed, 19 Oct 2022 04:22:03 -0400 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2108.outbound.protection.outlook.com [40.107.105.108]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 884777C77B; Wed, 19 Oct 2022 01:21:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nBc7CR8+Hx8HM7uOWzxoQHAEAW9mr4jHnMQi9x3O1tztJp/h0YvVAsrGSf+l6LuJ/HBXgHwpijOWXCeTZCnF38WzGwdaD0Ceh3CmI/ZyLBXslYENrrx4V6mB9tR/BIhiXreMtw/kRICiXtbVJfvIlMOlnMpK8z4/OgpaO4/uwEAU+NcEOYQQPvIUECJ7UySdMb9J9hFB7S71xZ3XvNIL+HAjhFeZz2bVtVoY5g5R1bx17hppHSP60csJzDkCnJdfwtbvaKcGfUK6dac/EHOngAYnyx1edYsXEQ2pOfACXVZamcs5CMK041cnb8LtR2q0Q3wOAUy6gebXjs3GFGczsw== 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=+Zqq+6atQst8xSBDiXola7CEiaQd7MWo/ASvH5t6vz8=; b=R4NL4KQMKoymhTW6PJ2nrlhPmBsSvLuPpzU+DwZgAI749n9M/zgpv+LRG44E4TDhys+XoHzKw+llDuuZwMhwxv2p/XLDmRTQFyhQNzyd0633zfgiE0X7W9wZx6Hl+ZCXe6mwTZ4aB29s9mCKM3y+rE674MoEiktAHm8ZvZ3BS2gTneYK1iKNK4DxLCp2e/apvlp51b1Tae2t8iOmhE2i3XAAJhYfP5gCcDxxmAlibzOWL8JvPVU6P0XiiKFQSR5zG5nSlwt0ykt5iXyeQ1o6GahBZ+VxItXBxZyGXFc0hEwODUJyQZaBuvoR5IF6il2FsaoB7/vnG2mkg6394BDKmA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=plvision.eu; dmarc=pass action=none header.from=plvision.eu; dkim=pass header.d=plvision.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=plvision.eu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+Zqq+6atQst8xSBDiXola7CEiaQd7MWo/ASvH5t6vz8=; b=X8YC7XSxk3REbILt/ZCgXHsL0TSC66Pr3CYtr0mwY0dJtk+/VW6Bh7nvoR3CI2XQQRZSJ6P2LgGE6tmF7QmvHjGNSjh1zEEu4n63v6tiCR70CzaetZKjCKA6tTJxafEhCK4BB4+rT8QSkQnJ8Zc76eurV6kYUCUvezvCcGPQftc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=plvision.eu; Received: from VI1P190MB0317.EURP190.PROD.OUTLOOK.COM (2603:10a6:802:38::26) by VE1P190MB0879.EURP190.PROD.OUTLOOK.COM (2603:10a6:800:1ad::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29; Wed, 19 Oct 2022 08:21:46 +0000 Received: from VI1P190MB0317.EURP190.PROD.OUTLOOK.COM ([fe80::a621:b61f:de56:b8]) by VI1P190MB0317.EURP190.PROD.OUTLOOK.COM ([fe80::a621:b61f:de56:b8%7]) with mapi id 15.20.5723.033; Wed, 19 Oct 2022 08:21:46 +0000 From: Vadym Kochan To: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Rob Herring , Krzysztof Kozlowski , Roger Quadros , Florian Fainelli , Liang Yang , Chuanhong Guo , Thomas Bogendoerfer , Vadym Kochan , linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Elad Nachman , Chris Packham , Aviram Dali Subject: [PATCH 2/3] dt-bindings: mtd: Add AC5 specific binding Date: Wed, 19 Oct 2022 11:20:39 +0300 Message-Id: <20221019082046.30160-3-vadym.kochan@plvision.eu> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221019082046.30160-1-vadym.kochan@plvision.eu> References: <20221019082046.30160-1-vadym.kochan@plvision.eu> X-ClientProxiedBy: FR3P281CA0110.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::7) To VI1P190MB0317.EURP190.PROD.OUTLOOK.COM (2603:10a6:802:38::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1P190MB0317:EE_|VE1P190MB0879:EE_ X-MS-Office365-Filtering-Correlation-Id: f441b2e1-db76-4e78-54ad-08dab1aaf616 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PKHlMqoZWYIXMp/3QsjOPIgd285K19D2F0ISZ//FU2Fk6LCaNfrUwgHHyv1IO2h8zePMXRMDUHmaYBB7JqEqiR/VITvtBb85bMEe8Top5cxEhSJCD4sLt+Fyz+cJ2ZpVIy44syusmhLiGIWQnlKStgoRblyw7XxiK7xg/Ei6lvOzX8PkkZiqQHEvBvfck9447Q/cZbAJgVFpwI81sRx4DxC2t2ZCrqnZki7x1MeGdt+xjNaLKOtwhI1L1BBJTQITVz2Eyn7cBfHx4QO7rFksqkRWUoal72c+KIjfmTX2P0O6z/buNforSNA2zWDe1SDxa2fFuVldC6qIHOpro1RHEK9DxHHo2r2y21pbRbp5KraqgBH0glKMN/3dCG/p/a38kCaa6K8sSo1fk3KqP0Z/lZaZ2jwrKNXdZtf/7loNXfAnXLBAYIo5j5vaj3rNKgitbW/ECACI7mAVE8dW7eGmfui/gY37LfhNqhvufZh2Adk5UlYMmfF9D5G84ilZ8UfgUDpwahAbDOHJcjd1pmG/VT5SMEFqI4ce6PpONjdskPr/1JMGHOUjz7/LxAsyROfQO9ynecHlM99GbnlUjIzmNz1inqB1afGdJjovrcg3+aS9JEIf+JaI9W2Byue8LWHNO9DkMyJAqSp9RL87YVPWXFA88MR6R5hXwiBKXiAPUJIisjxWG3ZyA5W3i0nWWKkNVIXx/DJ6UwehE89y5TeH/XCXVEj4jF2M7+EuvMvfBnAYRm+29iA2SLn0Aln2EOJ9w8F0HpIwHufnaabEf4tlyg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1P190MB0317.EURP190.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230022)(4636009)(34036004)(346002)(396003)(376002)(366004)(39830400003)(136003)(451199015)(508600001)(6666004)(38350700002)(316002)(6506007)(8936002)(66946007)(66556008)(8676002)(36756003)(6486002)(110136005)(41320700001)(921005)(186003)(4326008)(38100700002)(86362001)(2616005)(1076003)(26005)(54906003)(52116002)(6512007)(44832011)(66476007)(2906002)(41300700001)(7416002)(4744005)(5660300002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eC9J1a0ZWKQWTt8swOu/w/GM1g8K+4sAZtfzowFErp1kXGol6XP1nNOTt7zQ?= =?us-ascii?Q?YAp7KVWuBrNsnxd2J6VeqLrJczVhbAF+/HBoxuv1sklPq1EDdxw5DwAeLLm6?= =?us-ascii?Q?WYBZaJpzW+ZyHNAlWCV6+lOuAIk123gwzU2OzrLVTnriMHjUc8TyvyBjLcXb?= =?us-ascii?Q?5+Aa7CYUt/ytYUYuXnjJSRWPU2OQwENGYzH6XWXEN3rpo1TkjM2fLXk74Rwo?= =?us-ascii?Q?W0Aj/ajwCI5eGcsmplYV3R1adAt1seZ/XZqa6VnhPNS6XvTqvS6z73yTjdH8?= =?us-ascii?Q?ktEzp1qzDHoyodnkO3vP/HXEkBy7kTMoMWNzzQMWW77oeY1xaCxFXV9cGUml?= =?us-ascii?Q?W1UEf69z1yWNHsCybkA7o/nIVrk8x6cakWJUoJJLHlVfiPXrO7/TZk7oG4zf?= =?us-ascii?Q?TvnovCEJK5V6IOAngHwHfQhKMRPOxdod9kyNDqRPPyRgmKVQog3peuW0QwA5?= =?us-ascii?Q?auw09dMtAi9lKwFTJW9xeSnPLqBMQMxWF3NjSHfnzo1D5nkmg9oryk3axt/8?= =?us-ascii?Q?Ya4rJyDUAwe4sL1ZOMl8TpGpJImmYODJ+j0zwwyLBZRQQywxICPtFV6doLcc?= =?us-ascii?Q?qFUXOhr4s5zZiihJbeWrU7dHfqU98WK8rE7PEyQLjOaI5DhTPwLFaEn/MF1M?= =?us-ascii?Q?8XkmF/psB0f2wVxZVUajtx9vNEh3aDcu3HZ61iA6LMgL5P88T0TgRqwQS5zR?= =?us-ascii?Q?KXVCmIubWRGN1TnB3rznMOTHXziBSh+s7mgNXPytVwqSdw5KBwqMlNwa9skp?= =?us-ascii?Q?WuKKY2OyRbDSSUERFTqgaVAO3vUlmXT8JIbdmSKtez6vWSGsqWaC8THhFoR+?= =?us-ascii?Q?3bSEV9QUvtm5DcpFmoea7loTjZyiIrF2sm43y1XZykAF5tGI1UPLEP36P+zP?= =?us-ascii?Q?ZqhIbIWDJLq5e71O4oyUgCRDpVP1qmGUY51oLIPtiTSLlkiMSYRFjX2kM3k0?= =?us-ascii?Q?NnFYYfSfuarpsecQmzB7K8JBXq64KigPocZ6sF9yT3TQl81QJFahqoJB6OEq?= =?us-ascii?Q?+MCRde3acbFt9lAUuN6nAw32sO1YMLXg1D/BpOVZQGXY6u/Xn3OzMcGzdxXY?= =?us-ascii?Q?bkx/Jdyqc2ThbqU/4myHYZD45mGs4AC3irCmswshF3ZZ/6/wyZ14UZ6VG2Mn?= =?us-ascii?Q?FvV1s4o5i9UFHH2Nex/nirTjzuOBcekYtCDPYB9idJrJ1TnsQOlJby/gFy15?= =?us-ascii?Q?DLRSOZPcLQitn/wYEaXAZIrFGZzwRBS465el+nPZG8enSqlctziCVB+oOZim?= =?us-ascii?Q?O17vuN0VfEuNdXKh4qmgdERpyUovM1KkijBO8jMhqjJoIKd1/cdEFQP3uh2e?= =?us-ascii?Q?aXESwVWFcRhP3kYCS9+2rdaSNgmnRIE3sKUlU8nMEKyLqyL1Wa2jKqKyq1id?= =?us-ascii?Q?oJcpZmgYFhuZf4jMtEKbcU/1Hvs30MydN2oUPupIyOB+Kg73J3I6drftFFPl?= =?us-ascii?Q?m7jduHhVI2YMe70pigbfacVSW0zAf9OOIryWm5rsmAIOezsgxHgOHN7o+Iob?= =?us-ascii?Q?OoRNaVhZYPtD24ipNbmNAxdSpov9MByXSvGtOuq9CEFVrGU/KlLdmFL9jVpq?= =?us-ascii?Q?W+M7VUYqFE49ZKKd+YM+MImEjmzJhgolgCHtEQ/hEC80O66AZ4a+ehcd07Bu?= =?us-ascii?Q?4A=3D=3D?= X-OriginatorOrg: plvision.eu X-MS-Exchange-CrossTenant-Network-Message-Id: f441b2e1-db76-4e78-54ad-08dab1aaf616 X-MS-Exchange-CrossTenant-AuthSource: VI1P190MB0317.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2022 08:21:45.9436 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 03707b74-30f3-46b6-a0e0-ff0a7438c9c4 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LATxV6teSpwLEjJgP9MIqgvx0JnXg+MkAb8Am5f23Q8ziRKvq/foJOZHAky4zPBEkkXM4I2zyaxXpIBqwWqEV5KZS/zE/dgD8Nsykjj8g8g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1P190MB0879 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Aviram Dali Add binding for AC5 SoC which have its special way of handing NAND layout. Signed-off-by: Aviram Dali Signed-off-by: Vadym Kochan --- Documentation/devicetree/bindings/mtd/marvell-nand.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/mtd/marvell-nand.txt b/Docum= entation/devicetree/bindings/mtd/marvell-nand.txt index a2d9a0f2b683..293551ec7350 100644 --- a/Documentation/devicetree/bindings/mtd/marvell-nand.txt +++ b/Documentation/devicetree/bindings/mtd/marvell-nand.txt @@ -2,6 +2,7 @@ Marvell NAND Flash Controller (NFC) =20 Required properties: - compatible: can be one of the following: + * "marvell,ac5-nand-controller" * "marvell,armada-8k-nand-controller" * "marvell,armada370-nand-controller" * "marvell,pxa3xx-nand-controller" --=20 2.17.1 From nobody Tue Apr 7 19:07:18 2026 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 14B63C433FE for ; Wed, 19 Oct 2022 08:22:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230138AbiJSIWV (ORCPT ); Wed, 19 Oct 2022 04:22:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230184AbiJSIWF (ORCPT ); Wed, 19 Oct 2022 04:22:05 -0400 Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70093.outbound.protection.outlook.com [40.107.7.93]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B72DD7CB62; Wed, 19 Oct 2022 01:21:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AvWuXyIPcmo0Mz82MnAiV/FaUoFWgSyC1dGXA5pU54r7B6GIjBS2nd5GiddoO0L5Mpd66RKCgAFUB3FT/vLewjrBWsCZ0SR4Q34LQiUaN5Vh1WFRo1Y7khatwGuMUkJUVXW4ChnAJux3YsdFA0tuejQcXb/EBwfFiab4JcdTqYaeSf7qYvV8ZdryMj0fGOcQZiXvqxilpttiAOiZd4pSou9C/GLFK2hHdMcIwV8F6uBWSycJ3myFpQ3p6ORCe/enCMguE8Z6Y6zlPqJZIXwjvLdAWr2RJ9UUVsuG85F5ixGKCfpWvpuK2Tt2Ffit3jur5pBEORZRrkR1VptOQ1zATA== 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=GHsa9LuE7ltRU/sC4TdT4iLVg+ZxssgMeY349/Gh/m8=; b=WCUpZXJRggO+f4w1ENOKJ6wrk8pli2M0U8dT2k3p+xrquasLfSBMlc75/bifA8fUUSP9EOmYxO5cE1iCZgr2OkDBBYjhCndIRTsNnJpeXsIL6ujbs2IsAKnpPD0Hv1ZjRuQmA85Hp0ckHxPKnt9/tfxLqBRughkUusS4aWp9QOQQA4kM7Fqvhib+33p3cISTAfMUP/Gb/Fu2L2HE3kQ4smYi9d8V4AU1igYyP3ODtBLIof5GRKZteM9yr8YZySCIUqkEI4hTPekKK9HtXFfiZpHqvJAJW4JJLKxQ1ZUkY422BQaZ7Zkbfa4PqBzBl9gYjcAjGYOoSPKuvFi1Kdq40A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=plvision.eu; dmarc=pass action=none header.from=plvision.eu; dkim=pass header.d=plvision.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=plvision.eu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GHsa9LuE7ltRU/sC4TdT4iLVg+ZxssgMeY349/Gh/m8=; b=us5yPeqGcc4x9c729a++QCOJma51p9jhs7mUaAd1WX0K3wpm3sMlsn1OiGO0fHMbyej+ywuJlCAtDdg2/ShysQQ3m94WtQMcC/RAP6KRkOlfAIF4v74gf1eEux7MhqpOiCC2SzQp73615Y5am0QGGFewyFiMw0hLZZsmkKAouzM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=plvision.eu; Received: from VI1P190MB0317.EURP190.PROD.OUTLOOK.COM (2603:10a6:802:38::26) by DU0P190MB1930.EURP190.PROD.OUTLOOK.COM (2603:10a6:10:3bd::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.33; Wed, 19 Oct 2022 08:21:51 +0000 Received: from VI1P190MB0317.EURP190.PROD.OUTLOOK.COM ([fe80::a621:b61f:de56:b8]) by VI1P190MB0317.EURP190.PROD.OUTLOOK.COM ([fe80::a621:b61f:de56:b8%7]) with mapi id 15.20.5723.033; Wed, 19 Oct 2022 08:21:51 +0000 From: Vadym Kochan To: Miquel Raynal , Richard Weinberger , Vignesh Raghavendra , Rob Herring , Krzysztof Kozlowski , Roger Quadros , Florian Fainelli , Cai Huoqing , Thomas Bogendoerfer , Liang Yang , Vadym Kochan , linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Elad Nachman , Chris Packham , Aviram Dali Subject: [PATCH 3/3] mtd: rawnand: marvell: add support for AC5 SoC Date: Wed, 19 Oct 2022 11:20:40 +0300 Message-Id: <20221019082046.30160-4-vadym.kochan@plvision.eu> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221019082046.30160-1-vadym.kochan@plvision.eu> References: <20221019082046.30160-1-vadym.kochan@plvision.eu> X-ClientProxiedBy: FR3P281CA0110.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::7) To VI1P190MB0317.EURP190.PROD.OUTLOOK.COM (2603:10a6:802:38::26) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI1P190MB0317:EE_|DU0P190MB1930:EE_ X-MS-Office365-Filtering-Correlation-Id: bf85b25f-4de7-42a4-0b37-08dab1aaf967 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gXtkD2AlqJIrm6EtQE9c/x/joT6YrzUvEQLc1MemUakrRop224kasJwkeUVbqcWT4+4HfaxZZX56t70MgFbLXH6XCFPTQu8QU/6EopJgc1aLcsOMv9hzb79T6WPKbxYEmdtd8U9zZ2ilDR1lmbnrZD3YDcwDlR+N6rOwmsdq9alhWxddSNdhgk4iFzmpKCb1vB1dyjDS8gc4dYN0UsXo6X1CfnEV83sm/853fcVH6N3qORfRLWGDOwi5T6yzmWSyW9KOOqoTBTiAgTNDx1Ki2qwOb5PFiLLMnMLAQ+0x7TR7U1BcH4Db0bMLRK5qsXCHL9J4q4ofqj2e7pf/KTBkwpWQ/sGpjP9EfNtiSv6uGOs/QD5lLJwawv9uwbtkyl3ad0yImRKN3fIr9cKnp9mzn6Phj13sWeQm5aT+jfU4N9SGuVhaUgVuhOCeyVZ7AZuga9+t1A45Aar7p0lqwWsele04WGQANzYUVXYTw05DcWq+ux3FwNZ6cby0E72zuFLik/0CTAYk5Ik/QzVYH2e3iTu36Qu+B3+Xm6lhqlHLfktTYUhgyyOgDtRLHA9rT5X0xBoiLaUHHqZjMtaMpfoME7FQvWpdyZjQBxZWKppwuKEgpjz+Vf+6ZTv2EkloQewRPtcgpvpROGOef6Y4tNrhZIdtYb3UliPUnRAFGp7weCNo70mfDufYtzyTY2Wsckm22kypSYAgxfK5Os4v1te674HvPQYTyXcdNV7DKfv2lYU+ThWoHlna+k0mMEvjPOfp08bEd9nG/uB4eSsV07nwQg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1P190MB0317.EURP190.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(366004)(136003)(346002)(39840400004)(34036004)(451199015)(186003)(2616005)(26005)(6512007)(6506007)(1076003)(52116002)(83380400001)(7416002)(2906002)(6666004)(5660300002)(30864003)(44832011)(41320700001)(19627235002)(41300700001)(110136005)(6486002)(316002)(508600001)(8936002)(66556008)(54906003)(4326008)(66476007)(66946007)(8676002)(36756003)(86362001)(921005)(38350700002)(38100700002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2YqFty/dm70TFmOLcLYgN54Sw/GiYgbj94mgH5+WKhcWqESk2FIKV/fgCQxD?= =?us-ascii?Q?Z0qktoMk4QigCqg8hyK8gfTQvw6ZqYp+bkDt4Szk16NQya86gzaNvVeyO25w?= =?us-ascii?Q?VDrxcBXiM5Hm248QE0pBZdvn4MZainB01/OEDwjpBCbByYmNwssQr1/WgGGb?= =?us-ascii?Q?gl3sOLZqRLKjiIGWvVoXxO+pvFdqqy7lrQ2yhTN0rNqgDUSY9XgmgDrw2ghp?= =?us-ascii?Q?XYDoS2rDbUODiqDvenKCwfZpKsZPgG5O8LxUK06QvPoUdAygPcJB0Zqw00zh?= =?us-ascii?Q?zP/ZGUyJZYsW52+M2IOeuTWuR2+jpZohWDjPFuA7MTd52gSfIyNwU985MffS?= =?us-ascii?Q?gpcijOSBdS2nZ6klUSqHrwo8CJSu2sD/2UqGKdJ+EaBtNSPdCniPR+ywIVZr?= =?us-ascii?Q?KXFnMPgGUqjt4xpjJ3c9j2lKLMYHR4wt0/2JLe36qxvsKNoDLlVcWI5M/CGS?= =?us-ascii?Q?6vqHLW0By9PCTiWkuHwyK+wUVMiI7+pSv7gFY1BT8KFZSpowcrrCfJjA+Jo3?= =?us-ascii?Q?SOCUVv+AKCxAy3dmM5EGt51r95G7YPRbnC6tlp0jNsKA+WPq0TkvtzHypXNc?= =?us-ascii?Q?ixXyuHVjuXIkvF/DrZTYexU0d0b97WhrF2y3sxwgV5EyDL+/4BZnMOM2QS7L?= =?us-ascii?Q?UThRfSvGaBsTyGd56z4c1eeXazgmjA6e1KB6lEJ/XeA+PnH4bXPH1dcyXo+D?= =?us-ascii?Q?SNIHe+0dTUJf5vJ9BQ7FIdXKg+cSA4xivbl29cdXPKDsnXLH+zPA6HzLThoe?= =?us-ascii?Q?aqYqk9A2PAeU7BQlrufkNlFf9FkDwzjShNGCY6Hr3BSF0mt4xbv5y6xVMK9j?= =?us-ascii?Q?b4ISs6nXJLOPxsoSJOHdqg6nzIXDlpDR3s51Z/yvxh9rhd/1pYjFo3/yQQsR?= =?us-ascii?Q?y+4UBfSp1cdmFKEMC6iGZZ157UuIdolW/Klhm0zibtmNtKyE74zQMoSGWjkI?= =?us-ascii?Q?JOB05fSNgvuulLGsrH72n92Wum19n7adeEKBc6xYONiBegxGMMYkk2hgloNm?= =?us-ascii?Q?/L7lsycZJWiuWRDRO7chgRvxmZ9RGt2jq82GkVCQGcgVISUw7PI/R5M5YmmS?= =?us-ascii?Q?IGpRKwiA3Hz54qEJ25ZhxF2IvLDQd9KXXKVuzF1MAbpw5Wt5gEKY/NBPOohN?= =?us-ascii?Q?kN2yxvnGcRK/DHPc54ILmrvZiiA+Owe7GAD3WRKfR55Du4KhlIfAuzDVCU1G?= =?us-ascii?Q?0h4uJ/efJMekim5rZEN0/M3X96zEtzdyV9hJwQYC0EJA+99aDYl6kWYUddg1?= =?us-ascii?Q?nn1GgoTlHMaec8Z4FGGpDzoKY0vTxTnkDcPLEYTwpU2wMhDA6drlIMBc6oGD?= =?us-ascii?Q?4d56SSBmtepVkElYnTT6Pd+pxS2A0zJUbHHo+YA5KXEekNNfKxaPLLU3fx0C?= =?us-ascii?Q?xvnt9poJtP8scmd8eseHxvh4wGZ6MBLvi141BJ/lqCXpFSKAZw5HKw47ta8r?= =?us-ascii?Q?+Q5pa8DPkwysZhGpFKmQ84tk+Hl1eyzAE4HLCvxNx43d1tWyzIFQ9mKhOISV?= =?us-ascii?Q?doth9PR9MlKztjS/PI9o3KF0eNZ0n5ugW07Dm69gO7NAjlVZji51OuRS9nUD?= =?us-ascii?Q?nOZpntkKo4IJr1PIzx1zSygvkjLJ0P/9dOxs3O6n9BSSLailI8UNj70SNO5M?= =?us-ascii?Q?uQ=3D=3D?= X-OriginatorOrg: plvision.eu X-MS-Exchange-CrossTenant-Network-Message-Id: bf85b25f-4de7-42a4-0b37-08dab1aaf967 X-MS-Exchange-CrossTenant-AuthSource: VI1P190MB0317.EURP190.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Oct 2022 08:21:51.4432 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 03707b74-30f3-46b6-a0e0-ff0a7438c9c4 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: pWioPlmoSUHnG+nySQyo1w6jtpYnhzPu5A0uIlBkBEQDBsNGWyMYReWu83eaXi2Cl2w5bm1mmegOCl9YYcEWCYHOIDBPg0DNMSaCUvpZXDA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0P190MB1930 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Aviram Dali The following changes were made to add AC5 support: 1) Modify Marvell nand NFC timing set for mode 0 2) fix validation in AC5 Nand driver for ONFI timings values modes 1 and= 3 3) remove unnecessary nand timing-mode in device tree of ac5.dtsi 4) add nand missing AC5X layouts , add option to use ndtr predefined val= ues 5) Zero steps and total fields of ecc in ecc controller initialization so nand_scan_tail() will calculate these two fields, otherwise NAND initialization will fail with kernel 5.15 and above. Signed-off-by: Aviram Dali Signed-off-by: Vadym Kochan --- drivers/mtd/nand/raw/Kconfig | 2 +- drivers/mtd/nand/raw/marvell_nand.c | 277 ++++++++++++++++++++++++---- 2 files changed, 246 insertions(+), 33 deletions(-) diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index 4cd40af362de..b7bb62f27e02 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -160,7 +160,7 @@ config MTD_NAND_MARVELL including: - PXA3xx processors (NFCv1) - 32-bit Armada platforms (XP, 37x, 38x, 39x) (NFCv2) - - 64-bit Aramda platforms (7k, 8k) (NFCv2) + - 64-bit Aramda platforms (7k, 8k, ac5) (NFCv2) =20 config MTD_NAND_SLC_LPC32XX tristate "NXP LPC32xx SLC NAND controller" diff --git a/drivers/mtd/nand/raw/marvell_nand.c b/drivers/mtd/nand/raw/mar= vell_nand.c index b9d1e96e3334..940a89115782 100644 --- a/drivers/mtd/nand/raw/marvell_nand.c +++ b/drivers/mtd/nand/raw/marvell_nand.c @@ -226,6 +226,20 @@ #define XTYPE_COMMAND_DISPATCH 6 #define XTYPE_MASK 7 =20 +/* use tRP_min, tWC_min and tWP_min to distinct across timings modes */ +#define IS_TIMINGS_EQUAL(t1, t2) \ + ((t1->tRP_min =3D=3D t2->tRP_min &&\ + t1->tWC_min =3D=3D t2->tWC_min &&\ + t1->tWP_min =3D=3D t2->tWP_min) ? true : false) + +/* ndtr0,1 set , each set has few modes level */ +typedef enum marvell_nfc_timing_mode_set { + MARVELL_NFC_NDTR_SET_0, /* tested with ac5 */ + + MARVELL_NFC_NDTR_NUM_OF_SET, + MARVELL_NFC_NDTR_SET_NON =3D MARVELL_NFC_NDTR_NUM_OF_SET +} marvell_nfc_timing_mode_set_t; + /** * struct marvell_hw_ecc_layout - layout of Marvell ECC * @@ -283,14 +297,21 @@ struct marvell_hw_ecc_layout { =20 /* Layouts explained in AN-379_Marvell_SoC_NFC_ECC */ static const struct marvell_hw_ecc_layout marvell_nfc_layouts[] =3D { - MARVELL_LAYOUT( 512, 512, 1, 1, 1, 512, 8, 8, 0, 0, 0), - MARVELL_LAYOUT( 2048, 512, 1, 1, 1, 2048, 40, 24, 0, 0, 0), - MARVELL_LAYOUT( 2048, 512, 4, 1, 1, 2048, 32, 30, 0, 0, 0), - MARVELL_LAYOUT( 2048, 512, 8, 2, 1, 1024, 0, 30,1024,32, 30), - MARVELL_LAYOUT( 4096, 512, 4, 2, 2, 2048, 32, 30, 0, 0, 0), - MARVELL_LAYOUT( 4096, 512, 8, 5, 4, 1024, 0, 30, 0, 64, 30), - MARVELL_LAYOUT( 8192, 512, 4, 4, 4, 2048, 0, 30, 0, 0, 0), - MARVELL_LAYOUT( 8192, 512, 8, 9, 8, 1024, 0, 30, 0, 160, 30), + MARVELL_LAYOUT(512, 512, 1, 1, 1, 512, 8, 8, 0, 0, 0), + MARVELL_LAYOUT(2048, 512, 1, 1, 1, 2048, 40, 24, 0, 0, 0), + MARVELL_LAYOUT(2048, 512, 4, 1, 1, 2048, 32, 30, 0, 0, 0), + MARVELL_LAYOUT(2048, 512, 8, 2, 1, 1024, 0, 30, 1024, 32, 30), + MARVELL_LAYOUT(2048, 512, 8, 2, 1, 1024, 0, 30, 1024, 64, 30), + MARVELL_LAYOUT(2048, 512, 12, 3, 2, 704, 0, 30, 640, 0, 30), + MARVELL_LAYOUT(2048, 512, 16, 5, 4, 512, 0, 30, 0, 32, 30), + MARVELL_LAYOUT(4096, 512, 4, 2, 2, 2048, 32, 30, 0, 0, 0), + MARVELL_LAYOUT(4096, 512, 8, 5, 4, 1024, 0, 30, 0, 64, 30), + MARVELL_LAYOUT(4096, 512, 12, 6, 5, 704, 0, 30, 576, 32, 30), + MARVELL_LAYOUT(4096, 512, 16, 9, 8, 512, 0, 30, 0, 32, 30), + MARVELL_LAYOUT(8192, 512, 4, 4, 4, 2048, 0, 30, 0, 0, 0), + MARVELL_LAYOUT(8192, 512, 8, 9, 8, 1024, 0, 30, 0, 160, 30), + MARVELL_LAYOUT(8192, 512, 12, 12, 11, 704, 0, 30, 448, 64, 30), + MARVELL_LAYOUT(8192, 512, 16, 17, 16, 512, 0, 30, 0, 32, 30), }; =20 /** @@ -328,6 +349,7 @@ struct marvell_nand_chip_sel { * @selected_die: Current active CS * @nsels: Number of CS lines required by the NAND chip * @sels: Array of CS lines descriptions + * @nand_timing_mode: nand-timing-mode from dts */ struct marvell_nand_chip { struct nand_chip chip; @@ -339,6 +361,7 @@ struct marvell_nand_chip { int addr_cyc; int selected_die; unsigned int nsels; + int nand_timing_mode; struct marvell_nand_chip_sel sels[]; }; =20 @@ -367,6 +390,10 @@ static inline struct marvell_nand_chip_sel *to_nand_se= l(struct marvell_nand_chip * BCH error detection and correction algorithm, * NDCB3 register has been added * @use_dma: Use dma for data transfers + * @is_marvell_timing_modes: use marvell predefined register values per mo= de + * @max_mode_number: supported mode by NFC (max mode that supported) + * @timing_mode_set: which set to use from predefined array of sets + each set has few modes */ struct marvell_nfc_caps { unsigned int max_cs_nb; @@ -375,6 +402,9 @@ struct marvell_nfc_caps { bool legacy_of_bindings; bool is_nfcv2; bool use_dma; + bool is_marvell_timing_modes; + unsigned int max_mode_number; + marvell_nfc_timing_mode_set_t timing_mode_set; }; =20 /** @@ -485,6 +515,118 @@ struct marvell_nfc_op { const struct nand_op_instr *data_instr; }; =20 +/* NFC ndtr0 */ +typedef union marvell_nand_ndtr0 { + struct { + unsigned int tRP :3; /* 0-2 */ + unsigned int tRH :3; /* 3-5 */ + unsigned int tRPE :1; /* 6 */ + unsigned int tRE_edge :1; /* 7 */ + unsigned int tWP :3; /* 8-10 */ + unsigned int tWH :3; /* 11-13 */ + unsigned int reserved :2; /* 14-15 */ + unsigned int tCS :3; /* 16-18 */ + unsigned int tCH :3; /* 19-21 */ + unsigned int Rd_Cnt_Del :4; /* 22-25 */ + unsigned int selCnrl :1; /* 26 */ + unsigned int tADL :5; /* 27-31 */ + } fields; + unsigned int regValue; +} marvell_nfc_ndtr0_t; + +/* NFC ndtr1 */ +typedef union marvell_nand_ndtr1 { + struct { + unsigned int tAR :4; /* 0-3 */ + unsigned int tWHR :4; /* 4-7 */ + unsigned int tRHW :2; /* 8-9 */ + unsigned int reserved :4; /* 10-13 */ + unsigned int Prescale :1; /* 14 */ + unsigned int wait_mode :1; /* 15 */ + unsigned int tR :16; /* 16-31 */ + } fields; + unsigned int regValue; +} marvell_nfc_ndtr1_t; + +#define NUM_OF_TIMING_MODES 6 + +/* arrays of NFC timings modes */ +typedef marvell_nfc_ndtr0_t marvell_nfc_ndtr0_arr[NUM_OF_TIMING_MODES]; +typedef marvell_nfc_ndtr1_t marvell_nfc_ndtr1_arr[NUM_OF_TIMING_MODES]; + +#define MARVELL_NTDR0(trp, trh, trpe, tre_edge, twp, twh, resrv, tcs, tch,= rd_cnt_del, selcnrl, tadl) \ + {\ + .fields =3D {\ + .tRP =3D trp, /* 0-2 */\ + .tRH =3D trh, /* 3-5 */\ + .tRPE =3D trpe, /* 6 */\ + .tRE_edge =3D tre_edge, /* 7 */\ + .tWP =3D twp, /* 8-10 */\ + .tWH =3D twh, /* 11-13 */\ + .reserved =3D resrv, /* 14-15 */\ + .tCS =3D tcs, /* 16-18 */\ + .tCH =3D tch, /* 19-21 */\ + .Rd_Cnt_Del =3D rd_cnt_del, /* 22-25 */\ + .selCnrl =3D selcnrl, /* 26 */\ + .tADL =3D tadl, /* 27-31 */\ + } \ + } + +#define MARVELL_NTDR1(tar, twhr, trhw, resrv, prescale, waiting_mode, tr) \ + {\ + .fields =3D {\ + .tAR =3D tar, /* 0-3 */\ + .tWHR =3D twhr, /* 4-7 */\ + .tRHW =3D trhw, /* 8-9 */\ + .reserved =3D resrv, /* 10-13 */\ + .Prescale =3D prescale, /* 14 */\ + .wait_mode =3D waiting_mode, /* 15 */\ + .tR =3D tr, /* 16-31 */\ + } \ + } + +/* ndtr0_modes and ndtr1_modes are arrays of modes with optimal values + * that were tested with Marvell NFC with correlation to ONFI timings mode + * each entry in the array presents different set of modes , for example a= c5 + * is entry 0. + */ +/* todo: add more modes ASAP */ + +/* Layouts explained in AN-379_Marvell_SoC_NFC_ECC */ +marvell_nfc_ndtr0_arr ndtr0_modes[MARVELL_NFC_NDTR_NUM_OF_SET] =3D { + + /* value tested with AC5 */ + { + MARVELL_NTDR0(7, 7, 1, 1, 7, 7, 0, 7, 7, 12, 1, 31), + MARVELL_NTDR0(6, 3, 0, 0, 5, 4, 0, 7, 7, 1, 1, 15), + MARVELL_NTDR0(4, 3, 0, 0, 3, 3, 0, 7, 7, 2, 1, 15), + MARVELL_NTDR0(3, 2, 0, 0, 3, 2, 0, 1, 0, 2, 1, 15) + } +}; + +marvell_nfc_ndtr1_arr ndtr1_modes[MARVELL_NFC_NDTR_NUM_OF_SET] =3D { + + /* value tested with AC5 */ + { + MARVELL_NTDR1(15, 15, 3, 0, 0, 1, 50), + MARVELL_NTDR1(15, 15, 3, 0, 0, 1, 25), + MARVELL_NTDR1(15, 15, 3, 0, 0, 1, 25), + MARVELL_NTDR1(11, 11, 2, 0, 0, 1, 25) + } +}; + +/* + * get nand timing-mode from device tree + */ +static int get_nand_timing_mode(struct device_node *np) +{ + int ret; + u32 val; + + ret =3D of_property_read_u32(np, "nand-timing-mode", &val); + return ret ? ret : val; +} + /* * Internal helper to conditionnally apply a delay (from the above structu= re, * most of the time). @@ -2257,9 +2399,21 @@ static int marvell_nand_hw_ecc_controller_init(struc= t mtd_info *mtd, } =20 mtd_set_ooblayout(mtd, &marvell_nand_ooblayout_ops); - ecc->steps =3D l->nchunks; ecc->size =3D l->data_bytes; =20 + /* nand_scan_tail func perform validity tests for ECC strength, and it + * assumes that all chunks are with same size. in our case when ecc is 12 + * the chunk size is 704 but the last chunk is with different size so + * we cheat it nand_scan_tail validity tests by set info->ecc_size value = to + * 512. + */ + if (ecc->strength =3D=3D 12) + ecc->size =3D 512; + + /* let nand_scan_tail() calculate these two fields */ + ecc->steps =3D 0; + ecc->total =3D 0; + if (ecc->strength =3D=3D 1) { chip->ecc.algo =3D NAND_ECC_ALGO_HAMMING; ecc->read_page_raw =3D marvell_nfc_hw_ecc_hmg_read_page_raw; @@ -2360,9 +2514,11 @@ static int marvell_nfc_setup_interface(struct nand_c= hip *chip, int chipnr, struct marvell_nand_chip *marvell_nand =3D to_marvell_nand(chip); struct marvell_nfc *nfc =3D to_marvell_nfc(chip->controller); unsigned int period_ns =3D 1000000000 / clk_get_rate(nfc->core_clk) * 2; - const struct nand_sdr_timings *sdr; + const struct nand_sdr_timings *sdr, *timings; struct marvell_nfc_timings nfc_tmg; int read_delay; + marvell_nfc_timing_mode_set_t modes_set; + int mode =3D 0; =20 sdr =3D nand_get_sdr_timings(conf); if (IS_ERR(sdr)) @@ -2421,32 +2577,71 @@ static int marvell_nfc_setup_interface(struct nand_= chip *chip, int chipnr, nfc_tmg.tR =3D 0; } =20 - if (chipnr < 0) - return 0; =20 - marvell_nand->ndtr0 =3D - NDTR0_TRP(nfc_tmg.tRP) | - NDTR0_TRH(nfc_tmg.tRH) | - NDTR0_ETRP(nfc_tmg.tRP) | - NDTR0_TWP(nfc_tmg.tWP) | - NDTR0_TWH(nfc_tmg.tWH) | - NDTR0_TCS(nfc_tmg.tCS) | - NDTR0_TCH(nfc_tmg.tCH); + /* get the timing modes from predefined values according to its compatibi= lity */ + if (nfc->caps->is_marvell_timing_modes) { + /* get the mode set */ + modes_set =3D nfc->caps->timing_mode_set; + if (modes_set >=3D MARVELL_NFC_NDTR_SET_NON) { + dev_warn(nfc->dev, + "Warning: not supported timing registers set,use set number 0 by defau= lt\n"); =20 - marvell_nand->ndtr1 =3D - NDTR1_TAR(nfc_tmg.tAR) | - NDTR1_TWHR(nfc_tmg.tWHR) | - NDTR1_TR(nfc_tmg.tR); + modes_set =3D MARVELL_NFC_NDTR_SET_0; + } =20 - if (nfc->caps->is_nfcv2) { - marvell_nand->ndtr0 |=3D - NDTR0_RD_CNT_DEL(read_delay) | - NDTR0_SELCNTR | - NDTR0_TADL(nfc_tmg.tADL); + /* find the caller mode according to timings values */ + /* if exit on error it means no more modes; not suppose to happen */ + do { + timings =3D onfi_async_timing_mode_to_sdr_timings(mode); + if (IS_TIMINGS_EQUAL(timings, sdr)) + break; + mode++; + } while (!IS_ERR(timings)); + + /* if mode is not supported by NFC, return false or if nand-timing-mode = that + * exists in device tree greater then caller mode also return false and = wait + * for caller to try with next mode (mode-1). we want the nand feature t= o be + * configured with nand-timing-mode value. + */ + if (mode > nfc->caps->max_mode_number || + ((marvell_nand->nand_timing_mode) >=3D 0 && + (mode > marvell_nand->nand_timing_mode))) + return -EOPNOTSUPP; + + /* just checking NFC capabilities no need to set the registers */ + if (chipnr < 0) + return 0; =20 - marvell_nand->ndtr1 |=3D - NDTR1_TRHW(nfc_tmg.tRHW) | - NDTR1_WAIT_MODE; + marvell_nand->ndtr0 =3D ndtr0_modes[modes_set][mode].regValue; + marvell_nand->ndtr1 =3D ndtr1_modes[modes_set][mode].regValue; + } else { + if (chipnr < 0) + return 0; + + marvell_nand->ndtr0 =3D + NDTR0_TRP(nfc_tmg.tRP) | + NDTR0_TRH(nfc_tmg.tRH) | + NDTR0_ETRP(nfc_tmg.tRP) | + NDTR0_TWP(nfc_tmg.tWP) | + NDTR0_TWH(nfc_tmg.tWH) | + NDTR0_TCS(nfc_tmg.tCS) | + NDTR0_TCH(nfc_tmg.tCH); + + marvell_nand->ndtr1 =3D + NDTR1_TAR(nfc_tmg.tAR) | + NDTR1_TWHR(nfc_tmg.tWHR) | + NDTR1_TR(nfc_tmg.tR); + + if (nfc->caps->is_nfcv2) { + marvell_nand->ndtr0 |=3D + NDTR0_RD_CNT_DEL(read_delay) | + NDTR0_SELCNTR | + NDTR0_TADL(nfc_tmg.tADL); + + marvell_nand->ndtr1 |=3D + NDTR1_TRHW(nfc_tmg.tRHW) | + NDTR1_WAIT_MODE; + } } =20 return 0; @@ -2568,6 +2763,7 @@ static int marvell_nand_chip_init(struct device *dev,= struct marvell_nfc *nfc, struct nand_chip *chip; int nsels, ret, i; u32 cs, rb; + struct device_node *dn; =20 /* * The legacy "num-cs" property indicates the number of CS on the only @@ -2681,6 +2877,10 @@ static int marvell_nand_chip_init(struct device *dev= , struct marvell_nfc *nfc, if (of_property_read_bool(np, "marvell,nand-keep-config")) chip->options |=3D NAND_KEEP_TIMINGS; =20 + /* read the mode from device tree */ + dn =3D nand_get_flash_node(chip); + marvell_nand->nand_timing_mode =3D get_nand_timing_mode(dn); + mtd =3D nand_to_mtd(chip); mtd->dev.parent =3D dev; =20 @@ -3064,6 +3264,15 @@ static const struct marvell_nfc_caps marvell_armada_= 8k_nfc_caps =3D { .is_nfcv2 =3D true, }; =20 +static const struct marvell_nfc_caps marvell_ac5_caps =3D { + .max_cs_nb =3D 2, + .max_rb_nb =3D 1, + .is_nfcv2 =3D true, + .is_marvell_timing_modes =3D true, + .max_mode_number =3D 3, + .timing_mode_set =3D MARVELL_NFC_NDTR_SET_0, +}; + static const struct marvell_nfc_caps marvell_armada370_nfc_caps =3D { .max_cs_nb =3D 4, .max_rb_nb =3D 2, @@ -3112,6 +3321,10 @@ static const struct of_device_id marvell_nfc_of_ids[= ] =3D { .compatible =3D "marvell,armada-8k-nand-controller", .data =3D &marvell_armada_8k_nfc_caps, }, + { + .compatible =3D "marvell,ac5-nand-controller", + .data =3D &marvell_ac5_caps, + }, { .compatible =3D "marvell,armada370-nand-controller", .data =3D &marvell_armada370_nfc_caps, --=20 2.17.1