From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pj1-f42.google.com (mail-pj1-f42.google.com [209.85.216.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 402F12E630 for ; Thu, 18 Jan 2024 19:54:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607667; cv=none; b=J+VC+OcbmRRseCmrmWYFzhWfIwcNgm9kdVDFhalcYDn19NZo4gN115+aOkjRh9/IVhpmB4o/HX1fZi7NQdMxAoyHztK7G3MyLFJbLxNfkkrpbG9yZO8hW5qaxlzny+f2JlNnRfyJv/McaRdG+gRByxPBt3KzfQ1ZFFnaty+z0cw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607667; c=relaxed/simple; bh=uHKk+xokRpnLbIS+v0V7v/UWZ2+XmvxUQ9xR0XOGAi4=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=n5mwevOhw6logNpz3sONaIWa3EVEPKb3xkzp4xcWfdjeUpHKBoSpS6IhOnB+ooEq2/NppBcebGfRUFCGMfx2MOtGVgJBVI1UQVdbnKcbsTQFKl7dXeLCR4F0KA+mepDEw0zQKt5uP0JNBs8hyxvo+wk9LNcLZz/YtFFEjM2cK2g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=fvI5p/Pn; arc=none smtp.client-ip=209.85.216.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="fvI5p/Pn" Received: by mail-pj1-f42.google.com with SMTP id 98e67ed59e1d1-28be8ebcdc1so87170a91.0 for ; Thu, 18 Jan 2024 11:54:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607664; x=1706212464; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=x+1SWW+Ig8UbJFSMxb59hrypayblGZkJ0hxIP2opRhk=; b=fvI5p/PnoWHIWI94TWdyu4xJ6KlSp/qmazATN5xTZfZSDWfJUJ0Dzt7IqSqs/KQV9c wRz7iYR3zwjBJFkSVU3EsyEZNgfpQpLUQXDjYczK91DZOlaD3ovsXW5SUl5vj60+46a8 wZ5lrqIv0JDmHul2Bk1LZQTgQtb6CHQFVQ/5M= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607664; x=1706212464; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=x+1SWW+Ig8UbJFSMxb59hrypayblGZkJ0hxIP2opRhk=; b=F0yuw0SfHz0A7mw8Jsz3un3dcy5Kt1vNURQw+lIGMT0cGf8cFDl680XPPrFJRDDCaG gDRSBXnMoEl0ed5BrrQHTZjlXGiIjKhQ1247p4+gdYm3UE/7nxsi9+HXItkng7lB5+bH MnhBIjCxwb4MV8ye2BSvXuuEpOL5N0E4F+IiCa6iLNKP14yUdye+OfWPxs2rksI74yY3 rATJib0fQsEYN4yIvaKrZVnmR60E03Yv4tLCC6Vdbq8IEECHunCpo9tWLTPcXRDx+I7j +WYcg227WQxUUrg9l1FaBT+MNg7xyIYmJA4aJSMPHU5M8CKEBGOqAW9tXR2l+lY6wOuZ ZI5g== X-Gm-Message-State: AOJu0YyTtPSEwLApNMGkyXA/0JDyCcJFs11R9z29JNliA3cCIU5/2hBk G7UMcTnJdun6d6NuLV3AlA6xUueNNwe5bTURBJsFf7Yl7a5VVhNWuPG7Z6dpXA== X-Google-Smtp-Source: AGHT+IFJN5qdqCj4U1EPyvoOMfY4T24rq4BxUvtFH94/vWLwCV5OWIm6tnON7+tYz1c8hDwFg68IcQ== X-Received: by 2002:a17:90a:9a94:b0:290:4a:bfc0 with SMTP id e20-20020a17090a9a9400b00290004abfc0mr1068043pjp.4.1705607664535; Thu, 18 Jan 2024 11:54:24 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.23 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:24 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 01/10] dt-bindings: mtd: brcmnand: Updates for bcmbca SoCs Date: Thu, 18 Jan 2024 11:53:47 -0800 Message-Id: <20240118195356.133391-2-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: William Zhang Update the descriptions to reflect different families of broadband SoC and use the general name bcmbca for ARM based SoC. Add brcm,nand-use-wp property to have an option for disabling this feature on broadband board design that does not use write protection. Add brcm,nand-ecc-use-strap to get ecc setting from board boot strap for broadband board designs because they do not specify ecc setting in dts but rather using the strap setting. Remove the requirement of interrupts property to reflect the driver code. Also add myself to the list of maintainers. Signed-off-by: William Zhang Reviewed-by: David Regan --- Changes in v2: - Revert the new compatible string nand-bcmbca - Drop the BCM63168 compatible fix to avoid any potential ABI incompatibility issue - Simplify the explanation for brcm,nand-use-wp - Keep the interrupt name requirement when interrupt number is specified --- .../bindings/mtd/brcm,brcmnand.yaml | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 deletions(-) diff --git a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml b/Doc= umentation/devicetree/bindings/mtd/brcm,brcmnand.yaml index f57e96374e67..56176ec1a992 100644 --- a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml +++ b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml @@ -9,6 +9,7 @@ title: Broadcom STB NAND Controller maintainers: - Brian Norris - Kamal Dasu + - William Zhang =20 description: | The Broadcom Set-Top Box NAND controller supports low-level access to ra= w NAND @@ -18,9 +19,10 @@ description: | supports basic PROGRAM and READ functions, among other features. =20 This controller was originally designed for STB SoCs (BCM7xxx) but is now - available on a variety of Broadcom SoCs, including some BCM3xxx, BCM63xx= , and - iProc/Cygnus. Its history includes several similar (but not fully regist= er - compatible) versions. + available on a variety of Broadcom SoCs, including some BCM3xxx, MIPS ba= sed + Broadband SoC (BCM63xx), ARM based Broadband SoC (BCMBCA) and iProc/Cygn= us. + Its history includes several similar (but not fully register compatible) + versions. =20 -- Additional SoC-specific NAND controller properties -- =20 @@ -53,7 +55,7 @@ properties: - brcm,brcmnand-v7.2 - brcm,brcmnand-v7.3 - const: brcm,brcmnand - - description: BCM63138 SoC-specific NAND controller + - description: BCMBCA SoC-specific NAND controller items: - const: brcm,nand-bcm63138 - enum: @@ -65,7 +67,7 @@ properties: - const: brcm,nand-iproc - const: brcm,brcmnand-v6.1 - const: brcm,brcmnand - - description: BCM63168 SoC-specific NAND controller + - description: BCM63xx SoC-specific NAND controller items: - const: brcm,nand-bcm63168 - const: brcm,nand-bcm6368 @@ -111,6 +113,17 @@ properties: earlier versions of this core that include WP type: boolean =20 + brcm,nand-use-wp: + description: + Use this property to indicate if board design uses + controller's write protection feature and connects its + NAND_WPb pin to nand chip's WP_L pin. Driver defaults to + use this feature when this property does not exist. + Set to 0 if WP pins are not connected and feature is not + used. Set to 1 if WP pins are connected and feature is used. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1] + patternProperties: "^nand@[a-f0-9]$": type: object @@ -137,6 +150,16 @@ patternProperties: layout. $ref: /schemas/types.yaml#/definitions/uint32 =20 + brcm,nand-ecc-use-strap: + description: + This flag is used by the driver to get the ecc strength and + spare area size from the SoC NAND boot strap setting. This + is commonly used by the BCMBCA SoC board design. If ecc + strength and spare area size are set by nand-ecc-strength + and brcm,nand-oob-sector-size in the dts, these settings + have precedence and override this flag. + $ref: /schemas/types.yaml#/definitions/flag + unevaluatedProperties: false =20 allOf: @@ -177,6 +200,8 @@ allOf: - const: iproc-idm - const: iproc-ext - if: + required: + - interrupts properties: interrupts: minItems: 2 @@ -189,7 +214,6 @@ unevaluatedProperties: false required: - reg - reg-names - - interrupts =20 examples: - | --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pj1-f43.google.com (mail-pj1-f43.google.com [209.85.216.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE21A2E651 for ; Thu, 18 Jan 2024 19:54:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607669; cv=none; b=Vyb5pwOZolj1GpCqIq5+CXlTPhY3gjL7WhAkjJyn1IqstrNsryKi050vQbLLajRk5w3gVLIu5jOJLDZ8yyVTxLjX3y+y8eVWTPFYYHlug4TkcY0zcQfjojdsQsIS0iPYhSjInyehEKeYH5/YZhPrjX74JVuiSO7cCxe5UsPHo0g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607669; c=relaxed/simple; bh=BKGUNLOlYtyDwQqPUMJqrEdssB+3ExVINieEuhTfE8A=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=p7ItMJ6yrMwmtrHa8dr1XASvK4tJeZ4a6P2dfCtWlwi8Bji8wdmio3O2HBCUEZW00F6A4uDTUaHcmcSiIzHIJkSSLaFgNVZ+lycWD88dRY8ZxAYG1jjTKldbkGzwrMo9ipUYe5eL2l2RrSPkCujbFihm4nHbR38Ri27Sbv3J7KE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=GfOgUNRq; arc=none smtp.client-ip=209.85.216.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="GfOgUNRq" Received: by mail-pj1-f43.google.com with SMTP id 98e67ed59e1d1-2903cd158f8so69267a91.2 for ; Thu, 18 Jan 2024 11:54:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607666; x=1706212466; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=P7YdlaHtDicZ9S/nNPczTdCxtxFMN2pJg3+moTPaeDY=; b=GfOgUNRq2CjgjiqEEX2yTKLx5SgoTkLk5V2YGdJWmQP0SXXvjQ/ttvK3rcN+OjzI+B IEInXPnYe1R5mo/6JRfwxVimPWxQQZKsPklWn1ZL5rJpukWYLVfVVZfeFWmU0sbnMBXp 72bPZslktgUQpFoxblHZFNT1TM441W4nKZs9Q= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607666; x=1706212466; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=P7YdlaHtDicZ9S/nNPczTdCxtxFMN2pJg3+moTPaeDY=; b=UfL9lf+fiH9RoFDyr5zUxDDzezhwlHGod2gwJCyMjHSoEFO4Gnw6hNnrsMa5yYHHMA qiWxO8tufvZszHm0rK6S7hmI5lfCnr5cM1fkkShxJXyJKEtO4eRuNqbQECIeEpYq/Bmk AYV7Uc7ubRssJOQZf+uq3Zqr/d7LJZCSLU1kHcu8tyPC7LPL19tHGffd2A4Tv0YPHw0L oFbnUj1MXHArWgN1+b4xU4lRwV8yidl/sKnxEVoVNUCVvOxusxVN3GusDtWlKoFixZ6G ucI3q6UhMLJ9JN0HoxKf+vcwrTrVZwOkiOCXOqsEjBi0v+F9vNnoQWO4sPJGf9ehLQrE JVwA== X-Gm-Message-State: AOJu0YzD+/Um52XAQTcvBtjiLqEbOgjWLOuyjf4mQjeUj1KNjXoDOkGu UQK7xzhgxiwnFqnbQNAwMjzm/QJx9DT+whIWsTI5ZN/uWXCGaYb/Jeoa+Ca5EQ== X-Google-Smtp-Source: AGHT+IEoxUIUXKVf4ieGnqL9RGAv8SCgN30MM0zhDQgEa5AiaT4yw1zAbStUyQ7x7a1Q5OBDK+J3iA== X-Received: by 2002:a17:90a:c292:b0:28d:280a:7e4e with SMTP id f18-20020a17090ac29200b0028d280a7e4emr1045900pjt.56.1705607666218; Thu, 18 Jan 2024 11:54:26 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.24 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:25 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 02/10] ARM: dts: broadcom: bcmbca: Add NAND controller node Date: Thu, 18 Jan 2024 11:53:48 -0800 Message-Id: <20240118195356.133391-3-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: William Zhang Add support for Broadcom STB NAND controller in BCMBCA ARMv7 chip dts files. Signed-off-by: William Zhang Reviewed-by: David Regan --- Changes in v2: None --- arch/arm/boot/dts/broadcom/bcm47622.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/broadcom/bcm63138.dtsi | 10 +++++++++- arch/arm/boot/dts/broadcom/bcm63148.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/broadcom/bcm63178.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/broadcom/bcm6756.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/broadcom/bcm6846.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/broadcom/bcm6855.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/broadcom/bcm6878.dtsi | 17 +++++++++++++++++ arch/arm/boot/dts/broadcom/bcm947622.dts | 4 ++++ arch/arm/boot/dts/broadcom/bcm963138.dts | 4 ++++ arch/arm/boot/dts/broadcom/bcm963138dvt.dts | 12 +++++------- arch/arm/boot/dts/broadcom/bcm963148.dts | 4 ++++ arch/arm/boot/dts/broadcom/bcm963178.dts | 4 ++++ arch/arm/boot/dts/broadcom/bcm96756.dts | 4 ++++ arch/arm/boot/dts/broadcom/bcm96846.dts | 4 ++++ arch/arm/boot/dts/broadcom/bcm96855.dts | 4 ++++ arch/arm/boot/dts/broadcom/bcm96878.dts | 4 ++++ 17 files changed, 165 insertions(+), 8 deletions(-) diff --git a/arch/arm/boot/dts/broadcom/bcm47622.dtsi b/arch/arm/boot/dts/b= roadcom/bcm47622.dtsi index 7cd38de118c3..55ff18043d96 100644 --- a/arch/arm/boot/dts/broadcom/bcm47622.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm47622.dtsi @@ -138,6 +138,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm63138.dtsi b/arch/arm/boot/dts/b= roadcom/bcm63138.dtsi index 4ef02283612b..3aaee1c6994e 100644 --- a/arch/arm/boot/dts/broadcom/bcm63138.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm63138.dtsi @@ -229,7 +229,15 @@ nand_controller: nand-controller@2000 { reg-names =3D "nand", "nand-int-base"; status =3D "disabled"; interrupts =3D ; - interrupt-names =3D "nand"; + interrupt-names =3D "nand_ctlrdy"; + brcm,nand-use-wp =3D <0>; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; }; =20 serial@4400 { diff --git a/arch/arm/boot/dts/broadcom/bcm63148.dtsi b/arch/arm/boot/dts/b= roadcom/bcm63148.dtsi index 24431de1810e..6ecd530a7225 100644 --- a/arch/arm/boot/dts/broadcom/bcm63148.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm63148.dtsi @@ -119,5 +119,22 @@ hsspi: spi@1000 { num-cs =3D <8>; status =3D "disabled"; }; + + nand_controller: nand-controller@2000 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x2000 0x600>, <0xf0 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; }; }; diff --git a/arch/arm/boot/dts/broadcom/bcm63178.dtsi b/arch/arm/boot/dts/b= roadcom/bcm63178.dtsi index 3f9aed96babf..742991fc7544 100644 --- a/arch/arm/boot/dts/broadcom/bcm63178.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm63178.dtsi @@ -129,6 +129,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm6756.dtsi b/arch/arm/boot/dts/br= oadcom/bcm6756.dtsi index 1d8d957d65dd..0f08b99d93c2 100644 --- a/arch/arm/boot/dts/broadcom/bcm6756.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm6756.dtsi @@ -139,6 +139,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm6846.dtsi b/arch/arm/boot/dts/br= oadcom/bcm6846.dtsi index cf92cf8c4693..856fd2352cca 100644 --- a/arch/arm/boot/dts/broadcom/bcm6846.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm6846.dtsi @@ -119,5 +119,22 @@ hsspi: spi@1000 { num-cs =3D <8>; status =3D "disabled"; }; + + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; }; }; diff --git a/arch/arm/boot/dts/broadcom/bcm6855.dtsi b/arch/arm/boot/dts/br= oadcom/bcm6855.dtsi index 52d6bc89f9f8..ad6f63a92c3a 100644 --- a/arch/arm/boot/dts/broadcom/bcm6855.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm6855.dtsi @@ -129,6 +129,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm6878.dtsi b/arch/arm/boot/dts/br= oadcom/bcm6878.dtsi index 2c5d706bac7e..540aac1b82f9 100644 --- a/arch/arm/boot/dts/broadcom/bcm6878.dtsi +++ b/arch/arm/boot/dts/broadcom/bcm6878.dtsi @@ -120,6 +120,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm/boot/dts/broadcom/bcm947622.dts b/arch/arm/boot/dts/b= roadcom/bcm947622.dts index 93b8ce22678d..22e3c4508e1a 100644 --- a/arch/arm/boot/dts/broadcom/bcm947622.dts +++ b/arch/arm/boot/dts/broadcom/bcm947622.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm963138.dts b/arch/arm/boot/dts/b= roadcom/bcm963138.dts index 1b405c249213..450289d47dc7 100644 --- a/arch/arm/boot/dts/broadcom/bcm963138.dts +++ b/arch/arm/boot/dts/broadcom/bcm963138.dts @@ -29,3 +29,7 @@ &serial0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm963138dvt.dts b/arch/arm/boot/dt= s/broadcom/bcm963138dvt.dts index b5af61853a07..22107d14a120 100644 --- a/arch/arm/boot/dts/broadcom/bcm963138dvt.dts +++ b/arch/arm/boot/dts/broadcom/bcm963138dvt.dts @@ -33,14 +33,12 @@ &serial1 { =20 &nand_controller { status =3D "okay"; +}; =20 - nand@0 { - compatible =3D "brcm,nandcs"; - reg =3D <0>; - nand-ecc-strength =3D <4>; - nand-ecc-step-size =3D <512>; - brcm,nand-oob-sectors-size =3D <16>; - }; +&nandcs { + nand-ecc-strength =3D <4>; + nand-ecc-step-size =3D <512>; + brcm,nand-oob-sector-size =3D <16>; }; =20 &ahci { diff --git a/arch/arm/boot/dts/broadcom/bcm963148.dts b/arch/arm/boot/dts/b= roadcom/bcm963148.dts index 1f5d6d783f09..aa08b473c7cd 100644 --- a/arch/arm/boot/dts/broadcom/bcm963148.dts +++ b/arch/arm/boot/dts/broadcom/bcm963148.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm963178.dts b/arch/arm/boot/dts/b= roadcom/bcm963178.dts index d036e99dd8d1..c0f504ac43a4 100644 --- a/arch/arm/boot/dts/broadcom/bcm963178.dts +++ b/arch/arm/boot/dts/broadcom/bcm963178.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm96756.dts b/arch/arm/boot/dts/br= oadcom/bcm96756.dts index 8b104f3fb14a..2ce998f2b84f 100644 --- a/arch/arm/boot/dts/broadcom/bcm96756.dts +++ b/arch/arm/boot/dts/broadcom/bcm96756.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm96846.dts b/arch/arm/boot/dts/br= oadcom/bcm96846.dts index 55852c229608..f4b9a07370ee 100644 --- a/arch/arm/boot/dts/broadcom/bcm96846.dts +++ b/arch/arm/boot/dts/broadcom/bcm96846.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm96855.dts b/arch/arm/boot/dts/br= oadcom/bcm96855.dts index 2ad880af2104..5c94063bceaf 100644 --- a/arch/arm/boot/dts/broadcom/bcm96855.dts +++ b/arch/arm/boot/dts/broadcom/bcm96855.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm/boot/dts/broadcom/bcm96878.dts b/arch/arm/boot/dts/br= oadcom/bcm96878.dts index b7af8ade7a9d..910f7e125bad 100644 --- a/arch/arm/boot/dts/broadcom/bcm96878.dts +++ b/arch/arm/boot/dts/broadcom/bcm96878.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D1312E82F for ; Thu, 18 Jan 2024 19:54:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607670; cv=none; b=YAmSgHNz2+f8WEYuplx59D6AxpJAOWAoc3kOIjjc12V+PYJpOeQru+LiATCNQRaBPwgsCzeyiYL6l7lH6pM9FpQMSyPcfsCQd0sf7BHhU27yNwKmzfpu5LaMyObGOJyARXCqG7+a0frBLxJPg/RJPOOy0YM+z8p3wagg1t+Z4XQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607670; c=relaxed/simple; bh=A8pZWk1xCi23z0QMV0IQEIUij4yapHl+cGa+pujskUE=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FTA906ttwe8sM+SHmB3ZEy+MZ1nuEgkccxndBymHwBY4rC8R1O4doFuQgRaxyYLHgrV6kxT1gIeHfpGRzPpC3zn89fxxC6Uh9RfaEySYCaQSUAYaPH1YcXOHZvA8qJ54lFkFSpZTRwLypg7tvub7Y94amA0howFJc6+nSYJmfEI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=FH5u5h5y; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="FH5u5h5y" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-1d70b0e521eso6511565ad.1 for ; Thu, 18 Jan 2024 11:54:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607668; x=1706212468; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=0hDcE9X5TULuB647AhqBvpK0WvuIC7BaHkURSvG7o60=; b=FH5u5h5yVr2Eq/i9SRdUGbjSRpuqHUemkkxUqFq34QVZzdXas5KTSlTOmBKziJY6zP Lnk4tU/yY/mo7pFlmYWYYmYbWCGO//7HcwJ4xZRKJfaBXatDTw9Kl3n2fADkL4O26JAf oDqz4etUFGRcQLFTCj+tt3/miYyUHIl+R0mCM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607668; x=1706212468; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0hDcE9X5TULuB647AhqBvpK0WvuIC7BaHkURSvG7o60=; b=Lw2fr5fpVEMkdHRcsCdFc+AusU6/GMp33GVmrBqJeB1Wv6Kyx858jGB9Rsg6+cuo8S SqWwGWgcEvn5RuFoAC8plar1fMiXxYfyE72Vm5/tJYGUrMjb4RLXjSqSVljwUAIR/La1 WXb1YM6AYTigrzUFC1YaM5EO/geRGjm4X7F8QeioEZuBLc6sD1LUvGTTKDqCHRwSCoq/ q8n82N/tds+r0OqJIt/57j0rj4z9x3rvuFUsJrwVckurm5XjRx5kFWhSAqN4wP0InrCe RdDLGDhF577cZTkDQqN3JqWyXBLRXYYPgpSGYW2EZwAMSGee8aKm+ALli1hygQsNQwTt VIJw== X-Gm-Message-State: AOJu0YzVZsRjy+TFcquHHGQgg9l8wjD2dQUtJACitmmG/iXHaHen4g6c MDKyI/L0avyYTpxS+HAOCVOo2TpXNCnNp54bJ+lobGv2iA+VgWRrZKylNbacyA== X-Google-Smtp-Source: AGHT+IGGw4SKESvl3UhBCttzEHwT8TIeVCYclrj8MzDyiyhnEgfTOVt4tgOxdY5pwMLXEkwz/tom5g== X-Received: by 2002:a17:902:6b01:b0:1d5:c398:efa2 with SMTP id o1-20020a1709026b0100b001d5c398efa2mr1226528plk.110.1705607667872; Thu, 18 Jan 2024 11:54:27 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.26 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:27 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 03/10] arm64: dts: broadcom: bcmbca: Add NAND controller node Date: Thu, 18 Jan 2024 11:53:49 -0800 Message-Id: <20240118195356.133391-4-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: William Zhang Add support for Broadcom STB NAND controller in BCMBCA ARMv8 chip dts files. Signed-off-by: William Zhang Reviewed-by: David Regan --- Changes in v2: - Add nand controller node label for 4908 so it is consistent with other SoCs and can be referenced by board dts file --- .../arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi | 5 ++++- .../arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi | 17 +++++++++++++++++ .../boot/dts/broadcom/bcmbca/bcm63146.dtsi | 17 +++++++++++++++++ .../boot/dts/broadcom/bcmbca/bcm63158.dtsi | 17 +++++++++++++++++ .../arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi | 17 +++++++++++++++++ .../arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi | 17 +++++++++++++++++ .../arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi | 17 +++++++++++++++++ .../arm64/boot/dts/broadcom/bcmbca/bcm94912.dts | 4 ++++ .../boot/dts/broadcom/bcmbca/bcm963146.dts | 4 ++++ .../boot/dts/broadcom/bcmbca/bcm963158.dts | 4 ++++ .../arm64/boot/dts/broadcom/bcmbca/bcm96813.dts | 4 ++++ .../arm64/boot/dts/broadcom/bcmbca/bcm96856.dts | 4 ++++ .../arm64/boot/dts/broadcom/bcmbca/bcm96858.dts | 4 ++++ 13 files changed, 130 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm4908.dtsi index 2f124b027bbf..03a516d02501 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4908.dtsi @@ -589,7 +589,7 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 - nand-controller@1800 { + nand_controller: nand-controller@1800 { #address-cells =3D <1>; #size-cells =3D <0>; compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; @@ -597,11 +597,14 @@ nand-controller@1800 { reg-names =3D "nand", "nand-int-base"; interrupts =3D ; interrupt-names =3D "nand_ctlrdy"; + brcm,nand-use-wp =3D <0>; status =3D "okay"; =20 nandcs: nand@0 { compatible =3D "brcm,nandcs"; reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; }; }; =20 diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm4912.dtsi index d658c81f7285..92a829542467 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm4912.dtsi @@ -138,6 +138,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi b/arch/arm64= /boot/dts/broadcom/bcmbca/bcm63146.dtsi index 4f474d47022e..2283fd81ece6 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm63146.dtsi @@ -119,6 +119,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi b/arch/arm64= /boot/dts/broadcom/bcmbca/bcm63158.dtsi index 909f254dc47d..c70177066a15 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm63158.dtsi @@ -137,6 +137,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm6813.dtsi index 685ae32951c9..09115e3af694 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6813.dtsi @@ -138,6 +138,23 @@ hsspi: spi@1000 { status =3D "disabled"; }; =20 + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; + uart0: serial@12000 { compatible =3D "arm,pl011", "arm,primecell"; reg =3D <0x12000 0x1000>; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm6856.dtsi index 820553ce541b..03ed65b35dbc 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6856.dtsi @@ -119,5 +119,22 @@ hsspi: spi@1000 { num-cs =3D <8>; status =3D "disabled"; }; + + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; }; }; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm6858.dtsi index 0eb93c298297..36f1fc06fcec 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm6858.dtsi @@ -156,5 +156,22 @@ hsspi: spi@1000 { num-cs =3D <8>; status =3D "disabled"; }; + + nand_controller: nand-controller@1800 { + #address-cells =3D <1>; + #size-cells =3D <0>; + compatible =3D "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmna= nd"; + reg =3D <0x1800 0x600>, <0x2000 0x10>; + reg-names =3D "nand", "nand-int-base"; + brcm,nand-use-wp =3D <0>; + status =3D "disabled"; + + nandcs: nand@0 { + compatible =3D "brcm,nandcs"; + reg =3D <0>; + nand-on-flash-bbt; + brcm,nand-ecc-use-strap; + }; + }; }; }; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm94912.dts index e69cd683211a..4d1ea501e384 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm94912.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts b/arch/arm64= /boot/dts/broadcom/bcmbca/bcm963146.dts index db2c82d6dfd8..810b5a23da7b 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm963146.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts b/arch/arm64= /boot/dts/broadcom/bcmbca/bcm963158.dts index 25c12bc63545..3aaae5dbb568 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm963158.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm96813.dts index faba21f03120..6b167cc2af76 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96813.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm96856.dts index 9808331eede2..d598cd618b57 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96856.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; diff --git a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts b/arch/arm64/= boot/dts/broadcom/bcmbca/bcm96858.dts index 1f561c8e13b0..e50ddbf6f58c 100644 --- a/arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts +++ b/arch/arm64/boot/dts/broadcom/bcmbca/bcm96858.dts @@ -32,3 +32,7 @@ &uart0 { &hsspi { status =3D "okay"; }; + +&nand_controller { + status =3D "okay"; +}; --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1E5A22E842 for ; Thu, 18 Jan 2024 19:54:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607671; cv=none; b=qm9u1A5hencAAxgFb8ss603QPfZ+9DKSBmVOcHkNWDpwnsCyNcCC3h+yBJxoY7c4ExnjtpuqhiySC97SVdHCab68u7gUFiiBdFDDPuMvx3J1Li24bce51U2UJRG86iWrnkO+iw5CB7mkiOVnhK0jFIhw72r/lX2vBGQDO6kef0o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607671; c=relaxed/simple; bh=CagddVJVlACkK6LQIFFZzS+/b11zlokZLNjt/IlJCe8=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=VZxtm10TM0Qr2FnElVEx4JfkWOei8j8RAiVada1jF+8iycvmcZUc1ghlqdKC1nPVRdeobfTzPOc5nforR6AaBN1ZpDqAMBhsGOiRxPOgpoZB64h1eJxtiIHjlBr+aZm4IOnpQ0z1Zir+6Z4h7lEUxV0dCYIH2BVUbgfG7+8qLgs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=P/rq/RGl; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="P/rq/RGl" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-1d5f1e0e32eso21926735ad.3 for ; Thu, 18 Jan 2024 11:54:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607669; x=1706212469; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=Jja3d4MjXLOFSymCPf/lawx88oSJHo/XoqweGhZS6o4=; b=P/rq/RGln3QrZBTrTS+M4d1QnQ0oMoeSHAJ6/oWDQRDN8WxAisRfdvkW0pECcqHo9h H0n+jDEAIfFk/YYcWRg83mjfBu8hw2hZmmU24ulYrHK6WgWn4Q18eWJdwbQUk9JsEBmS RJ15+wStUlrX/SQ16Iq7HZXeHC/xZpMenBGn0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607669; x=1706212469; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Jja3d4MjXLOFSymCPf/lawx88oSJHo/XoqweGhZS6o4=; b=ZiEn4WsTL5NS5+OazUAemCL7ViHA4ie0I/n37cQVusEV279Jq7paSNYPcrIyB9D+Cu PKEsF/SknO1muTkFEOFX+fevfafg8okKg2evwgOVK9e9XY06rlf9pK4uwANs93tbe2Av MDh8IfkrP0sQGHSAHIx7TPqrFiMvrNYjQ33Zux4g0jyaGPQ+O1YYwwQBrBStpsRDPMNh v9eDrJM3EVrT/dNeOSd/KyjEMlekruouJjgsAlcqht4v+H6j7o3AKQMJNtOOEAgkfO35 oiHBNyTniuUsrkBRnqTrHzXRaHHIq00HUCYdXCRhUQ9HgaTHAcfQVaspkexN1AGTUCyH +cIQ== X-Gm-Message-State: AOJu0Yz6+6ZY8iLdr3Wqf60dMq5B5V31NnzvV4L4HHuSjnPPIXxNpZMU 7e4Lw5JyLiWI3f997bi27IPPW7/vXdTIqLWZx5yrkvZfVyqX0ZecB4tUWbuZNw== X-Google-Smtp-Source: AGHT+IGWaTCuAGpakDPXPQVCgRpiaK5V07i0ywdIak6g2Fqi80lRf2SNBFR3l9QCrOG60CmvedyNcw== X-Received: by 2002:a17:90a:5d8d:b0:290:14a1:d6be with SMTP id t13-20020a17090a5d8d00b0029014a1d6bemr963862pji.75.1705607669413; Thu, 18 Jan 2024 11:54:29 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:29 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 04/10] mtd: rawnand: brcmnand: Rename bcm63138 nand driver Date: Thu, 18 Jan 2024 11:53:50 -0800 Message-Id: <20240118195356.133391-5-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: William Zhang In preparing to support multiple BCMBCA SoCs, rename bcm63138 to bcmbca in the driver code and driver file name. Signed-off-by: William Zhang Reviewed-by: David Regan Acked-by: Florian Fainelli --- Changes in v2: None --- drivers/mtd/nand/raw/brcmnand/Makefile | 2 +- drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c | 99 ------------------- drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c | 99 +++++++++++++++++++ 3 files changed, 100 insertions(+), 100 deletions(-) delete mode 100644 drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c create mode 100644 drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c diff --git a/drivers/mtd/nand/raw/brcmnand/Makefile b/drivers/mtd/nand/raw/= brcmnand/Makefile index 9907e3ec4bb2..0536568c6467 100644 --- a/drivers/mtd/nand/raw/brcmnand/Makefile +++ b/drivers/mtd/nand/raw/brcmnand/Makefile @@ -2,7 +2,7 @@ # link order matters; don't link the more generic brcmstb_nand.o before the # more specific iproc_nand.o, for instance obj-$(CONFIG_MTD_NAND_BRCMNAND_IPROC) +=3D iproc_nand.o -obj-$(CONFIG_MTD_NAND_BRCMNAND_BCMBCA) +=3D bcm63138_nand.o +obj-$(CONFIG_MTD_NAND_BRCMNAND_BCMBCA) +=3D bcmbca_nand.o obj-$(CONFIG_MTD_NAND_BRCMNAND_BCM63XX) +=3D bcm6368_nand.o obj-$(CONFIG_MTD_NAND_BRCMNAND_BRCMSTB) +=3D brcmstb_nand.o obj-$(CONFIG_MTD_NAND_BRCMNAND) +=3D brcmnand.o diff --git a/drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c b/drivers/mtd/na= nd/raw/brcmnand/bcm63138_nand.c deleted file mode 100644 index 968c5b674b08..000000000000 --- a/drivers/mtd/nand/raw/brcmnand/bcm63138_nand.c +++ /dev/null @@ -1,99 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * Copyright =C2=A9 2015 Broadcom Corporation - */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "brcmnand.h" - -struct bcm63138_nand_soc { - struct brcmnand_soc soc; - void __iomem *base; -}; - -#define BCM63138_NAND_INT_STATUS 0x00 -#define BCM63138_NAND_INT_EN 0x04 - -enum { - BCM63138_CTLRDY =3D BIT(4), -}; - -static bool bcm63138_nand_intc_ack(struct brcmnand_soc *soc) -{ - struct bcm63138_nand_soc *priv =3D - container_of(soc, struct bcm63138_nand_soc, soc); - void __iomem *mmio =3D priv->base + BCM63138_NAND_INT_STATUS; - u32 val =3D brcmnand_readl(mmio); - - if (val & BCM63138_CTLRDY) { - brcmnand_writel(val & ~BCM63138_CTLRDY, mmio); - return true; - } - - return false; -} - -static void bcm63138_nand_intc_set(struct brcmnand_soc *soc, bool en) -{ - struct bcm63138_nand_soc *priv =3D - container_of(soc, struct bcm63138_nand_soc, soc); - void __iomem *mmio =3D priv->base + BCM63138_NAND_INT_EN; - u32 val =3D brcmnand_readl(mmio); - - if (en) - val |=3D BCM63138_CTLRDY; - else - val &=3D ~BCM63138_CTLRDY; - - brcmnand_writel(val, mmio); -} - -static int bcm63138_nand_probe(struct platform_device *pdev) -{ - struct device *dev =3D &pdev->dev; - struct bcm63138_nand_soc *priv; - struct brcmnand_soc *soc; - - priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; - soc =3D &priv->soc; - - priv->base =3D devm_platform_ioremap_resource_byname(pdev, "nand-int-base= "); - if (IS_ERR(priv->base)) - return PTR_ERR(priv->base); - - soc->ctlrdy_ack =3D bcm63138_nand_intc_ack; - soc->ctlrdy_set_enabled =3D bcm63138_nand_intc_set; - - return brcmnand_probe(pdev, soc); -} - -static const struct of_device_id bcm63138_nand_of_match[] =3D { - { .compatible =3D "brcm,nand-bcm63138" }, - {}, -}; -MODULE_DEVICE_TABLE(of, bcm63138_nand_of_match); - -static struct platform_driver bcm63138_nand_driver =3D { - .probe =3D bcm63138_nand_probe, - .remove_new =3D brcmnand_remove, - .driver =3D { - .name =3D "bcm63138_nand", - .pm =3D &brcmnand_pm_ops, - .of_match_table =3D bcm63138_nand_of_match, - } -}; -module_platform_driver(bcm63138_nand_driver); - -MODULE_LICENSE("GPL v2"); -MODULE_AUTHOR("Brian Norris"); -MODULE_DESCRIPTION("NAND driver for BCM63138"); diff --git a/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c b/drivers/mtd/nand= /raw/brcmnand/bcmbca_nand.c new file mode 100644 index 000000000000..3e2f3b79788d --- /dev/null +++ b/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * Copyright =C2=A9 2015 Broadcom Corporation + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "brcmnand.h" + +struct bcmbca_nand_soc { + struct brcmnand_soc soc; + void __iomem *base; +}; + +#define BCMBCA_NAND_INT_STATUS 0x00 +#define BCMBCA_NAND_INT_EN 0x04 + +enum { + BCMBCA_CTLRDY =3D BIT(4), +}; + +static bool bcmbca_nand_intc_ack(struct brcmnand_soc *soc) +{ + struct bcmbca_nand_soc *priv =3D + container_of(soc, struct bcmbca_nand_soc, soc); + void __iomem *mmio =3D priv->base + BCMBCA_NAND_INT_STATUS; + u32 val =3D brcmnand_readl(mmio); + + if (val & BCMBCA_CTLRDY) { + brcmnand_writel(val & ~BCMBCA_CTLRDY, mmio); + return true; + } + + return false; +} + +static void bcmbca_nand_intc_set(struct brcmnand_soc *soc, bool en) +{ + struct bcmbca_nand_soc *priv =3D + container_of(soc, struct bcmbca_nand_soc, soc); + void __iomem *mmio =3D priv->base + BCMBCA_NAND_INT_EN; + u32 val =3D brcmnand_readl(mmio); + + if (en) + val |=3D BCMBCA_CTLRDY; + else + val &=3D ~BCMBCA_CTLRDY; + + brcmnand_writel(val, mmio); +} + +static int bcmbca_nand_probe(struct platform_device *pdev) +{ + struct device *dev =3D &pdev->dev; + struct bcmbca_nand_soc *priv; + struct brcmnand_soc *soc; + + priv =3D devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + soc =3D &priv->soc; + + priv->base =3D devm_platform_ioremap_resource_byname(pdev, "nand-int-base= "); + if (IS_ERR(priv->base)) + return PTR_ERR(priv->base); + + soc->ctlrdy_ack =3D bcmbca_nand_intc_ack; + soc->ctlrdy_set_enabled =3D bcmbca_nand_intc_set; + + return brcmnand_probe(pdev, soc); +} + +static const struct of_device_id bcmbca_nand_of_match[] =3D { + { .compatible =3D "brcm,nand-bcm63138" }, + {}, +}; +MODULE_DEVICE_TABLE(of, bcmbca_nand_of_match); + +static struct platform_driver bcmbca_nand_driver =3D { + .probe =3D bcmbca_nand_probe, + .remove_new =3D brcmnand_remove, + .driver =3D { + .name =3D "bcmbca_nand", + .pm =3D &brcmnand_pm_ops, + .of_match_table =3D bcmbca_nand_of_match, + } +}; +module_platform_driver(bcmbca_nand_driver); + +MODULE_LICENSE("GPL v2"); +MODULE_AUTHOR("Brian Norris"); +MODULE_DESCRIPTION("NAND driver for BCMBCA"); --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pj1-f44.google.com (mail-pj1-f44.google.com [209.85.216.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BB8F72EB14 for ; Thu, 18 Jan 2024 19:54:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607673; cv=none; b=uybsjewXye1/spvKBO46vQ9gi0pm9+TJg5zRLAEJHJAZETafT1t9RAGfBb5Y5IBM71Y29dKWl3RsX8cZJfXgK5v8kREYlE0aPVnTRdFln3txuL3lJXzsIWUsLKmuGdV3Q5r7Wn02P1ShEl4jn7UnaLN6J1PtQfIgTla0yHRiYPg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607673; c=relaxed/simple; bh=Ial0NZ6lqzsLLpL0+24Gsy08MEKmI/HUmLraPWMmjZE=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MEJdoxSdnZsCgYLBRNBhITBzWGMXxPKeEH5TUUOeAP7DBvjcj0IyRarzV4onhOU9Pe/x+MksE2xGIO6sQNLcNeh9uUYy4i1irRiZdAtpMmkOtcyZ35Ak5+aJQG7o1YrfWrcagx9VABenpMOQ159M8uYs2SMI6fj+NNZri7M4JTU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=ITPIYx+D; arc=none smtp.client-ip=209.85.216.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="ITPIYx+D" Received: by mail-pj1-f44.google.com with SMTP id 98e67ed59e1d1-2901ac9ba23so61603a91.3 for ; Thu, 18 Jan 2024 11:54:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607671; x=1706212471; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=a9nIEwVNU9nrVzzdc3UDxZ1mL6R1G/Zg0+QNVyqab1M=; b=ITPIYx+Dz1psB39MRQL0UPZOZeWzJAqfLCrbZKL06RSN1Zt72Cezd3FUjUzGvxAegb /eK/Nqd7dHn8FPvYc7S920zzocgChD/j/7gqzT/fQ0jMsVOrYiwBtAjcJwxU2fz0z/nN g286grB9lIAXr9fZyzasB+LGW/IkZCnKTt2vc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607671; x=1706212471; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=a9nIEwVNU9nrVzzdc3UDxZ1mL6R1G/Zg0+QNVyqab1M=; b=H39ka78ydmAOM/qdY9t8w6LA7hU3Ht1NLUnT5MezCrSIiN+j+MJ521EpTAb1t4AbUn 7oZedwCI1G/Of9UTHA+6Kt8CzsxhJpZE+XPbZYuskG8Gf1YWxqpAJlpDTCGEe2sA8zzI 7DCmO6TH1U6E0PIYxKbQm8GwQsUpXwaJf4YkrgLnU8DzfmdQJtuFuIJG8GY3J/UNf9MA 5lacqsUwr3hbMR7ibW6aeKuaNrGT3aSAmTmNIpZef3cNAjTjWVSO3J22LhXxDTaHDi/m nAFCeGe7dExLixtUlzt/WwpBmztv8FF8K6Umiw1xTzbzLKllE22WCZsGYqUnSHdeyIgc WIPw== X-Gm-Message-State: AOJu0YwWyMWtEc/yYtvTk7KJ5d0rtcx2XnYN7Lklrxm98S3GvfxdIxhB Bst5smEeyJUqD1tmtWyLc6OONs1Kp5SxBxQadLUmqU0DcNgAGUjdSRYGwVbt+g== X-Google-Smtp-Source: AGHT+IF1uT0tnXlf2HtFn/G/H7HDpbxtrhjrJDgSlPbjmMYqYcWSwA5NLVB+e4W2YIcoiYdUjoGaIQ== X-Received: by 2002:a17:90a:1f4a:b0:28e:8012:1329 with SMTP id y10-20020a17090a1f4a00b0028e80121329mr1196921pjy.23.1705607671061; Thu, 18 Jan 2024 11:54:31 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.29 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:30 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 05/10] mtd: rawnand: brcmnand: Add BCMBCA read data bus interface Date: Thu, 18 Jan 2024 11:53:51 -0800 Message-Id: <20240118195356.133391-6-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: William Zhang The BCMBCA broadband SoC integrates the NAND controller differently than STB, iProc and other SoCs. It has different endianness for NAND cache data. Add a SoC read data bus shim for BCMBCA to meet the specific SoC need and performance improvement using the optimized memcpy function on NAND cache memory. Signed-off-by: William Zhang Reviewed-by: David Regan --- Changes in v2: - Drop the is_param argument to the read data bus function now that we have the exec_op API to read the parameter page and ONFI data - Remove be32_to_cpu from brcmnand_read_data_bus --- drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c | 27 +++++++++++++++++++++ drivers/mtd/nand/raw/brcmnand/brcmnand.c | 20 ++++++++++++--- drivers/mtd/nand/raw/brcmnand/brcmnand.h | 2 ++ 3 files changed, 46 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c b/drivers/mtd/nand= /raw/brcmnand/bcmbca_nand.c index 3e2f3b79788d..e97e13ae246c 100644 --- a/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c +++ b/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c @@ -26,6 +26,18 @@ enum { BCMBCA_CTLRDY =3D BIT(4), }; =20 +#if defined(CONFIG_ARM64) +#define ALIGN_REQ 8 +#else +#define ALIGN_REQ 4 +#endif + +static inline bool bcmbca_nand_is_buf_aligned(void *flash_cache, void *bu= ffer) +{ + return IS_ALIGNED((uintptr_t)buffer, ALIGN_REQ) && + IS_ALIGNED((uintptr_t)flash_cache, ALIGN_REQ); +} + static bool bcmbca_nand_intc_ack(struct brcmnand_soc *soc) { struct bcmbca_nand_soc *priv =3D @@ -56,6 +68,20 @@ static void bcmbca_nand_intc_set(struct brcmnand_soc *so= c, bool en) brcmnand_writel(val, mmio); } =20 +static void bcmbca_read_data_bus(struct brcmnand_soc *soc, + void __iomem *flash_cache, u32 *buffer, int fc_words) +{ + /* + * memcpy can do unaligned aligned access depending on source + * and dest address, which is incompatible with nand cache. Fallback + * to the memcpy for io version + */ + if (bcmbca_nand_is_buf_aligned((void *)flash_cache, buffer)) + memcpy((void *)buffer, (void *)flash_cache, fc_words * 4); + else + memcpy_fromio((void *)buffer, flash_cache, fc_words * 4); +} + static int bcmbca_nand_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -73,6 +99,7 @@ static int bcmbca_nand_probe(struct platform_device *pdev) =20 soc->ctlrdy_ack =3D bcmbca_nand_intc_ack; soc->ctlrdy_set_enabled =3D bcmbca_nand_intc_set; + soc->read_data_bus =3D bcmbca_read_data_bus; =20 return brcmnand_probe(pdev, soc); } diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index 8faca43ae1ff..73fdf7ce21aa 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -851,6 +851,20 @@ static inline u32 edu_readl(struct brcmnand_controller= *ctrl, return brcmnand_readl(ctrl->edu_base + offs); } =20 +static inline void brcmnand_read_data_bus(struct brcmnand_controller *ctrl, + void __iomem *flash_cache, u32 *buffer, int fc_words) +{ + struct brcmnand_soc *soc =3D ctrl->soc; + int i; + + if (soc->read_data_bus) { + soc->read_data_bus(soc, flash_cache, buffer, fc_words); + } else { + for (i =3D 0; i < fc_words; i++) + buffer[i] =3D brcmnand_read_fc(ctrl, i); + } +} + static void brcmnand_clear_ecc_addr(struct brcmnand_controller *ctrl) { =20 @@ -1975,7 +1989,7 @@ static int brcmnand_read_by_pio(struct mtd_info *mtd,= struct nand_chip *chip, { struct brcmnand_host *host =3D nand_get_controller_data(chip); struct brcmnand_controller *ctrl =3D host->ctrl; - int i, j, ret =3D 0; + int i, ret =3D 0; =20 brcmnand_clear_ecc_addr(ctrl); =20 @@ -1988,8 +2002,8 @@ static int brcmnand_read_by_pio(struct mtd_info *mtd,= struct nand_chip *chip, if (likely(buf)) { brcmnand_soc_data_bus_prepare(ctrl->soc, false); =20 - for (j =3D 0; j < FC_WORDS; j++, buf++) - *buf =3D brcmnand_read_fc(ctrl, j); + brcmnand_read_data_bus(ctrl, ctrl->nand_fc, buf, FC_WORDS); + buf +=3D FC_WORDS; =20 brcmnand_soc_data_bus_unprepare(ctrl->soc, false); } diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.h b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.h index 928114c0be5e..7261a69989fe 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.h +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.h @@ -24,6 +24,8 @@ struct brcmnand_soc { void (*ctlrdy_set_enabled)(struct brcmnand_soc *soc, bool en); void (*prepare_data_bus)(struct brcmnand_soc *soc, bool prepare, bool is_param); + void (*read_data_bus)(struct brcmnand_soc *soc, void __iomem *flash_cache, + u32 *buffer, int fc_words); const struct brcmnand_io_ops *ops; }; =20 --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 463762EB04 for ; Thu, 18 Jan 2024 19:54:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607674; cv=none; b=uwa6CLosEGxzWhX6IiAcDb8Ydn9wIZCFW5XdmOSK6vVLHs1ouJcWmPC2F1RPmZZTxFRgVsUICAMiBUARYSdwf+Dj1mEbhIUQ+N7QgGgNroNgDXZk5SfNJHdoXH1mU162yHKKH1cLEjXyTk1GhzZ3iEqR8lQME+Gk1z+rZYixZqA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607674; c=relaxed/simple; bh=ieZnSP1HPayjVvCaS16c9Q3yOGYvGZsLpA9KG5wtdB0=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=f9tuq6X2zAPECoVJJR2xMESvmOTz/ng+yWQCR+Tw1dmpw7/1vU5Wg0AbFWe9EPSQNVX3NwtBDfzyeSIBSGBV3Pabke0Wgo9qQ9zdt0tvkUq2r7QI1OAGHNInQDpAPUKcU8WEASE4uVGCwYeRZDZ3g9ukTDzg35DaWYgc4JHeFjc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=HyM2oou3; arc=none smtp.client-ip=209.85.215.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="HyM2oou3" Received: by mail-pg1-f177.google.com with SMTP id 41be03b00d2f7-5cd8667c59eso28374a12.2 for ; Thu, 18 Jan 2024 11:54:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607672; x=1706212472; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=mHG/CBC8rn6ZfrmjB7OHI3uZq/Vu0lS8L/ATSVkqU0I=; b=HyM2oou3+umjlQs0MW7BI6A+9MjYXE8iP5kbJP79jLpkUlr0ZUThTUsSrnD4KrmwWj g+UmaS6GMo88Epq9A4OElOegC09g7Jciz5aUQxxUhoV2s/kTlKsZOmfxVrv5nfI7Vutm qvXijIK4qst791KLRzK/JAB8FcszvwhnJ08gk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607672; x=1706212472; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mHG/CBC8rn6ZfrmjB7OHI3uZq/Vu0lS8L/ATSVkqU0I=; b=nLaA6/4tSus3szWySCwE2VG6A+ysvHEaXEB1iY04XXysWwZy3M/thCyOow+tEahVch FdPxYsmZlV80Faf5xIf9G3llPiq3bSKlvYSpbqfB8RBerIIoBeg1vBVoajzGKyJQHhc4 oEVRKq/oZI3jWxpSXn/u1S8vQ1VW4+dym+3CfwZOFxCh88RKkRwoYOxAYI7D/9FGj6rX STttgggAQCrbHQY74kXa+FD3zCSYiFdnrAy7g9/FJvwi14zcKMurS1TYKPypU2kZ5VIe mD/cGSGb14i66t0c1kC9p1z1XkP0XG5I9Y2TIHDQEdThjzGnKauq5QyY9kODF2nLZjBT 3QEg== X-Gm-Message-State: AOJu0Yxc0o6A5Vi1xh+VzbMk1OCysRRLRx6d4rz3DcG4nYSLl0yeiwHZ Jpd8eYzJlxuEz+qLd/4FilrkobWfl+useR6GcQWSq3ZfF6EhcHoaFm/mA45V9w== X-Google-Smtp-Source: AGHT+IGhfcEKMuaixl56xZn2ojB4l1QrXGrP4PaGBMLyQt8DPvX03FhtlIfLh5G35v/NPeIgeG6OAQ== X-Received: by 2002:a17:90a:e557:b0:28e:7e16:6ff6 with SMTP id ei23-20020a17090ae55700b0028e7e166ff6mr1190925pjb.31.1705607672680; Thu, 18 Jan 2024 11:54:32 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.31 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:32 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 06/10] mtd: rawnand: brcmnand: Add support for getting ecc setting from strap Date: Thu, 18 Jan 2024 11:53:52 -0800 Message-Id: <20240118195356.133391-7-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: William Zhang BCMBCA broadband SoC based board design does not specify ecc setting in dts but rather use the SoC NAND strap info to obtain the ecc strength and spare area size setting. Add brcm,nand-ecc-use-strap dts propety for this purpose and update driver to support this option. The generic nand ecc settings still take precedence over this flag. For example, if nand-ecc-strength is set in the dts, the driver ignores the strap setting and falls back to original behavior. This makes sure that the existing BCMBCA board dts still works the old way even the strap flag is set in the BCMBCA chip dtsi. Signed-off-by: William Zhang Reviewed-by: David Regan --- Changes in v2: - Minor cosmetic fixes --- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 83 ++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 7 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index 73fdf7ce21aa..869ea64e9189 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -1038,6 +1038,19 @@ static inline int brcmnand_sector_1k_shift(struct br= cmnand_controller *ctrl) return -1; } =20 +static int brcmnand_get_sector_size_1k(struct brcmnand_host *host) +{ + struct brcmnand_controller *ctrl =3D host->ctrl; + int shift =3D brcmnand_sector_1k_shift(ctrl); + u16 acc_control_offs =3D brcmnand_cs_offset(ctrl, host->cs, + BRCMNAND_CS_ACC_CONTROL); + + if (shift < 0) + return 0; + + return (nand_readreg(ctrl, acc_control_offs) >> shift) & 0x1; +} + static void brcmnand_set_sector_size_1k(struct brcmnand_host *host, int va= l) { struct brcmnand_controller *ctrl =3D host->ctrl; @@ -1055,6 +1068,38 @@ static void brcmnand_set_sector_size_1k(struct brcmn= and_host *host, int val) nand_writereg(ctrl, acc_control_offs, tmp); } =20 +static int brcmnand_get_spare_size(struct brcmnand_host *host) +{ + struct brcmnand_controller *ctrl =3D host->ctrl; + u16 acc_control_offs =3D brcmnand_cs_offset(ctrl, host->cs, + BRCMNAND_CS_ACC_CONTROL); + u32 acc =3D nand_readreg(ctrl, acc_control_offs); + + return (acc & brcmnand_spare_area_mask(ctrl)); +} + +static int brcmnand_get_ecc_strength(struct brcmnand_host *host) +{ + struct brcmnand_controller *ctrl =3D host->ctrl; + u16 acc_control_offs =3D brcmnand_cs_offset(ctrl, host->cs, + BRCMNAND_CS_ACC_CONTROL); + int sector_size_1k =3D brcmnand_get_sector_size_1k(host); + int spare_area_size, ecc_level, ecc_strength; + u32 acc; + + spare_area_size =3D brcmnand_get_spare_size(host); + acc =3D nand_readreg(ctrl, acc_control_offs); + ecc_level =3D (acc & brcmnand_ecc_level_mask(ctrl)) >> ctrl->ecc_level_sh= ift; + if (sector_size_1k) + ecc_strength =3D ecc_level * 2; + else if (spare_area_size =3D=3D 16 && ecc_level =3D=3D 15) + ecc_strength =3D 1; /* hamming */ + else + ecc_strength =3D ecc_level; + + return ecc_strength; +} + /*********************************************************************** * CS_NAND_SELECT ***********************************************************************/ @@ -2622,19 +2667,43 @@ static int brcmnand_setup_dev(struct brcmnand_host = *host) nanddev_get_memorg(&chip->base); struct brcmnand_controller *ctrl =3D host->ctrl; struct brcmnand_cfg *cfg =3D &host->hwcfg; - char msg[128]; + struct device_node *np =3D nand_get_flash_node(chip); u32 offs, tmp, oob_sector; - int ret; + int ret, sector_size_1k =3D 0; + bool use_strap =3D false; + char msg[128]; =20 memset(cfg, 0, sizeof(*cfg)); + use_strap =3D of_property_read_bool(np, "brcm,nand-ecc-use-strap"); =20 - ret =3D of_property_read_u32(nand_get_flash_node(chip), - "brcm,nand-oob-sector-size", + /* + * Set ECC size and strength based on hw configuration from strap + * if device tree does not specify them and use strap property is set + * If ecc strength is set in dts, don't use strap setting. + */ + if (chip->ecc.strength) + use_strap =3D 0; + + if (use_strap) { + chip->ecc.strength =3D brcmnand_get_ecc_strength(host); + sector_size_1k =3D brcmnand_get_sector_size_1k(host); + if (chip->ecc.size =3D=3D 0) { + if (sector_size_1k < 0) + chip->ecc.size =3D 512; + else + chip->ecc.size =3D 512 << sector_size_1k; + } + } + + ret =3D of_property_read_u32(np, "brcm,nand-oob-sector-size", &oob_sector); if (ret) { - /* Use detected size */ - cfg->spare_area_size =3D mtd->oobsize / - (mtd->writesize >> FC_SHIFT); + if (use_strap) + cfg->spare_area_size =3D brcmnand_get_spare_size(host); + else + /* Use detected size */ + cfg->spare_area_size =3D mtd->oobsize / + (mtd->writesize >> FC_SHIFT); } else { cfg->spare_area_size =3D oob_sector; } --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7109328C1 for ; Thu, 18 Jan 2024 19:54:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607676; cv=none; b=OfnaiKzmvCqGdkp7wgVJ8XivFeoBB54+du3cSOB7cw8GqisWjDD6n8ddYuM8IsXCb24wIbgcJtlJQztK7hRnrgstOiA4NTHyoCOe4pZbDG2yLTS5dtzL3fh+UdJWCe8B5wK1YFf5G2sldbTesNE/Fb50vE49UUqVB1GGFX0n06Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607676; c=relaxed/simple; bh=PaTYgclHJjy3rVawJ+5Hzr2JEAWEEUuHVget8mHkU4w=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iZdMtyD89NNYjntKwWUEAQ/SabdyBTEz8yRKJdTboIllrt0sOHje+yzSfDvufrdaGnV5j/BenhrWD1vP3a1UG/DqtVLeCigFuQ/aZLD+zoEko7rokiqhMXTVaCYV5sT/Lfhl57VSBOpfJ2u4POfUsjZbO8pchJoCqRmACPaFhNA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=FymkCagb; arc=none smtp.client-ip=209.85.216.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="FymkCagb" Received: by mail-pj1-f47.google.com with SMTP id 98e67ed59e1d1-28e7b4546e2so889412a91.0 for ; Thu, 18 Jan 2024 11:54:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607674; x=1706212474; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=q+ZNuMLiQVEBIU4qP2AxAyGfcGqRo4EmDBOaCTelFQA=; b=FymkCagbqTK5212RmfJ0TEZKx4oBfERg3cNsCDXCbb6YRnnFmrFjiCJmOoWagQwpZV 5TmAGfATPs5CwCJC59zqYAK7eWo44AcP7mAgbVtzCrzH97nOc4Lb0O9Fplg1MB0cq6eh xmT5s7LJ9q/G6AnpOfBD7YeWOoNJ+FBmXnIpk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607674; x=1706212474; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q+ZNuMLiQVEBIU4qP2AxAyGfcGqRo4EmDBOaCTelFQA=; b=J2e0MjgLuDJmDa9Kvmc0c09OOO6W3fXEyuXDqXfuPF/fho2to738zUf9Owzve5KRpB FjII1HQMTMjPvTo2OLAT9isLBZp6txFrTS9avtGRIgor3alNy1pdCmpTNnjTHKKY0l4Q 64AbAQJWkfCoIwdbkYVdns7GvP9sYJNrFiZOTpVlXWwjbp6JAAbEU3toN9E8M7rrxnDU MNhgCmY5UbRtQvi3cAXnF9vZkRgWWyX8T1J5r48jRxr+/ZFf3vmP820njWIyvtzEbnQ+ zlnXHcCJf2RchJHunQuyT4qNr80/5cUE7TYCooe2Img8s6bY1+cXtXLySAoot1+kpsHe Kdjw== X-Gm-Message-State: AOJu0Yw2bD0LMkNyiAEdJzvrQJQT+7TXkBoZU0OLer8lgxaluPCvHC2W db+3fOKQiiQX18V9QV0IIlWGHLw80GQRFa/5HfzZOl5L5Uv2TZ8lOn909PuPIg== X-Google-Smtp-Source: AGHT+IEJ3qIWczlfChoU8rtUAqv8+jLQdgG90HPXrESS4HZTszddZNh5owLB7/ayia0byi0ZhWT++w== X-Received: by 2002:a17:90a:241:b0:28f:f249:3c4a with SMTP id t1-20020a17090a024100b0028ff2493c4amr3931395pje.19.1705607674171; Thu, 18 Jan 2024 11:54:34 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:33 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 07/10] mtd: rawnand: brcmnand: Support write protection setting from dts Date: Thu, 18 Jan 2024 11:53:53 -0800 Message-Id: <20240118195356.133391-8-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: William Zhang The write protection feature is controlled by the module parameter wp_on with default set to enabled. But not all the board use this feature especially in BCMBCA broadband board. And module parameter is not sufficient as different board can have different option. Add a device tree property and allow this feature to be configured through the board dts on per board basis. Signed-off-by: William Zhang Reviewed-by: Florian Fainelli Reviewed-by: Kamal Dasu Reviewed-by: David Regan --- Changes in v2: None --- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index 869ea64e9189..9a904c7c6dad 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -3081,7 +3081,7 @@ int brcmnand_probe(struct platform_device *pdev, stru= ct brcmnand_soc *soc) struct brcmnand_controller *ctrl; struct brcmnand_host *host; struct resource *res; - int ret; + int ret, wp_dt; =20 if (dn && !of_match_node(brcmnand_of_match, dn)) return -ENODEV; @@ -3218,6 +3218,12 @@ int brcmnand_probe(struct platform_device *pdev, str= uct brcmnand_soc *soc) /* Disable XOR addressing */ brcmnand_rmw_reg(ctrl, BRCMNAND_CS_XOR, 0xff, 0, 0); =20 + /* Not all boards support write protect (WP), check DT property */ + if (of_property_read_u32(dn, "brcm,nand-use-wp", &wp_dt) =3D=3D 0) { + if (wp_dt >=3D 0 && wp_dt <=3D 2) + wp_on =3D wp_dt; + } + if (ctrl->features & BRCMNAND_HAS_WP) { /* Permanently disable write protection */ if (wp_on =3D=3D 2) --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 611E433CFE for ; Thu, 18 Jan 2024 19:54:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607677; cv=none; b=noKAL+tALD7Cn1ucAa2jdpBr+QTKpVqkMRVzdkhCgJxtbCJ1eMDlBJ+sYKFQ/5T0iES6WGywk/lwBnvqC4y8T09sSzHXROF7kpMA7EfzjGfrMkGcITm+BSczWudbrgqf3NfJGssrXmnEVQcnWbEoyu9k7WHUzQt5Lvfqv8isj/g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607677; c=relaxed/simple; bh=2/VBr1dPPbVpD0tbtzj+3gKJddRUtZKiY5Pdq6zeFIA=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sP95EVSQuzT81MMhZ1kNl4eBadqI08hIjoe2ze3e9ZWuf0CsJyTWBkk7CiB+zbhcCKdh0HHBNnEBv8ItdmY1C8NobUbfrZkQzrlJMX/yJIr3af1r6WOSGXivVMcW/NoOZVp0RgZbq6tPM4oduJ+2OXHbTQZId27IuilvXMl1+G4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=SYBN3+/T; arc=none smtp.client-ip=209.85.215.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="SYBN3+/T" Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-5cdfed46372so25405a12.3 for ; Thu, 18 Jan 2024 11:54:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607676; x=1706212476; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=vQ0KMT7YinNWTDLRkt/ik0/tsSQLLOEO8iME5kKq+rI=; b=SYBN3+/TRpQ3mivZx12UGSEDqF0GWCifE5iEg/orRF8BOqLsWl5SWVbhz5dfeEy8vy X9Mv/gUMCWvbI8VsfL+OgynLHQNL8Qgmq8sHf1Mx+XsamjjXik46tzwFFDmAfpLWVp5q XYPq8lTqfoHqnDpEQOrKTqtOznl0Jbt91ME94= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607676; x=1706212476; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vQ0KMT7YinNWTDLRkt/ik0/tsSQLLOEO8iME5kKq+rI=; b=EPXXqITP/F8E3OzfJkpudKRE86srDJokpaf/gOpzaFzTFdV5HZUC5E+WED1GZhGiXg TnBIXrSg/OwyM+ooK/rCppprVfhoPato24asipGQCHU4Ov9QSoWMCRS3PrxYH7uL5jUE UB/r7dVUFdgYuiUsar0RB2WUbAUNYCWSqzG+LE7zgCwKWXbpUM+rlxh59vaI3nrq35gP p94J1WYdO6Eo6eNuxLKdPffiy/gLmtHLGDKlJsLtRFpWQ7Z5HKXvpHlJFUlPhHPcsHCq It8b0AIKPlrK7CjvCQ9rMXTVXBjqI5valp2UiWAlzJkzMkbQz6qI5xpQtPHTwDyAoxuw /g4A== X-Gm-Message-State: AOJu0Yy8UwaRdWY9xsc+1yJw8446BXeCDClqLIue6w9/TNlfpBHLgPkW 84RF+5C10YL0B1z04tUSDyV3db25CKKr8Gmw4ZTzy5da8fO0+sh+aim/kYwT3g== X-Google-Smtp-Source: AGHT+IGJ5PSS/zL5LeT8Z2TjlL7IRE7vXLwG16dkY25ybhY9hLXWwD/0TI/ZkCDk1mnTsOWnNsSZLw== X-Received: by 2002:a17:90a:740f:b0:290:4168:e0f3 with SMTP id a15-20020a17090a740f00b002904168e0f3mr415735pjg.99.1705607675755; Thu, 18 Jan 2024 11:54:35 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.34 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:35 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 08/10] mtd: rawnand: brcmnand: exec_op helper functions return type fixes Date: Thu, 18 Jan 2024 11:53:54 -0800 Message-Id: <20240118195356.133391-9-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Regan fix return type for exec_op reset and status detect helper functions Reported-by: Dan Carpenter Closes: http://lists.infradead.org/pipermail/linux-mtd/2023-December/102423= .html Fixes: 3cc4718fa644 ("mtd: rawnand: brcmnand: exec_op implementation") Signed-off-by: David Regan Reviewed-by: William Zhang --- Changes in v2: - Added to patch series --- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index 9a904c7c6dad..6b5d76eff0ec 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -625,7 +625,7 @@ enum { /* Only for v7.2 */ #define ACC_CONTROL_ECC_EXT_SHIFT 13 =20 -static u8 brcmnand_status(struct brcmnand_host *host); +static int brcmnand_status(struct brcmnand_host *host); =20 static inline bool brcmnand_non_mmio_ops(struct brcmnand_controller *ctrl) { @@ -1749,7 +1749,7 @@ static int brcmnand_waitfunc(struct nand_chip *chip) INTFC_FLASH_STATUS; } =20 -static u8 brcmnand_status(struct brcmnand_host *host) +static int brcmnand_status(struct brcmnand_host *host) { struct nand_chip *chip =3D &host->chip; struct mtd_info *mtd =3D nand_to_mtd(chip); @@ -1760,7 +1760,7 @@ static u8 brcmnand_status(struct brcmnand_host *host) return brcmnand_waitfunc(chip); } =20 -static u8 brcmnand_reset(struct brcmnand_host *host) +static int brcmnand_reset(struct brcmnand_host *host) { struct nand_chip *chip =3D &host->chip; =20 @@ -2492,11 +2492,14 @@ static int brcmnand_exec_op(struct nand_chip *chip, =20 if (brcmnand_op_is_status(op)) { status =3D op->instrs[1].ctx.data.buf.in; - *status =3D brcmnand_status(host); + ret =3D brcmnand_status(host); + if (ret < 0) + return ret; + + *status =3D ret & 0xFF; =20 return 0; - } - else if (brcmnand_op_is_reset(op)) { + } else if (brcmnand_op_is_reset(op)) { ret =3D brcmnand_reset(host); if (ret < 0) return ret; --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2BD9834CDC for ; Thu, 18 Jan 2024 19:54:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607679; cv=none; b=lEnM8lrKEpTjQS5A3UE0kXBqMRJhC3qRQLcmmRpbxDnAn8GBHZkL3rbihXgCzF2lhufkqHG+b8vrBj+NQKdv3vyxrQvB0EFmyAvBNtGTlTfR3MIRgzxYBdL6YUxOECkPzYHzFNPVIvJkc5oqkxHCswkkjzU77DZH7RT42ewKd5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607679; c=relaxed/simple; bh=AuzrW9UDgSxJQcq2g8YNuAO77J6D3Xb2mioA2H4DLNI=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=btM1k/g17RRTxBhzHPTusMQgGpwNWUHbd1JzHH0MFf4GQ2kD6dppCcqv7ixpOWC8NvdxJHRqnKyG3Mw+R1UDMJbysHPYrc9C64EPoAZxpTwce28eZ/t07FXVcLygF2OFIkXwoIdVW/LPy0z0g+FhzC8rXNzssqYVgLlvzTfrfFk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=XXlnjfzV; arc=none smtp.client-ip=209.85.216.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="XXlnjfzV" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-2902b142211so67602a91.3 for ; Thu, 18 Jan 2024 11:54:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607677; x=1706212477; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=CghvPoNxLJl4lLRdVw4tb22f1/3nanFbn4ZhOjlHkeo=; b=XXlnjfzVUOPCjCMtoeJJS74BJ8AufVJCX9XLdtAXsUXONzVc+34TWSlPU9d75tl5tY udc7j/IgIG5QbdWRiaTw1rgFxGOxu1oE65I9bApEPKqEmQXWr7w+SXvYn3dTsjDitwQo 7rQqGDwS380cZ48Nkm8S5TyUMALlMyepSTEFk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607677; x=1706212477; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CghvPoNxLJl4lLRdVw4tb22f1/3nanFbn4ZhOjlHkeo=; b=rpFiJy8s1OovAdRq+I9UL6sz5K9sg6ng1ytvafJz3v6oXqkYh6fqfA+bmt6UaSvzRj uGhOJx4CQueRBjU7+d4Im5XvfiWgTBi1bJUxphsS6mTk5wsvySWbJWk/dR+NqBCgAMDi xd9NeK/QuWsQ1sHcK/Xybpbwpdek6VfYdspzllIiMzP9Zbz+kr1aPp5XHMe1BzBc4Svg S8vgodv26YNqarOkiTaMcNc+uW7IEgqVQPXXotnH+vJ7onTvgVuy1f+VMTm6shG94TfL U8EUjx/h/N29euCXid4sQ2QaDAZTYBX5WKDkboyBOpn6kMADHrSQfpmb3keZ9T4F2cOM ME/g== X-Gm-Message-State: AOJu0YxpF3ta2CGvJ2ztQolFC0SAdSNGn2XpTorZMO6DxpUpkeggADpS trktSKiOJvF6beiaIF0oiSjXmuWhFhEv8Hlraelh0n8KMHTlmJGvWY5QYHOOKg== X-Google-Smtp-Source: AGHT+IGpduvvbCU9h++TkrPZzn6xG8chMBt4/0ohm/34e0CnY9xnW4nf7DjMx4QEdaOxW+UnTH2Dog== X-Received: by 2002:a17:90a:1347:b0:290:3e62:92ab with SMTP id y7-20020a17090a134700b002903e6292abmr571455pjf.29.1705607677448; Thu, 18 Jan 2024 11:54:37 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.35 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:37 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 09/10] mtd: rawnand: brcmnand: update log level messages Date: Thu, 18 Jan 2024 11:53:55 -0800 Message-Id: <20240118195356.133391-10-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Regan Update log level messages so that more critical messages can be seen. Signed-off-by: David Regan Reviewed-by: William Zhang --- Changes in v2: - Added to patch series --- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index 6b5d76eff0ec..a4e311b6798c 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -1143,7 +1143,7 @@ static int bcmnand_ctrl_poll_status(struct brcmnand_h= ost *host, if ((val & mask) =3D=3D expected_val) return 0; =20 - dev_warn(ctrl->dev, "timeout on status poll (expected %x got %x)\n", + dev_err(ctrl->dev, "timeout on status poll (expected %x got %x)\n", expected_val, val & mask); =20 return -ETIMEDOUT; @@ -2196,7 +2196,7 @@ static int brcmnand_read(struct mtd_info *mtd, struct= nand_chip *chip, return err; } =20 - dev_dbg(ctrl->dev, "uncorrectable error at 0x%llx\n", + dev_err(ctrl->dev, "uncorrectable error at 0x%llx\n", (unsigned long long)err_addr); mtd->ecc_stats.failed++; /* NAND layer expects zero on ECC errors */ @@ -2211,7 +2211,7 @@ static int brcmnand_read(struct mtd_info *mtd, struct= nand_chip *chip, err =3D brcmnand_read_by_pio(mtd, chip, addr, trans, buf, oob, &err_addr); =20 - dev_dbg(ctrl->dev, "corrected error at 0x%llx\n", + dev_info(ctrl->dev, "corrected error at 0x%llx\n", (unsigned long long)err_addr); mtd->ecc_stats.corrected +=3D corrected; /* Always exceed the software-imposed threshold */ --=20 2.37.3 From nobody Sun Feb 8 11:04:40 2026 Received: from mail-pj1-f46.google.com (mail-pj1-f46.google.com [209.85.216.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE7A93529D for ; Thu, 18 Jan 2024 19:54:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607681; cv=none; b=XD+Gg5wut0Xl20BJQ1vpNXRk8bjimmBTXiTJiXmt85NhWoiaOxrgIP0z2KObDnFx/h7dBrBZVmrHkLmYAtwKk9005GeMZzVhEuCQUYtvvDFbdyU62/MdCfXvIcfinuO2nbT8iCz6zbckp5CZHEUX5LxEZt0rQ1uPaLjmcEheFis= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1705607681; c=relaxed/simple; bh=yzhmvpw6dHvm8R+C7LqpWP3Wj6s8xNkqYMpLWlwi0RI=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hbGk3ugf1OD/BcqN3gL57ysOJ/cYaV3bblShkTc/BjKSxU5get+sqj9T6YrE2wzMkXo/sPOvN7Jg8rMiLhtSutGJiHOFxNzJ/6YUiKJGwyld/XsCEaJBmAbYT5kA3oxRLGYZl5ITKfk502Ioko+4BenfxnqJZhU8a0jjBLOnGLo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=QyRz1pTl; arc=none smtp.client-ip=209.85.216.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="QyRz1pTl" Received: by mail-pj1-f46.google.com with SMTP id 98e67ed59e1d1-28e8c930c01so71767a91.0 for ; Thu, 18 Jan 2024 11:54:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1705607679; x=1706212479; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=BeH1TIJtMu9dNiviTF/nkxwiev6sYu4cBkxn5iUmNwA=; b=QyRz1pTldYDbOcvMJiyHe6bWKOyFN/rDBI4ARFsSVxKEXK4a+DoVJ5uXDgrjjbOfBF hQwT3XhVITF6cupxzisIzBl9wdwvAaGBBE8WJR8ZbeEfETwCSZIwE3M2+flKWy1X3Pq0 oEE4Udk2ju502pLLXQFeLKNSAkmiXE5wdSBtI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705607679; x=1706212479; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BeH1TIJtMu9dNiviTF/nkxwiev6sYu4cBkxn5iUmNwA=; b=XvZhtHg5Ii09+sGaCGF4Hy+kiRLOXB4LkKfh7DIUbwhJS/L3K41pUS3UFgHTQbxnbc PttmC8zd+xDSFYWdOrKtuTmiXpyB4Iv0//BeWv4K6wLijG/lZC5q+o3dUWgwyaKxwx2G eHB6Xsxfp0W3nREYMdYLyh2YTGvr3uUNavi6DXR6FRyMEeaXdoQnBIAaDJzTDXmBVQyS SPjr/dNpDBovbXVlaQQc9iK2wLDPbSZKvOR5Ahtmq3Fnn5fMsRgsQlKaoEgiDGH0rb+N pm8+XszSokXTJWinq46agt9+l3pR9rXI6EHGOJsVNrNB7jHUJArwXvCZSBk+V7tqhAEJ yRkw== X-Gm-Message-State: AOJu0YzUmSDyDHnc9U3sRugtFd40wPZAfZdLPxWtoYzmXCTGSW5SHz6w jW8WyHU1ryS09MWrPpX1PUSxO9xtfGhNqMTlbPw8s4pLT44RYHEqwD0ThPRepw== X-Google-Smtp-Source: AGHT+IHACuKl4Ub94+Xnxo/jnjCOYBw1yW1Eo6Y2FDr3CuoZ6RFhJZAwMW6S4Z0cAarZk55E4E+D7g== X-Received: by 2002:a17:90b:2349:b0:290:1d33:cc66 with SMTP id ms9-20020a17090b234900b002901d33cc66mr1276623pjb.91.1705607679035; Thu, 18 Jan 2024 11:54:39 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp.gmail.com with ESMTPSA id rr12-20020a17090b2b4c00b0028d9b5d41edsm2263805pjb.38.2024.01.18.11.54.37 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 18 Jan 2024 11:54:38 -0800 (PST) From: dregan@broadcom.com To: dregan@broadcom.com, dregan@mail.com, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, computersforpeace@gmail.com, kdasu.kdev@gmail.com, linux-mtd@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, joel.peshkin@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, william.zhang@broadcom.com, anand.gore@broadcom.com, kursad.oney@broadcom.com, florian.fainelli@broadcom.com, rafal@milecki.pl, bcm-kernel-feedback-list@broadcom.com, andre.przywara@arm.com, baruch@tkos.co.il, linux-arm-kernel@lists.infradead.org, dan.carpenter@linaro.org Subject: [PATCH v2 10/10] mtd: rawnand: brcmnand: allow for on-die ecc Date: Thu, 18 Jan 2024 11:53:56 -0800 Message-Id: <20240118195356.133391-11-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240118195356.133391-1-dregan@broadcom.com> References: <20240118195356.133391-1-dregan@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: David Regan Allow settings for on-die ecc such that if on-die ECC is selected don't error out but require ECC strap setting of zero Signed-off-by: David Regan Reviewed-by: William Zhang --- Changes in v2: - Added to patch series --- drivers/mtd/nand/raw/brcmnand/brcmnand.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mtd/nand/ra= w/brcmnand/brcmnand.c index a4e311b6798c..42526f3250c9 100644 --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c @@ -2727,9 +2727,11 @@ static int brcmnand_setup_dev(struct brcmnand_host *= host) cfg->blk_adr_bytes =3D get_blk_adr_bytes(mtd->size, mtd->writesize); =20 if (chip->ecc.engine_type !=3D NAND_ECC_ENGINE_TYPE_ON_HOST) { - dev_err(ctrl->dev, "only HW ECC supported; selected: %d\n", - chip->ecc.engine_type); - return -EINVAL; + if (chip->ecc.strength) { + dev_err(ctrl->dev, "ERROR!!! HW ECC must be set to zero for non-hardwar= e ECC; selected: %d\n", + chip->ecc.strength); + return -EINVAL; + } } =20 if (chip->ecc.algo =3D=3D NAND_ECC_ALGO_UNKNOWN) { @@ -2797,7 +2799,11 @@ static int brcmnand_setup_dev(struct brcmnand_host *= host) if (ret) return ret; =20 - brcmnand_set_ecc_enabled(host, 1); + if (chip->ecc.engine_type =3D=3D NAND_ECC_ENGINE_TYPE_ON_DIE) { + dev_dbg(ctrl->dev, "Disable HW ECC for on-die ECC\n"); + brcmnand_set_ecc_enabled(host, 0); + } else + brcmnand_set_ecc_enabled(host, 1); =20 brcmnand_print_cfg(host, msg, cfg); dev_info(ctrl->dev, "detected %s\n", msg); --=20 2.37.3