From patchwork Mon Jun 12 10:04:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Takahiro Kuwano X-Patchwork-Id: 1793842 X-Patchwork-Delegate: tudor.ambarus@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=cIhxTfAq; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=FHM/3Mac; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QfnP11XYCz20Vx for ; Mon, 12 Jun 2023 20:05:09 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=/KCvKX18k6iKUvZSSvHn22v2ZY8gbqlChFdXo6lFB3w=; b=cIhxTfAqRx9GGY OgVoSxL/CF0N4VWHDgX7T/5jMMHxEbj2wrZ8Wgnu9j2ZhW+fHNkUghE7g4FR0WWzLw1LVaPqfF/TN ncO6ypwtSyc3NhFESCLn7ehKlgTygd1GO8DPvN1DGnrq9/kaaH6v0C440ZyINSyLaZxc3aAaa47MD L8AiFOHq6RHLNpt4h/I06bXWSAVUqbE/zKahTeILuaii+0trei6xQ0ayTRiavueLOGdYU4fp8k5lt fVF00WOqcrfBad1tWMEhc/iyW5VAbEzUs6XVP5Y8d9BMT/V8BrmbokFactahF2GMX3zIAvt7hcSWq Tih7snxZJQKR6IvYRjvw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePe-003QGk-1r; Mon, 12 Jun 2023 10:04:38 +0000 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePc-003QFR-1Q for linux-mtd@lists.infradead.org; Mon, 12 Jun 2023 10:04:37 +0000 Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-652328c18d5so3112238b3a.1 for ; Mon, 12 Jun 2023 03:04:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686564274; x=1689156274; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=p0VY0Q3ApyLxdpEDzILGqzd2oQcIxU2jFNLg6s5sntM=; b=FHM/3MaciLF7PBJkC0YSctJxq6oQ4DCE98r/ko0iF9WXnPjMRZai7eOKEQU4xGG9Zs M45npj6SBvjE9usRpW/cqGXbFyYjNMOuy/M2XSSZUfYq4Mn7XjrCub9+AeI8aG6LLXij FMRbFyZkuqkNxl6zHiuUSGoEr/apW9ykjHUbvY4IBtxnjJD1kGIok+sHlAB9tsnZV/HU xoqhgAKMZKbqZJkY6NtwH/BqOtn55KuWa1kqIF+fSfvLi42x3xY8vrJhuxL6+Vj7K84G 2XyjbaHSxzS+CpHzeKlLm4jq7fgoAp7uWDxgoqfAQL2tZEizqFT+hOaC6RYgCM50tMDL KFZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686564274; x=1689156274; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=p0VY0Q3ApyLxdpEDzILGqzd2oQcIxU2jFNLg6s5sntM=; b=TX6QDgbEEukdL+kqU1ck1ogcjxhU36p4E+WXstrMCGKUcxaKIN7h3A9tLP1IOgx4EJ NsRV5gwbRTgIRPwajUodSQqzTntfXMgGyCDIAUpbcC7Xroxw+4M5yF7xpuhG2wOTT2ev JrYW2ygMomuqYtUTqMkriLO8B3WdiS/XklDBLH1P91LUPJ2am1BHWdrt4GFhEKK5x/xS 6lrvDr0zboaJZ0zQdcm+wtKWYGPd0WLWk3+QxxffPJd4e00ZfyL7DxwPmfeyRHuqaz5B 15gyiUNlgsVLCfkSJuaraFp7uVPiqbk6pzwM1qxl2qpBGcid1cMzzicswqKHDCxEphY9 9wpw== X-Gm-Message-State: AC+VfDx2jJGW/J23U+O8AlfcahxkyxhS8KEu0jKDXk/WvQLxPiBoGdV3 3T1nkqgToIzuf3QEJ/Bq4NYOexSvai0= X-Google-Smtp-Source: ACHHUZ7TEN4loybZyX3QyPSzRRQQ3AMVpukZNADpZz5u0fwFg1RN3L2Xl+tuS7Bx7Cof7VS8p/tlTQ== X-Received: by 2002:a05:6a00:2d88:b0:652:bf4c:b5de with SMTP id fb8-20020a056a002d8800b00652bf4cb5demr9509909pfb.20.1686564274449; Mon, 12 Jun 2023 03:04:34 -0700 (PDT) Received: from ISCN5CG2520RPD.infineon.com (KD106168128197.ppp-bb.dion.ne.jp. [106.168.128.197]) by smtp.gmail.com with ESMTPSA id 17-20020aa79211000000b00662610cf7a8sm6723376pfo.172.2023.06.12.03.04.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jun 2023 03:04:34 -0700 (PDT) From: tkuw584924@gmail.com X-Google-Original-From: Takahiro.Kuwano@infineon.com To: linux-mtd@lists.infradead.org Cc: tudor.ambarus@linaro.org, pratyush@kernel.org, michael@walle.cc, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, d-gole@ti.com, tkuw584924@gmail.com, Bacem.Daassi@infineon.com, Takahiro Kuwano , stable@vger.kernel.org Subject: [PATCH 1/5] mtd: spi-nor: spansion: Preserve CFR2V[7] when writing MEMLAT Date: Mon, 12 Jun 2023 19:04:05 +0900 Message-Id: <15d87d29e53945739e7c2b3f58e2f623e2a77f08.1686557139.git.Takahiro.Kuwano@infineon.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230612_030436_486460_491F2961 X-CRM114-Status: GOOD ( 11.67 ) X-Spam-Score: 0.1 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Takahiro Kuwano CFR2V[7] is assigned to Flash's address mode (3- or 4-ybte) and must not be changed when writing MEMLAT (CFR2V[3:0]). CFR2V must be read first, modified only CFR2V[3:0], then written back. Content analysis details: (0.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:435 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [tkuw584924[at]gmail.com] 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit [tkuw584924[at]gmail.com] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -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 -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Takahiro Kuwano CFR2V[7] is assigned to Flash's address mode (3- or 4-ybte) and must not be changed when writing MEMLAT (CFR2V[3:0]). CFR2V must be read first, modified only CFR2V[3:0], then written back. Fixes: c3266af101f2 ("mtd: spi-nor: spansion: add support for Cypress Semper flash") Signed-off-by: Takahiro Kuwano Cc: stable@vger.kernel.org --- drivers/mtd/spi-nor/spansion.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c index f2f4bc060f5e..7804be3a9f2a 100644 --- a/drivers/mtd/spi-nor/spansion.c +++ b/drivers/mtd/spi-nor/spansion.c @@ -27,6 +27,7 @@ #define SPINOR_REG_CYPRESS_CFR2 0x3 #define SPINOR_REG_CYPRESS_CFR2V \ (SPINOR_REG_CYPRESS_VREG + SPINOR_REG_CYPRESS_CFR2) +#define SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK GENMASK(3, 0) #define SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24 0xb #define SPINOR_REG_CYPRESS_CFR2_ADRBYT BIT(7) #define SPINOR_REG_CYPRESS_CFR3 0x4 @@ -162,8 +163,17 @@ static int cypress_nor_octal_dtr_en(struct spi_nor *nor) int ret; u8 addr_mode_nbytes = nor->params->addr_mode_nbytes; + op = (struct spi_mem_op) + CYPRESS_NOR_RD_ANY_REG_OP(addr_mode_nbytes, + SPINOR_REG_CYPRESS_CFR2V, 0, buf); + + ret = spi_nor_read_any_reg(nor, &op, nor->reg_proto); + if (ret) + return ret; + /* Use 24 dummy cycles for memory array reads. */ - *buf = SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24; + *buf &= ~SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK; + *buf |= SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24; op = (struct spi_mem_op) CYPRESS_NOR_WR_ANY_REG_OP(addr_mode_nbytes, SPINOR_REG_CYPRESS_CFR2V, 1, buf); From patchwork Mon Jun 12 10:04:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Takahiro Kuwano X-Patchwork-Id: 1793844 X-Patchwork-Delegate: tudor.ambarus@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=UUnuhX0+; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=lmP5GUaJ; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QfnP35V1Vz20XR for ; Mon, 12 Jun 2023 20:05:11 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=obUIbs9pbhc+TBZcvRMOtHpO99SP0YE0qx2+Yh5j4OA=; b=UUnuhX0+FFrml5 Ps3Toh7BgiKC5G9XTq9BwPUGzAGxlQBNJ5UXTCAHjPRIg8ata1L720w4ig6Taq9K/zo7bCpFFG9i5 TvXRSLAJ3TWj38FdS4EoVDaUZZkwtGNSFOgdinCAAe4zzZFpCqcNi1pD/hW0zw5u7vJvTTU9SK8fG 4vFE7giCX4noNaWDFw+4rIOs9KuqZdNsabYLphSDD6W5X7FwcE+lry1hWhPFOVuvWA4FlCFI6kN+M gnr36OqpYzBmAGK9AdYlb4EcjO9gfLvCURz/ixO/nM3us8dZYMeNDHoSqDgAZCiPoxMVcxEDCSPYv qU6FthH9LHX6OvlPX9QQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePi-003QIJ-0x; Mon, 12 Jun 2023 10:04:42 +0000 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePg-003QGt-0M for linux-mtd@lists.infradead.org; Mon, 12 Jun 2023 10:04:41 +0000 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-650c89c7e4fso4435518b3a.0 for ; Mon, 12 Jun 2023 03:04:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686564278; x=1689156278; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4ksmcxBAeF5aEpeseKLZqTKVYNSqlTdX2jGFyZUt/Vg=; b=lmP5GUaJvG8uNHgegCFbj0MzSNpsrDZFdqGE0E5QfLZeA13mgvS5mDzmfWiG+6D9Hr b+ZYXD/LlXAe+/xCSw8vzXBPFJwxJX2P7O/5wB/gW0DiZ5EMVxkhru39DrCT4HQMiGWy TuI5ERh1lwBSOkqOtEsxlbLl7kgn7jnmsZ8OgToc6K0jJZdDgXzdLGYjjGr1hMrn5Lo7 72gUpA9jOLxJSzoFudqEa42Cf3+3p279aLs5QrjD/srpQGeuYqxGvWoTa4nANp0FGr23 lp9YKjij5TdPy9xeKLgH5B8T2qLAsLydmd7GYksJq8xt7B94ias6eD/fW1N3tCs10CKv wY1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686564278; x=1689156278; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4ksmcxBAeF5aEpeseKLZqTKVYNSqlTdX2jGFyZUt/Vg=; b=KsOoOUrzjhxpby9jY3ka1/f0e3SCxSbP5ugV4pChpjWf5C5nqnHUg55l6a1Y5TWfH+ G/KbZ9KW2cZpXDrEe5InHcG1M9VKGAScbyR+XTN+IU+GgLXoh42lXr9hBXzkR//mPo3y eZ8CmVCrFAu1aaqkB3R9L+jdPb51e8hCJa6NMptmmV9lWaEaiX7xcEOVKW9Lm7Y01I4R 7Ogofui5c5wzqkpnuUUsYY3xR0S+Hq8Bq6W4ipijSFQGKp5xvhwslwoQKAmeBc0jxzeB EkBBFsUX/bUpmGp6AKHb/HAH6x2RVMH9KqNyAazNOxgqve1UVAtfVJNhDF3XLjyKqSo2 sbgg== X-Gm-Message-State: AC+VfDyqx5vr0Yrvy6mR0Hu8twqVho1BdHe0YsKSwFnt/FS8sYXSN3Lg ncCvqrA7bJ9GRgnIx8aVeBJCihvEFOQ= X-Google-Smtp-Source: ACHHUZ6NY/KaZhBwHsntssezQ4UBDgXEoP1TCPk9b2ZJ1HlQtyo4CBXbWKopP5dBQ7daF3n4bMTrkQ== X-Received: by 2002:a05:6a20:8e13:b0:10b:4539:fa0a with SMTP id y19-20020a056a208e1300b0010b4539fa0amr11640586pzj.1.1686564278298; Mon, 12 Jun 2023 03:04:38 -0700 (PDT) Received: from ISCN5CG2520RPD.infineon.com (KD106168128197.ppp-bb.dion.ne.jp. [106.168.128.197]) by smtp.gmail.com with ESMTPSA id 17-20020aa79211000000b00662610cf7a8sm6723376pfo.172.2023.06.12.03.04.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jun 2023 03:04:37 -0700 (PDT) From: tkuw584924@gmail.com X-Google-Original-From: Takahiro.Kuwano@infineon.com To: linux-mtd@lists.infradead.org Cc: tudor.ambarus@linaro.org, pratyush@kernel.org, michael@walle.cc, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, d-gole@ti.com, tkuw584924@gmail.com, Bacem.Daassi@infineon.com, Takahiro Kuwano Subject: [PATCH 2/5] mtd: spi-nor: spansion: Rework octal_dtr_enable() Date: Mon, 12 Jun 2023 19:04:06 +0900 Message-Id: <381f7f66c68136a2de1d768b44fb6bcf9eebbebe.1686557139.git.Takahiro.Kuwano@infineon.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230612_030440_147305_FEF06DEB X-CRM114-Status: GOOD ( 16.83 ) X-Spam-Score: 0.1 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Takahiro Kuwano S28HS02GT is multi-chip package (MCP) device that requires Octal DTR configuraion for each die. As preparation for MCP support, this patch replaces cypress_nor_octal_dtr_en/dis() with cypress_nor_setu [...] Content analysis details: (0.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:429 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [tkuw584924[at]gmail.com] 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit [tkuw584924[at]gmail.com] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -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 -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Takahiro Kuwano S28HS02GT is multi-chip package (MCP) device that requires Octal DTR configuraion for each die. As preparation for MCP support, this patch replaces cypress_nor_octal_dtr_en/dis() with cypress_nor_setup_memlat() and cypress_nor_setup_opiddr(). And the ID check part is moved to cypress_nor_octal_dtr_enable(). Signed-off-by: Takahiro Kuwano --- drivers/mtd/spi-nor/spansion.c | 118 +++++++++++++++++---------------- 1 file changed, 62 insertions(+), 56 deletions(-) diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c index 7804be3a9f2a..0daa3a357ae8 100644 --- a/drivers/mtd/spi-nor/spansion.c +++ b/drivers/mtd/spi-nor/spansion.c @@ -156,7 +156,7 @@ static int cypress_nor_sr_ready_and_clear(struct spi_nor *nor) return 1; } -static int cypress_nor_octal_dtr_en(struct spi_nor *nor) +static int cypress_nor_setup_memlat(struct spi_nor *nor) { struct spi_mem_op op; u8 *buf = nor->bouncebuf; @@ -178,67 +178,37 @@ static int cypress_nor_octal_dtr_en(struct spi_nor *nor) CYPRESS_NOR_WR_ANY_REG_OP(addr_mode_nbytes, SPINOR_REG_CYPRESS_CFR2V, 1, buf); - ret = spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto); - if (ret) - return ret; - - nor->read_dummy = 24; - - /* Set the octal and DTR enable bits. */ - buf[0] = SPINOR_REG_CYPRESS_CFR5_OCT_DTR_EN; - op = (struct spi_mem_op) - CYPRESS_NOR_WR_ANY_REG_OP(addr_mode_nbytes, - SPINOR_REG_CYPRESS_CFR5V, 1, buf); - - ret = spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto); - if (ret) - return ret; - - /* Read flash ID to make sure the switch was successful. */ - ret = spi_nor_read_id(nor, nor->addr_nbytes, 3, buf, - SNOR_PROTO_8_8_8_DTR); - if (ret) { - dev_dbg(nor->dev, "error %d reading JEDEC ID after enabling 8D-8D-8D mode\n", ret); - return ret; - } - - if (memcmp(buf, nor->info->id, nor->info->id_len)) - return -EINVAL; - - return 0; + return spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto); } -static int cypress_nor_octal_dtr_dis(struct spi_nor *nor) +static int cypress_nor_setup_opiddr(struct spi_nor *nor, bool enable) { struct spi_mem_op op; u8 *buf = nor->bouncebuf; - int ret; - - /* - * The register is 1-byte wide, but 1-byte transactions are not allowed - * in 8D-8D-8D mode. Since there is no register at the next location, - * just initialize the value to 0 and let the transaction go on. - */ - buf[0] = SPINOR_REG_CYPRESS_CFR5_OCT_DTR_DS; - buf[1] = 0; - op = (struct spi_mem_op) - CYPRESS_NOR_WR_ANY_REG_OP(nor->addr_nbytes, - SPINOR_REG_CYPRESS_CFR5V, 2, buf); - ret = spi_nor_write_any_volatile_reg(nor, &op, SNOR_PROTO_8_8_8_DTR); - if (ret) - return ret; - /* Read flash ID to make sure the switch was successful. */ - ret = spi_nor_read_id(nor, 0, 0, buf, SNOR_PROTO_1_1_1); - if (ret) { - dev_dbg(nor->dev, "error %d reading JEDEC ID after disabling 8D-8D-8D mode\n", ret); - return ret; + if (enable) { + /* Set the octal and DTR enable bits. */ + buf[0] = SPINOR_REG_CYPRESS_CFR5_OCT_DTR_EN; + op = (struct spi_mem_op) + CYPRESS_NOR_WR_ANY_REG_OP(nor->params->addr_mode_nbytes, + SPINOR_REG_CYPRESS_CFR5V, 1, + buf); + } else { + /* + * The register is 1-byte wide, but 1-byte transactions are not + * allowed in 8D-8D-8D mode. Since there is no register at the + * next location, just initialize the value to 0 and let the + * transaction go on. + */ + buf[0] = SPINOR_REG_CYPRESS_CFR5_OCT_DTR_DS; + buf[1] = 0; + op = (struct spi_mem_op) + CYPRESS_NOR_WR_ANY_REG_OP(nor->addr_nbytes, + SPINOR_REG_CYPRESS_CFR5V, 2, + buf); } - if (memcmp(buf, nor->info->id, nor->info->id_len)) - return -EINVAL; - - return 0; + return spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto); } static int cypress_nor_quad_enable_volatile_reg(struct spi_nor *nor, u64 addr) @@ -642,8 +612,44 @@ static struct spi_nor_fixups s25hx_t_fixups = { */ static int cypress_nor_octal_dtr_enable(struct spi_nor *nor, bool enable) { - return enable ? cypress_nor_octal_dtr_en(nor) : - cypress_nor_octal_dtr_dis(nor); + int ret; + u8 naddr, ndummy; + enum spi_nor_protocol proto; + + if (enable) { + ret = cypress_nor_setup_memlat(nor); + if (ret) + return ret; + + nor->read_dummy = 24; + } + + ret = cypress_nor_setup_opiddr(nor, enable); + if (ret) + return ret; + + /* Read flash ID to make sure the switch was successful. */ + if (enable) { + naddr = nor->addr_nbytes; + ndummy = 3; + proto = SNOR_PROTO_8_8_8_DTR; + } else { + naddr = 0; + ndummy = 0; + proto = SNOR_PROTO_1_1_1; + } + + ret = spi_nor_read_id(nor, naddr, ndummy, nor->bouncebuf, proto); + if (ret) { + dev_dbg(nor->dev, "error %d reading JEDEC ID after %s 8D-8D-8D mode\n", + ret, enable ? "enabling" : "disabling"); + return ret; + } + + if (memcmp(nor->bouncebuf, nor->info->id, nor->info->id_len)) + return -EINVAL; + + return 0; } static int s28hx_t_post_sfdp_fixup(struct spi_nor *nor) From patchwork Mon Jun 12 10:04:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Takahiro Kuwano X-Patchwork-Id: 1793843 X-Patchwork-Delegate: tudor.ambarus@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=a1BOFHfF; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=H8Na9p8i; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QfnP31xtGz20X6 for ; Mon, 12 Jun 2023 20:05:11 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cEDXUmn433klWQ57HrURKhZ0tqzuRO8tLo7TJtr1CA4=; b=a1BOFHfFh/Ex+T ad8xAzVnfoAD+rNjM/xd03br92GOkyMy0r16GlAuVNE1P4sJJhWEJuUFLxzdydVQD44M3sZ2/1efT tkPz4Ol0CcaJwYPlKduY+MWVNUlCtdjIRwTFpyXpFuVQCW3RGHf/+qyUSx6u0MwoSCSNcV7QX2HNX 8dbxZLa0yoz5m0XC5Ezs+IFFizcd7QKLle13UQvX7YYFKM2PgVBO/NmrY/OnpTRRI0mo6qFDjvBLR mZg/IDZoztUhLJi82B61BSlx60UpOvucDIKVT19yRz1fmlS/rZsSRmhEnyn0fal9DH9RT9IWkkXFs ilieMeL1k4CcNNueQ0IQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePm-003QK2-0N; Mon, 12 Jun 2023 10:04:46 +0000 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePi-003QIa-30 for linux-mtd@lists.infradead.org; Mon, 12 Jun 2023 10:04:44 +0000 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-665a18f5643so234478b3a.0 for ; Mon, 12 Jun 2023 03:04:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686564282; x=1689156282; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0nAm8XcBOqNgLf3Z13lKw06Fhl84cvZ3QF9Y39YR3Bc=; b=H8Na9p8imHj0nI4HuToOAoDAlxO4AJco0fy8/aWZ1PkbDbyqhHLay7gNxziS90TVZ4 Vg8keKORDipMAlHkPRl8yiuA6JbZEG9j8ApzeaZeW6N49Yt20yTMEOVrBO1L3ylNZZqr jE0CFhlh7ULExaa35FIoH3xMkS4vr/vcHT/wLtxIzyFofAM0OezKToqIb11oKBDdcLZY OaRmtKnSmTsLdDQrmS1eHIT6kATVktLZTvvmOJXGDOYVqAUYVxd1cHOIpcdvdUYOM5Y+ unHMgHjEDHmcsm2CuPHUjMFo2CdRgSJuyhdUeD3yZmBRj+7h1uiEIgYo32rBwNGGx0uO 3KBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686564282; x=1689156282; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0nAm8XcBOqNgLf3Z13lKw06Fhl84cvZ3QF9Y39YR3Bc=; b=EIBw8dIbIYhgCIIw3bNdJyQ4aoIhopAZGgp/AcMZEZHHZXRU7wzH9AJ3aU+2CrkFcj gbUWYk9+9H6Bgk2vXkjz2duUH3EpMxx6/UeeqBdyWWXf+xu5ufGt02ru3/6BN1RJqr7K CkAdSGcfTtJHe01cDdL0SFs1bd/0sDNXxtA8jon9AoabIiPybNuyS/7ObeOzXdNkuOD1 CtPWkw/Hyu9S8HwqEQidVCsgbUz7vcLGwYb57KM95wLHew8OyCI0gh8hrwk6mtxTStHS iEca0UFjWq+rogVycjKZ1ZnHmOPIF03RMmt6I5XDelTICANFJo9ha6DX05+NofEMexwD AoKw== X-Gm-Message-State: AC+VfDx0hsP5zUh5oxcXLEFiQ1Eli2jePuskSjy1IzVmGvrB5fGBwurv 3rt7Gc0+XWNBoFnJiv2lPVjau84+e+Q= X-Google-Smtp-Source: ACHHUZ6WNFzLYIrB0e5AqSITfDa2Uf0bxfFNRelHAcspbY7YleyEC4X4t8hoycLpjw2IsKWKD6iJyw== X-Received: by 2002:a05:6a20:a123:b0:10a:b812:bcc7 with SMTP id q35-20020a056a20a12300b0010ab812bcc7mr10144769pzk.17.1686564282194; Mon, 12 Jun 2023 03:04:42 -0700 (PDT) Received: from ISCN5CG2520RPD.infineon.com (KD106168128197.ppp-bb.dion.ne.jp. [106.168.128.197]) by smtp.gmail.com with ESMTPSA id 17-20020aa79211000000b00662610cf7a8sm6723376pfo.172.2023.06.12.03.04.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jun 2023 03:04:41 -0700 (PDT) From: tkuw584924@gmail.com X-Google-Original-From: Takahiro.Kuwano@infineon.com To: linux-mtd@lists.infradead.org Cc: tudor.ambarus@linaro.org, pratyush@kernel.org, michael@walle.cc, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, d-gole@ti.com, tkuw584924@gmail.com, Bacem.Daassi@infineon.com, Takahiro Kuwano Subject: [PATCH 3/5] mtd: spi-nor: spansion: Add MCP support in octal_dtr_enable() Date: Mon, 12 Jun 2023 19:04:07 +0900 Message-Id: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230612_030442_968445_DD04D07B X-CRM114-Status: GOOD ( 16.17 ) X-Spam-Score: 0.1 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Takahiro Kuwano S28HS02GT is multi-chip package (MCP) device that requires Octal DTR configuraion for each die. We can access to configuration registers in each die by using params->n_dice and params->vreg_offset[] p [...] Content analysis details: (0.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:429 listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [tkuw584924[at]gmail.com] 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit [tkuw584924[at]gmail.com] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -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 -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Takahiro Kuwano S28HS02GT is multi-chip package (MCP) device that requires Octal DTR configuraion for each die. We can access to configuration registers in each die by using params->n_dice and params->vreg_offset[] populated from SFDP. Signed-off-by: Takahiro Kuwano --- drivers/mtd/spi-nor/spansion.c | 71 +++++++++++++++++++++++++--------- 1 file changed, 53 insertions(+), 18 deletions(-) diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c index 0daa3a357ae8..eda3731c17be 100644 --- a/drivers/mtd/spi-nor/spansion.c +++ b/drivers/mtd/spi-nor/spansion.c @@ -156,7 +156,7 @@ static int cypress_nor_sr_ready_and_clear(struct spi_nor *nor) return 1; } -static int cypress_nor_setup_memlat(struct spi_nor *nor) +static int cypress_nor_setup_memlat(struct spi_nor *nor, u64 addr) { struct spi_mem_op op; u8 *buf = nor->bouncebuf; @@ -164,8 +164,7 @@ static int cypress_nor_setup_memlat(struct spi_nor *nor) u8 addr_mode_nbytes = nor->params->addr_mode_nbytes; op = (struct spi_mem_op) - CYPRESS_NOR_RD_ANY_REG_OP(addr_mode_nbytes, - SPINOR_REG_CYPRESS_CFR2V, 0, buf); + CYPRESS_NOR_RD_ANY_REG_OP(addr_mode_nbytes, addr, 0, buf); ret = spi_nor_read_any_reg(nor, &op, nor->reg_proto); if (ret) @@ -175,13 +174,12 @@ static int cypress_nor_setup_memlat(struct spi_nor *nor) *buf &= ~SPINOR_REG_CYPRESS_CFR2_MEMLAT_MASK; *buf |= SPINOR_REG_CYPRESS_CFR2_MEMLAT_11_24; op = (struct spi_mem_op) - CYPRESS_NOR_WR_ANY_REG_OP(addr_mode_nbytes, - SPINOR_REG_CYPRESS_CFR2V, 1, buf); + CYPRESS_NOR_WR_ANY_REG_OP(addr_mode_nbytes, addr, 1, buf); return spi_nor_write_any_volatile_reg(nor, &op, nor->reg_proto); } -static int cypress_nor_setup_opiddr(struct spi_nor *nor, bool enable) +static int cypress_nor_setup_opiddr(struct spi_nor *nor, u64 addr, bool enable) { struct spi_mem_op op; u8 *buf = nor->bouncebuf; @@ -191,8 +189,7 @@ static int cypress_nor_setup_opiddr(struct spi_nor *nor, bool enable) buf[0] = SPINOR_REG_CYPRESS_CFR5_OCT_DTR_EN; op = (struct spi_mem_op) CYPRESS_NOR_WR_ANY_REG_OP(nor->params->addr_mode_nbytes, - SPINOR_REG_CYPRESS_CFR5V, 1, - buf); + addr, 1, buf); } else { /* * The register is 1-byte wide, but 1-byte transactions are not @@ -203,8 +200,7 @@ static int cypress_nor_setup_opiddr(struct spi_nor *nor, bool enable) buf[0] = SPINOR_REG_CYPRESS_CFR5_OCT_DTR_DS; buf[1] = 0; op = (struct spi_mem_op) - CYPRESS_NOR_WR_ANY_REG_OP(nor->addr_nbytes, - SPINOR_REG_CYPRESS_CFR5V, 2, + CYPRESS_NOR_WR_ANY_REG_OP(nor->addr_nbytes, addr, 2, buf); } @@ -600,6 +596,49 @@ static struct spi_nor_fixups s25hx_t_fixups = { .late_init = s25hx_t_late_init, }; +static int cypress_nor_octal_dtr_enable_single_chip(struct spi_nor *nor, + bool enable) +{ + int ret; + + if (enable) { + ret = cypress_nor_setup_memlat(nor, SPINOR_REG_CYPRESS_CFR2V); + if (ret) + return ret; + + nor->read_dummy = 24; + } + + return cypress_nor_setup_opiddr(nor, SPINOR_REG_CYPRESS_CFR5V, enable); +} + +static int cypress_nor_octal_dtr_enable_mcp(struct spi_nor *nor, bool enable) +{ + struct spi_nor_flash_parameter *params = nor->params; + u64 addr; + u8 i; + int ret; + + if (enable) { + for (i = 0; i < params->n_dice; i++) { + addr = params->vreg_offset[i] + SPINOR_REG_CYPRESS_CFR2; + ret = cypress_nor_setup_memlat(nor, addr); + if (ret) + return ret; + } + nor->read_dummy = 24; + } + + for (i = 0; i < params->n_dice; i++) { + addr = params->vreg_offset[i] + SPINOR_REG_CYPRESS_CFR5; + ret = cypress_nor_setup_opiddr(nor, addr, enable); + if (ret) + return ret; + } + + return 0; +} + /** * cypress_nor_octal_dtr_enable() - Enable octal DTR on Cypress flashes. * @nor: pointer to a 'struct spi_nor' @@ -616,15 +655,11 @@ static int cypress_nor_octal_dtr_enable(struct spi_nor *nor, bool enable) u8 naddr, ndummy; enum spi_nor_protocol proto; - if (enable) { - ret = cypress_nor_setup_memlat(nor); - if (ret) - return ret; - - nor->read_dummy = 24; - } + if (nor->params->n_dice) + ret = cypress_nor_octal_dtr_enable_mcp(nor, enable); + else + ret = cypress_nor_octal_dtr_enable_single_chip(nor, enable); - ret = cypress_nor_setup_opiddr(nor, enable); if (ret) return ret; From patchwork Mon Jun 12 10:04:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Takahiro Kuwano X-Patchwork-Id: 1793845 X-Patchwork-Delegate: tudor.ambarus@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=dotqVDnT; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=iK/3nVoA; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QfnPJ69X9z20X6 for ; Mon, 12 Jun 2023 20:05:24 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=UTWwFwHghm9eAaOA9jU1+1eIvRNeKBXXj68kk/ANMuI=; b=dotqVDnTO/PTbe s81hG8hK91sOuYgX74AqlyOe1nCTK5FT0PIimjN1QO/pIrMRTqIEUxpQR9QfKlJKKjCgDZSDpnIqf d2lXFOBhxGRc5oZNXE+RxyWz56LBO2emgIhiIm+QPIgw9jvRRLqi3vEE4qeAGmgqsKIyYlBJUJSFT gOCCOWzJJa68Ji2UQFXOv6HSOu+MDgVgZXOVYR8GfMg1vr97d9ORbC4bxz/7SAsVz6CXkmFrez8AC P8HzsYyaHzvVJnEO/egIwT1nSKLDC3turjMdl1vUUM2pZl9DPV8Bq8NBjByZGsE75rxoQu/Y0p9rb 8zMJUwBk5M49B+Xp20qw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePr-003QNU-3C; Mon, 12 Jun 2023 10:04:51 +0000 Received: from mail-pf1-x42d.google.com ([2607:f8b0:4864:20::42d]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePm-003QKU-39 for linux-mtd@lists.infradead.org; Mon, 12 Jun 2023 10:04:50 +0000 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-650c89c7e4fso4435638b3a.0 for ; Mon, 12 Jun 2023 03:04:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686564286; x=1689156286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PjtdEUMGku2Ac1RZ1FXVQmr4E0SXPmqlEKdrejTJLpw=; b=iK/3nVoAAfnGqF4Ne7V3/7VxNxu8eSZChfgaTmnzrN+SijcgLmE0Om/0TOOfMcUVYQ hqZcLpyE7Ni8VREB+sUj0kcemi4blAz2tF552Afb0sWVT9EmctsYokisq6a4A2+1U077 rqTvDId8Z20Z9FTUN0NU+ihCW5d+5VK2arcFJhS/VcRzgwPnSaP+DwoTRu968hYW+Ovg v22nPTyIBebLmBo9f6BOxpURO7tfHHdxY5hDBmxrUQuo5tEbeA4pJh05SnAMjtoDnzUa EoA7f6M7OWG62qMJ3gLxBqCpdjXqRS3WLE8G6djEDxFedFcOhp4hXawmIMii5apbf1nl klMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686564286; x=1689156286; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PjtdEUMGku2Ac1RZ1FXVQmr4E0SXPmqlEKdrejTJLpw=; b=inDEF/jMotAtUMWbF6CynWJRifLrISEPXRhSyaBgSxFH510byuaBzElyk/5q8zpbko mRrYb6l/X+6pbagDtLGRUyusqyfziX0IEYRPvU7YKGvI0Sqm8jUK+rGMf9PmysqzC2C8 reZV/ijtpi43dPU62lUmI1VKosHxRoGDJvcmXqq0foQGpzlYZcuawSLZ++AHo8cqs3IL Eqc5DZMBI8PwgZx9lETKJNzfHD9Kxaf/tTBrD6CmZVdvBg/cWEHHUzgElD/44zz6RWeT AhzcIfDyfoD9N623d8OQXybdPKjbLVx5RmdKk1p8J0s4EQ9d0t9nDErb3RlTgh2Ftqpp mr0A== X-Gm-Message-State: AC+VfDxdTTkDFJDE3sp66cN1t9l55CRgbPgVTlqIdRBAylAhxQiyDLCy zELytbDRBlzWQkyo77EzoaSDYfCLhug= X-Google-Smtp-Source: ACHHUZ6gcYopeAESZmibxw5doVD623mhbJXb7O7/FIKZPvhLbjTtsLgtBwGzJbLD+WGXWnC7KDDj1Q== X-Received: by 2002:a05:6a21:339b:b0:117:497a:a936 with SMTP id yy27-20020a056a21339b00b00117497aa936mr11679798pzb.21.1686564286198; Mon, 12 Jun 2023 03:04:46 -0700 (PDT) Received: from ISCN5CG2520RPD.infineon.com (KD106168128197.ppp-bb.dion.ne.jp. [106.168.128.197]) by smtp.gmail.com with ESMTPSA id 17-20020aa79211000000b00662610cf7a8sm6723376pfo.172.2023.06.12.03.04.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jun 2023 03:04:45 -0700 (PDT) From: tkuw584924@gmail.com X-Google-Original-From: Takahiro.Kuwano@infineon.com To: linux-mtd@lists.infradead.org Cc: tudor.ambarus@linaro.org, pratyush@kernel.org, michael@walle.cc, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, d-gole@ti.com, tkuw584924@gmail.com, Bacem.Daassi@infineon.com, Takahiro Kuwano Subject: [PATCH 4/5] mtd: spi-nor: spansion: Octal DTR support in RD_ANY_REG_OP Date: Mon, 12 Jun 2023 19:04:08 +0900 Message-Id: <5322b787dc0a2943d2563d433216429b47ce7ff8.1686557139.git.Takahiro.Kuwano@infineon.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230612_030447_025826_3E359A54 X-CRM114-Status: GOOD ( 11.42 ) X-Spam-Score: 0.1 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Takahiro Kuwano S28HS02GT uses RD_ANY_REG_OP to read status of each die. In Octal DTR mode, RD_ANY_REG_OP needs dummy cycles (same as params->rdsr_dummy) and data length should be 2. Signed-off-by: Takahiro Kuwano --- drivers/mtd/spi-nor/spansion.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) Content analysis details: (0.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:42d listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [tkuw584924[at]gmail.com] 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit [tkuw584924[at]gmail.com] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -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 -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Takahiro Kuwano S28HS02GT uses RD_ANY_REG_OP to read status of each die. In Octal DTR mode, RD_ANY_REG_OP needs dummy cycles (same as params->rdsr_dummy) and data length should be 2. Signed-off-by: Takahiro Kuwano --- drivers/mtd/spi-nor/spansion.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c index eda3731c17be..8b8512402639 100644 --- a/drivers/mtd/spi-nor/spansion.c +++ b/drivers/mtd/spi-nor/spansion.c @@ -103,11 +103,17 @@ static void spansion_nor_clear_sr(struct spi_nor *nor) static int cypress_nor_sr_ready_and_clear_reg(struct spi_nor *nor, u64 addr) { + struct spi_nor_flash_parameter *params = nor->params; struct spi_mem_op op = - CYPRESS_NOR_RD_ANY_REG_OP(nor->params->addr_mode_nbytes, addr, + CYPRESS_NOR_RD_ANY_REG_OP(params->addr_mode_nbytes, addr, 0, nor->bouncebuf); int ret; + if (nor->reg_proto == SNOR_PROTO_8_8_8_DTR) { + op.dummy.nbytes = params->rdsr_dummy; + op.data.nbytes = 2; + } + ret = spi_nor_read_any_reg(nor, &op, nor->reg_proto); if (ret) return ret; From patchwork Mon Jun 12 10:04:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Takahiro Kuwano X-Patchwork-Id: 1793846 X-Patchwork-Delegate: tudor.ambarus@gmail.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.infradead.org (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; secure) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=ijQEMFDP; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=QHhnhBN5; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QfnPL2Q0fz20X6 for ; Mon, 12 Jun 2023 20:05:26 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=BRQvqTLd194CjSuaGEWHnE9atI9ia4YeGYs0U69lysQ=; b=ijQEMFDPqug+kq xoDfJPwN21TsCWrkkbl9KK0Qe0hGR0jPByKLNXTydzaee4wEm/VwzRzUMBBG4rFGosFi3xDptz6Ks PTsLbWe+u5IlPYMWdKXjsvFfsoQahFdSrfVJWDlPWqVWGL82ROZM3UmMlaXlqNu7PnzpJluFD4Omf dw9pik9dQUYYIekHwJp2jqItUC39TmE9kjRtT56k0OOi2Rb1+N+tWndCFWso4MPvOqFxCRYpRTmgJ ztGbRrflqqfSe2yM6krrkSZXzyu0M5kf2k8rbTzVU1P4LUoTsQS7cRn3K5xMSBaktDXvdDSEf7aqr mePDg58gAUdTo6BqupjQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePv-003QQ8-2K; Mon, 12 Jun 2023 10:04:55 +0000 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q8ePs-003QN1-2N for linux-mtd@lists.infradead.org; Mon, 12 Jun 2023 10:04:54 +0000 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-655fce0f354so3202581b3a.0 for ; Mon, 12 Jun 2023 03:04:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686564290; x=1689156290; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hIdqwYpzL1QaRaSdpLZGSSIvl0YyUrYTEGKQLlB53OU=; b=QHhnhBN5BL/TFOplJDdoAvHPprjIJrEx37sVtSFyyvb4Caqar71iFxxrzrKWibntmG 5TneJ5aBSqCr0Dk5X9vlt5TA6TBBemxsBSqAqAApwS/ebok3tszz8eL3WiSCMxrk3IIp Nm+m7Ci08X3Cu6FHw02M0P6IhzZ0J2g7u/bt9cnfYBh22k5c5miQpeHJgpzeG+3cZZxV DergBaRsQ/CmNKmPmvRVoDHdnZJAOfrtuOJIcDVP7AmFymd1G09izUbCwP7UuCytj/L6 tSVOXhiF5jMHwut1luXZaPfpls3ZVywtK/auALTn9YLMRlehNMdUoYqrPxh3rPpfpZSt BwTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686564290; x=1689156290; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hIdqwYpzL1QaRaSdpLZGSSIvl0YyUrYTEGKQLlB53OU=; b=KtT9MonFBMACH4ZzsCRNM8SSLwmysU5KHp11XN8sdmw/WIFReSzlfbq1TJGzgW6/kn gq9w8QDbFEGzEXrOAyPkVKYxLfFKBMu+PmBo5A+0VY9eaBkQ11Oh1W5UmY+M/Ur9YVQg BRl7a9z0haJ6g+a2LdViJVdiwugOBHR9VLgdU1epPjcrgTM+CRuA5NYg4Djkj7yp1LFY 4w4m9XFeD3EXYEuvppmTa08ukQTORoeyPfmxx3R/5bnfhSUR3xFs9Knq5wZVw4o1fqEa BC39tkPNMPVZP46AMHdjLM0YAG1MyxIYZRK5h6w7jXKarFp3EaJnip8PBJKitJnjrwSb 2yiQ== X-Gm-Message-State: AC+VfDyXRAn7U/oo7VB03P+2s5mXQ2rjhPcIr02r9GrqyXC6wh1zUQiZ 5MlGPVQAVHRI8fGd59tW2477U3jMbTA= X-Google-Smtp-Source: ACHHUZ4HjahSJOuue3fwh3dJLkjzvk1f2oHspq7AuDZBNPUoWpk33XpunB308vbXtKOrP2jQfNKtrw== X-Received: by 2002:a05:6a20:c18c:b0:111:2a64:83e7 with SMTP id bg12-20020a056a20c18c00b001112a6483e7mr8369956pzb.22.1686564290088; Mon, 12 Jun 2023 03:04:50 -0700 (PDT) Received: from ISCN5CG2520RPD.infineon.com (KD106168128197.ppp-bb.dion.ne.jp. [106.168.128.197]) by smtp.gmail.com with ESMTPSA id 17-20020aa79211000000b00662610cf7a8sm6723376pfo.172.2023.06.12.03.04.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jun 2023 03:04:49 -0700 (PDT) From: tkuw584924@gmail.com X-Google-Original-From: Takahiro.Kuwano@infineon.com To: linux-mtd@lists.infradead.org Cc: tudor.ambarus@linaro.org, pratyush@kernel.org, michael@walle.cc, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, d-gole@ti.com, tkuw584924@gmail.com, Bacem.Daassi@infineon.com, Takahiro Kuwano Subject: [PATCH 5/5] mtd: spi-nor: spansion: Add S28HS02GT ID and fixups Date: Mon, 12 Jun 2023 19:04:09 +0900 Message-Id: <78847f3e368651b13d00e0b37864b74d8736cc57.1686557139.git.Takahiro.Kuwano@infineon.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: References: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230612_030452_781364_7F0BCC1F X-CRM114-Status: GOOD ( 13.31 ) X-Spam-Score: 0.1 (/) X-Spam-Report: Spam detection software, running on the system "bombadil.infradead.org", has NOT identified this incoming email as spam. The original message has been attached to this so you can view it or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: From: Takahiro Kuwano Infineon S28HS02GT is 2Gb, multi-chip package, Octal SPI Flash. This patch adds ID table, fix params->n_dice value, and replace params->ready() with MCP version. Signed-off-by: Takahiro Kuwano --- drivers/mtd/spi-nor/spansion.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) Content analysis details: (0.1 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at https://www.dnswl.org/, no trust [2607:f8b0:4864:20:0:0:0:42e listed in] [list.dnswl.org] -0.0 SPF_PASS SPF: sender matches SPF record 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider [tkuw584924[at]gmail.com] 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit [tkuw584924[at]gmail.com] -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -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 -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Takahiro Kuwano Infineon S28HS02GT is 2Gb, multi-chip package, Octal SPI Flash. This patch adds ID table, fix params->n_dice value, and replace params->ready() with MCP version. Signed-off-by: Takahiro Kuwano --- drivers/mtd/spi-nor/spansion.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/spi-nor/spansion.c b/drivers/mtd/spi-nor/spansion.c index 8b8512402639..88dc849a63b3 100644 --- a/drivers/mtd/spi-nor/spansion.c +++ b/drivers/mtd/spi-nor/spansion.c @@ -720,6 +720,10 @@ static int s28hx_t_post_sfdp_fixup(struct spi_nor *nor) */ nor->params->rdsr_addr_nbytes = 4; + /* The 2 Gb parts duplicate info and advertise 4 dice instead of 2. */ + if (nor->params->size == SZ_256M) + nor->params->n_dice = 2; + return cypress_nor_get_page_size(nor); } @@ -738,8 +742,15 @@ static int s28hx_t_post_bfpt_fixup(struct spi_nor *nor, static void s28hx_t_late_init(struct spi_nor *nor) { - nor->params->octal_dtr_enable = cypress_nor_octal_dtr_enable; + struct spi_nor_flash_parameter *params = nor->params; + + params->octal_dtr_enable = cypress_nor_octal_dtr_enable; + cypress_nor_ecc_init(nor); + + /* Replace ready() with multi die version */ + if (params->n_dice) + params->ready = cypress_nor_sr_ready_and_clear; } static const struct spi_nor_fixups s28hx_t_fixups = { @@ -913,6 +924,11 @@ static const struct flash_info spansion_nor_parts[] = { MFR_FLAGS(USE_CLPEF) .fixups = &s28hx_t_fixups, }, + { "s28hs02gt", INFO(0x345b1c, 0, 256 * 1024, 1024) + PARSE_SFDP + MFR_FLAGS(USE_CLPEF) + .fixups = &s28hx_t_fixups, + }, }; /**