From patchwork Fri Nov 18 10:42:47 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Krzeminski, Marcin (Nokia - PL/Wroclaw)" X-Patchwork-Id: 696536 X-Patchwork-Delegate: cyrille.pitchen@atmel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3tKvmW4pVNz9t0X for ; Fri, 18 Nov 2016 21:46:03 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nokia.onmicrosoft.com header.i=@nokia.onmicrosoft.com header.b="avl2kdbE"; dkim-atps=neutral Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1c7ges-000501-Bz; Fri, 18 Nov 2016 10:44:38 +0000 Received: from mail-db5eur01on0119.outbound.protection.outlook.com ([104.47.2.119] helo=EUR01-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1c7geS-0004or-R1 for linux-mtd@lists.infradead.org; Fri, 18 Nov 2016 10:44:18 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=3rNoMeg8i+aOxU5N9Em2zqvypWTYfrZQJrn2UsDDuG4=; b=avl2kdbEZuiIaoOGtnkLZqh5rW4RID09nXSFL9wdsl8rfMQJjdVbfo6lGPjaJnCVmkpGnJll1S+5Uc1LeI1D7vP5lG3mrYg1WtlwZrvVpWDcEbTAPFmF4iTVa3WqBJCZNiqhNR5e862THMtHR81EMaFkoOdsuS4e91AkPgMbUQw= Received: from DB6PR0701CA0039.eurprd07.prod.outlook.com (10.168.7.177) by HE1PR0701MB2794.eurprd07.prod.outlook.com (10.168.189.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.721.10; Fri, 18 Nov 2016 10:43:48 +0000 Received: from DB3FFO11FD039.protection.gbl (2a01:111:f400:7e04::178) by DB6PR0701CA0039.outlook.office365.com (2603:10a6:4:3::49) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.734.2 via Frontend Transport; Fri, 18 Nov 2016 10:43:47 +0000 Authentication-Results: spf=pass (sender IP is 131.228.2.241) smtp.mailfrom=nokia.com; lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=pass action=none header.from=nokia.com; Received-SPF: Pass (protection.outlook.com: domain of nokia.com designates 131.228.2.241 as permitted sender) receiver=protection.outlook.com; client-ip=131.228.2.241; helo=fihe3nok0735.emea.nsn-net.net; Received: from fihe3nok0735.emea.nsn-net.net (131.228.2.241) by DB3FFO11FD039.mail.protection.outlook.com (10.47.217.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.734.4 via Frontend Transport; Fri, 18 Nov 2016 10:43:45 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:1066; Count:12 Received: from fihe3nok0735.emea.nsn-net.net (localhost [127.0.0.1]) by fihe3nok0735.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id uAIAh828006380 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 18 Nov 2016 12:43:08 +0200 Received: from CNU418C7XK.nsn-intra.net ([10.154.154.85]) by fihe3nok0735.emea.nsn-net.net (8.14.9/8.14.5) with ESMTP id uAIAh6xQ006361; Fri, 18 Nov 2016 12:43:07 +0200 X-HPESVCS-Source-Ip: 10.154.154.85 From: To: Subject: [PATCH v2 1/3] mtd: spi-nor: Add die_cnt field and flags Date: Fri, 18 Nov 2016 11:42:47 +0100 Message-ID: <1479465769-28276-2-git-send-email-marcin.krzeminski@nokia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1479465769-28276-1-git-send-email-marcin.krzeminski@nokia.com> References: <1479465769-28276-1-git-send-email-marcin.krzeminski@nokia.com> X-IncomingHeaderCount: 12 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:131.228.2.241; IPV:NLI; CTRY:FI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(7916002)(2980300002)(438002)(189002)(199003)(36756003)(87936001)(8676002)(92566002)(2906002)(68736007)(81156014)(4326007)(76176999)(626004)(81166006)(47776003)(50986999)(6916009)(6666003)(356003)(50466002)(77096005)(189998001)(2950100002)(48376002)(53416004)(8936002)(5003940100001)(2351001)(33646002)(5660300001)(86152002)(305945005)(575784001)(110136003)(7846002)(97736004)(2876002)(50226002)(86362001)(38730400001)(106466001); DIR:OUT; SFP:1102; SCL:1; SRVR:HE1PR0701MB2794; H:fihe3nok0735.emea.nsn-net.net; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB3FFO11FD039; 1:N5LAKhzTT7JGIelLvRFC7JUEPRKr71Mjo2ERjKF+Rx4FRlNXzi3Wq+JjnWXp8TCv5pMY1G9LxVH9F3XgN649YRofhq+aqGqbQFKXt3UKvIsrQKG6efIEerROh5RXkoUE9eFO4IR0fSxrina+Fzedc6rHrVgKlYrEkHfLC0vOILlzdOJjDh0TRLLt0Mv9otcD4719QQSU5M2nFy/zLc9ztuQFKGKd64rYeiotvng8TCyitUCraeL41kHULYx+axD+WrtNDeLsCerIi87Y5ihQJE+VNNsVdouE5sJ7WuTj5ZhEmzsuVnRZ+u84QDbOkAow1/MUQR5WsQiF00gYGlE5NXAB0FhVgZYn1Bq6I61wvgJ5F8KkRb52jmBIVQsbNXtscE2GWJCfG31NFr6ngea94tp+3k7XFCkKy87xrfQ2c26lh2yUY5laRsw4mDqw4azYfMsWTHQQ+iSqkQvqQhEFFa1B2GVxpVv083oxn7ZgL7fK49+hgA1SM6J52+/nXT/KdUBgmqdpOVzC0xCQhMo2sw== MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2794; 2:vWCNqtNJeF4urI7QtTPyQuQM9nkKqBOCQpp+l/T0w+cc88l27Lh/XLwSSmDsA3cuThRld244y7Si+oBU9229c6aMJszbQTbTk3SASwdnQ8IzetfcxZddO2nE/Y/7uOo5DYvCL2MTM2fWv2Or3PqTV38BsW8CbaVffveN1e7YeSU=; 3:+QjtR5ccLASdmyeqGDKdelP9jYFP/8btRczf3+RXvBkVjtFWQmqM9zjpYGYpM5pKpHP54+4h8StSyQWGuoiGqp269rK8n055BE54HjVcC2/gkWPVcjmJfWwY12bXUF9WN3/ybYn3PaMrdfUu2U3jyg6rbNGKfAInEz50AcdgclOckT6E/m/6O9ZQHQtZOpzIBhjH3ZOGvtiq7ertH4leD4dSpX9a7sL6kLA64mNIVufRQjbHPOSiHA6QNGKNAWQvTQsrmXwToU1ZlMkZ9CznFCjFt0VZMEIbc6+efr+pKAk= X-MS-Office365-Filtering-Correlation-Id: 2c7a34ae-6cb8-49c9-b935-08d40f9fc688 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:HE1PR0701MB2794; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2794; 25:wXThSjTDT8IN6mP2W3XHtsakO6GHygRUrk/3vl3zFUMQPpE912hC4sE2WCoNUPG62WP9YR8odqtq9Z4OxjIvJNi7P7w7pUDNX7B/r6pOQQnHg1zwguPKCCcQlia+xIkUmJnr39EJ2Sb/YLhbsjAH8vjNrKQyZl9aErS2z6A0difhjoAMfrJ0TrYc62+2kYznazjqH4BnuQTC2VfyFIDGbefARqh6utF/tuNn5g1HIH7xWIsfOreTMbVx9TJm3MPgSZygXd13SSXoOgTrIeqnP3OH01JbptWgRR26hKDM09xLXA7B4wJ25osSJJY8cr5gR8eF844E3SxAINqg2149L0XLldDolVzt5XCwXjTQBvx3ATh68f/XBn158MgP55NQxlHihiMoOx2oe3SR4uLRy0cfP/DGYOMej9ZsT1hCrLjikKV7JrDBfhY95zDz5vCpPYNesW37OGU1Xn99pq8meQjw8lVCN3TQtZCvEG5/bDNWd1laVe3fhAHcFSZ/wPVk3NFyVmVk1k++YKk3UIZ4BWe3NW4+V84ThcqrJYknf0GGPkhrSbxVMDqV4BEB5Hju8MAWO/mphDtu7NWVwLfmoNzRnP0WEY+8Pgvj6CHfU4ILbEBCJxtYrXbgXjrxmA0idgpSFBtz311gF/bnum9jknIlOIyyTUbYYdqU18IRlp4JFM49Ya4Cwu8btJHcU0VKj4Ny/gE18hMykmlHH4SQtBqrMjXIKqgPgX3E/dbkFGWbW9PdVzS3rTFsiEM0SdNsRI1ayooGLZV+verU07hCsg== X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2794; 31:Q4R+61V4DWAtyC3yaMbX0CIAxizwJcfy+ACMNNyAN5FCfGzNust4Tf/uggbU/nHZVDFbH9c0DFRdeAOa52RYcJ+Nk/AmhKJRQXECzMaiub99jte9u5GXADOMT7Iq4sysTFrIKeDDtNQR7JAC9O0FlXxPAiledqqPvvtnnG5EtXXd/jqYDFU54DDhrnv8Ov2+6zmw/JT1b/TVAiKbehBvCIP4sS0SjiS/HHdevark/jlMT4HXjhMTag5tNHhn5sbh20fXMOrO8DifnHdk7FR04rd/E/8YfG+VOXIAcesoMo0=; 20:ovvSIuV1pYTnln01kzdsSvlgxDsvkdvJuM6IQXGidKOLHJ4yMv/0fZ2q2Dci+i/cRsVbwUfH58TEuRuW+V4csrdqLG4R/ViFVi1nlPFw3vqeuI1ExK+loaFnWKa5RHURt0+294LsjhnuHLn89h3Zj3+Fklds6LPZ9MOZZFDQCWOUZf5pBUkP9bdj9rZ2GF0mkWBmpt9hwRHLKv7m+sLW0V6I8ufO6EMfYD2P2kJss2i43nfVTy2eaNGx2uxFCx+moL26sNXhRWisD8+nfmWwL393EvZc2rrD035ZHPtQAywYGgNlHtFV42hBC3bfBG5HAJDyhvKZT3I5gmYRLuEqYY+WaHMvIaaLOVsKPpnY3Nh8dHVm9lTBH2jOTFx5v1NxKp/Q/CIZeZsCKRo673fJiZQYrIeonoYmEsh+Gf17FwvJQKH14m06KjK28m8ymPWHasbJ7xrDq3W+2sn8JogRaOIS2UkeLiXyj9SMbpGIMVd/j4wOswXgLqHsEKhdjcGd5dzAw6wdu0UQ2Pa8FS/oIMhztr4noG2lElc6QfHiNLpt2O5f6Mwk/bOZJa2Oo4ei7u/YWIoCeI5v7YElSWcFT+M1jpStf4z9XZUYNy5KibA= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(82608151540597); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6060326)(6040281)(601004)(2401047)(8121501046)(13016025)(5005006)(13018025)(3002001)(10201501046)(6055026)(6061324)(6041223); SRVR:HE1PR0701MB2794; BCL:0; PCL:0; RULEID:; SRVR:HE1PR0701MB2794; X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2794; 4:4zHzTTFlIKNxqN3g8fAMPMfMN5PdppMlQUCT7HCXZa4WEmjro2h3r47zc1TDbGAMUFXqzD6o0oYlVkyqqWE4zcHft8x8qWrhWU7j+eR/p36sQEMdNsxdgHDlYLYVqRPUggu6QCny8babkXzRNJUYfO9bhhhBPfk+mFp4c0BpxMga2e32L/e2h2XyDqbZlJrarPghijaTl/U4FdMA4vPY49WqmH8fBrYbUlE6ru5ai3Z8IJbALByaZ47VOXLt3zYnQ/Itps4zf9BvXHjnesQ0s2GXvjqphmMYbOzEPr52MLOyS5qCYHNr5Zsf/kwVS8txjnP8CcP/hlRG6wJYIBmvAvGq+sG3hGrHP112Zizm/sgBAEqeJ+Qv9eTR+F4NsDu90mG0Z8c0uc/3gDPtC8NbgXLQ9Pb8/LLZx4jF/wd1CevpYNOGqWcNynN9TTLLfed85aC5yaXk7NkjE/enT3ZLlPSDUFRO7n0vviTsO/0wjV3+ZGwYPt6f7SHBfCzlT8GWLExm6pPIh/B8ltu1jj6jN/G0r/93ugT4oso9QqWq5z0Ne6BG0zBy8xvloJCeZSS3 X-Forefront-PRVS: 01304918F3 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR0701MB2794; 23:7OxhxNjzlQ/MwN3dxlzn2LYOAxIM53K9Hv6+V1E?= =?us-ascii?Q?SIYZW6XMLjyUXLLT4MrRAjZT9xCw7lA8Lq56GlE2We7yf9J57z61I3nMv0YB?= =?us-ascii?Q?o9cHFVhiD3PuIuJY5MfqKyXdKzc2lZ3ie55HVDAQP3lAN7oHHQnYBypi+jF0?= =?us-ascii?Q?6xv+ufvFdz6+KkRwKmIbKxk7Qiq6rNi3QL1cWqjyvDp2s/hGIEgdCubGfMnn?= =?us-ascii?Q?TLkjgdkPBj+pQE8bJToaLjpssfXUkC+s0Uv5PMUtQmgNm3vXOW2TVB/6UPca?= =?us-ascii?Q?hh7gLOnP82iro9t/dWhANSURZ5SBrSbo+DOe+XuuuYFPgAEVvcML0C0GvP+Z?= =?us-ascii?Q?ClX696ALVdyFk9Y99UdnK7ovrG4hUxicwGttuh13s1IqR5udTyyW5iWjxA4p?= =?us-ascii?Q?0v/N9Jb3Kh0gIndCvT+nljZPq6pXUtDw988kRBrtvhXwcbzJ8tVEpf0g4nal?= =?us-ascii?Q?20YrigBKYb/ip1E7uxoIBb8l96jPsHR7POEJI6zkr51M++dReVIahGNj2ny9?= =?us-ascii?Q?JoP/4hXEpNb5Xjgigb7ybCxTWE1P9dBM9QBBl3eUbRkkcZ5W9szT0jfPgDUD?= =?us-ascii?Q?jwBEMK9jjy8Q1/CKR5ej92VcwwAkFjqYYRP9LxIy6PuZhX4lFZf9dtngt/Vv?= =?us-ascii?Q?Yj6jXfcMKB6UEMfhMCz7/m1840rAsUv2MggIdNS1Wkj5Myiaskir/BuaCqUx?= =?us-ascii?Q?y6KjHLAtwSTvM49hz/VHy/IqfpSmL/AuC1U/UgUhiaB+bN7P8zLcmy/7C8+3?= =?us-ascii?Q?d+7C//x0PShFoAfLbPHAH2MAQGzTYoTShireUHETgpyuxhnBLaJt5OH47MVs?= =?us-ascii?Q?yauvcf2wa6JbXeQlWcCAuxaad9eFFElyN8AhyjFZKOVNMNTPDQSKI8Ev4xK4?= =?us-ascii?Q?Db+alOhJkTrEitPqNjdEd9SFMVWqms1z2XZXCw+C5AAZtvapuzTruhyv2HII?= =?us-ascii?Q?OgbPXvtF9xGGHFfPZzKjuQiRy/zXwR+CF0MB52DoGx16FeKjRqF/IOhm7/Nl?= =?us-ascii?Q?7edgECQPPgrJrYPPM8ZnzzrIFc9xRY+46C8LYUl/SumU48JZYhis7+rdO6hY?= =?us-ascii?Q?CJV4PjjW5i9G2K+VpimsHxCjebPQdVCfcmUcGmpVj6zjrJW9uTA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2794; 6:rwxsa+frs4L8hQanBHrzs2+bTgGJVLAzOGnuieYxmKVMRy4nS9x+34Fece2z/+SHIZmpcULBrvbgTBSQTDgNf0hVmM+ibTLubF2FjD4DcY3VpHwejv4TatsMD8nCok2RLDrH5DS27nDN1qRwZARf/G5j78swQAoY4hn3zVwFj+qoKKhVVqglvUGN6dGfjaGa+7PI9k4vN11l5Bmp0WjQ4G1UKtEx5Jse5+kluK40XdiQ0xtDUaZ+kqUuSBGO7aDyx5qHNV6zb++SxWjx0nCaAKqJL75YpPSeAMHQ24ZG4o9qU6m6tHiYiF+/UxZTQ6EOai4v4jqeSkhX9YhClgf6evf+x7ldYKmYs3jD4fwqQZsPvooKw3rGkV2d/kv7pntP; 5:7+ezZiFkL6g9cEnXvczENKAfCyCk397SNaORUrNnL9JAWLf8rcTUHXsHe0KEgZLeNHm2pdTpjsZcIZJ1zhkE9v7sgVl+prUkHQ7mLSa9C+ZPrC0OsBsisebjqlWry2P72PqoOTN+OE3qkfDEeUbu5yiQBZ/t+WIvTyvXdLsBdFc=; 24:C4CW9Ue6KYg/4P9ysEy0ULNDcmtxHhyssHmd2DnMlmOCS59QBJCD2eZ5gCSdGf48PGOdF9cy3xOeyrrlMDI1w9OFRInvN6AQqJnJsp7pEkQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; HE1PR0701MB2794; 7:t6B0IkgcVKu4RQzUDWBN1O7aOoX9wxjQj+phB63POME4GeEBXCku7lxAFvAsY96ooYBpRJ6F/IdM0aat9q4xGwHty+PImtTnayZfHsmrUVwWyRzWr0WZujTOaUjeqBitaPrcMj8hfR5U/WtpI1x49PvbGwW3qlfOEaJXuOt2aNMr24qqLwr9/gChz72pfX82DfjiMHAF7JD9hXx9e3QxRzSi1VYEE4xW+EqZXMW+wkYPIb67jAe0dAMBDzMGAYDbfT4sJXs1YImg9UhfnpGO6EaGlyxSuitGs95hDmBw0KQztcN0vE2WGBTYsG4ie0dL/XT4DwweEMFjpYg578sIRHX34xkmw6nIhmA2rarRrJ4= X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2016 10:43:45.1804 (UTC) X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5d471751-9675-428d-917b-70f44f9630b0; Ip=[131.228.2.241]; Helo=[fihe3nok0735.emea.nsn-net.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0701MB2794 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161118_024413_352930_28E08C5D X-CRM114-Status: GOOD ( 11.11 ) X-Spam-Score: -1.9 (-) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-1.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [104.47.2.119 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H2 RBL: Average reputation (+2) [104.47.2.119 listed in wl.mailspike.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: computersforpeace@gmail.com, marek.vasut@gmail.com, cyrille.pitchen@atmel.com, rfsw-patches@mlist.nokia.com, dwmw2@infradead.org Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Marcin Krzeminski This commit adds new field and flags that could be used to signalize that chip support die erase command. If DIE_ERASE flag will be selected but die_cnt field will be 0 chip will not use chip erase command. Signed-off-by: Marcin Krzeminski --- drivers/mtd/spi-nor/spi-nor.c | 27 +++++++++++++++++++++++++++ include/linux/mtd/spi-nor.h | 5 +++++ 2 files changed, 32 insertions(+) diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index d0fc165..9b8656e 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -75,6 +75,7 @@ struct flash_info { * bit. Must be used with * SPI_NOR_HAS_LOCK. */ +#define DIE_ERASE BIT(10) /* Support for die erase cmd */ }; #define JEDEC_MFR(info) ((info)->id[0]) @@ -295,6 +296,32 @@ static int erase_chip(struct spi_nor *nor) return nor->write_reg(nor, SPINOR_OP_CHIP_ERASE, NULL, 0); } +static int spi_nor_die_erase(struct spi_nor *nor, u32 addr) +{ + u8 buf[SPI_NOR_MAX_ADDR_WIDTH]; + u8 cmd; + int i, ret; + + dev_dbg(nor->dev, "erase @ 0x%X\n", addr); + + write_enable(nor); + + if (nor->erase) { + cmd = nor->erase_opcode; + nor->erase_opcode = SPINOR_OP_DIE_ERASE; + ret = nor->erase(nor, addr); + nor->erase_opcode = cmd; + return ret; + } + + for (i = nor->addr_width - 1; i >= 0; i--) { + buf[i] = addr & 0xff; + addr >>= 8; + } + + return nor->write_reg(nor, SPINOR_OP_DIE_ERASE, buf, nor->addr_width); +} + static int spi_nor_lock_and_prep(struct spi_nor *nor, enum spi_nor_ops ops) { int ret = 0; diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h index c425c7b..80154b2 100644 --- a/include/linux/mtd/spi-nor.h +++ b/include/linux/mtd/spi-nor.h @@ -50,6 +50,7 @@ #define SPINOR_OP_BE_4K_PMC 0xd7 /* Erase 4KiB block on PMC chips */ #define SPINOR_OP_BE_32K 0x52 /* Erase 32KiB block */ #define SPINOR_OP_CHIP_ERASE 0xc7 /* Erase whole flash chip */ +#define SPINOR_OP_DIE_ERASE 0xc4 /* Erase whole die within chip */ #define SPINOR_OP_SE 0xd8 /* Sector erase (usually 64KiB) */ #define SPINOR_OP_RDID 0x9f /* Read JEDEC ID */ #define SPINOR_OP_RDCR 0x35 /* Read configuration register */ @@ -119,6 +120,7 @@ enum spi_nor_ops { enum spi_nor_option_flags { SNOR_F_USE_FSR = BIT(0), SNOR_F_HAS_SR_TB = BIT(1), + SNOR_F_DIE_ERASE = BIT(2), }; /** @@ -136,6 +138,8 @@ enum spi_nor_option_flags { * @sst_write_second: used by the SST write operation * @flags: flag options for the current SPI-NOR (SNOR_F_*) * @cmd_buf: used by the write_reg + * @die_cnt: number of dies in chip, if and SNOR_F_DIE_ERASE + * flasg is enabled CE command will be disabled * @prepare: [OPTIONAL] do some preparations for the * read/write/erase/lock/unlock operations * @unprepare: [OPTIONAL] do some post work after the @@ -167,6 +171,7 @@ struct spi_nor { bool sst_write_second; u32 flags; u8 cmd_buf[SPI_NOR_MAX_CMD_SIZE]; + u32 die_cnt; int (*prepare)(struct spi_nor *nor, enum spi_nor_ops ops); void (*unprepare)(struct spi_nor *nor, enum spi_nor_ops ops);