From nobody Wed Dec 24 20:09:32 2025 Received: from mail-ot1-f98.google.com (mail-ot1-f98.google.com [209.85.210.98]) (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 E89223C3B for ; Wed, 24 Jan 2024 03:05:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.98 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065535; cv=none; b=pT26urMUq0mqqjOxQbffz1UClsUJzrlVZn1A2cSsFWagpJb6eTDRQcmrw/lLyfeQOJW+2XB+QKq54b2J2ZgL33QV2o0sgNZ54PpelSToS8/fuauuuaJ9xTGCYj7fIXrJn9V8l/JDBPIZBJ50o9M2neDFa+GMAxZENxFvhf7tJsI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065535; c=relaxed/simple; bh=nvrEOWH9z/+z7lJvtyev/8yIQOX98EvFRNg3Zd+SrHQ=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SmHVNdz0FLW0YuinuCW1EticQR9MBthvPrH/WGj7Ak4UJVbd1VTcNNgS/UAFquwNwoV+Pyrr+/LHC+CLBEY2e5v+JfOO+3GaucWTQGfGkiwazfqgARHjAffxMxwzGLfNgYQlf0KvabJY/1ZSTmIvWTfkBdPI9soiy7OKvqiXozc= 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=Ka0pFV66; arc=none smtp.client-ip=209.85.210.98 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="Ka0pFV66" Received: by mail-ot1-f98.google.com with SMTP id 46e09a7af769-6ddf1e88e51so3787728a34.0 for ; Tue, 23 Jan 2024 19:05:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065532; x=1706670332; 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=RfC42mFMxWbt42N2Y8Snh0FkDOtoFt5c5JS3NwC/Elo=; b=Ka0pFV6679h2oN4khzX+fzYkR0AKjyg1Pl9I219cyRhQqnMt3SLw1GKY3WFlbov3MK rfD2qVjNb5Aa56dBNw7/23m2DkbOa/8WTfYEBQx8cdiJbjUFurBQ8oZ9gmVa0URz4mA1 yYTvNEsXA9MUbN+RhqjNGmiNk4J6M81GmXX1A= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065532; x=1706670332; 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=RfC42mFMxWbt42N2Y8Snh0FkDOtoFt5c5JS3NwC/Elo=; b=v0tIZ+PKmBvMXAQvRWvcISsZEWtq9fe+vfXnuVWGCmuoJ0gmxCE3PCCbFwTfbwScLr FgyO3YScOdDzOVrMv0DZkdEtPGuE6FkjkXBcXgOVLQIHBkyzpnxkDjl9Nvc55S4jCwvM 8VRtG/6YLTawXdRrv4VavXwdXPQVm21fpAQNOL6xEPE9xeUbDI3J7CG6+7wo2F+PXky9 07JiJh73DbHgFVfmrDP9IbR8rMb5fdCPwJJ7BBM09THl1h9A4vIN1/vN0P59pfBvX/ZG 1bSouoTvwRNLMXZwl517kTwnxZpRxCrdANnXumDz1e35RV3qrkDkuUse1LMQmveuT0sF CG+A== X-Gm-Message-State: AOJu0YyYvg5/Byg4kXQMe6j2Ll2UGS84pgk3YTIDioSBdECzWw9Df4xF rGtue4LdCl9u9a/slnKUUKyMMWF8c5mqO0Rb7rrj/UJmSDJ43F7Hx6NVRGRQ9Hew2S0M3yKYEf0 woZJlPc1tSSQeHwsCFs47LEMnishHGQ== X-Google-Smtp-Source: AGHT+IGkswDyG3Gtz3GqJE+TRieLfMO18ZMJzmD7ROmdRdjJ3ufDF3WoK1jWXcVp3qq/MXq4+F0KEGsc3xvR X-Received: by 2002:a9d:5e09:0:b0:6e0:f7bc:24f8 with SMTP id d9-20020a9d5e09000000b006e0f7bc24f8mr847296oti.60.1706065532044; Tue, 23 Jan 2024 19:05:32 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.30 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:32 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 01/10] dt-bindings: mtd: brcmnand: Updates for bcmbca SoCs Date: Tue, 23 Jan 2024 19:04:49 -0800 Message-Id: <20240124030458.98408-2-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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 v3: - Update brcm,nand-use-wp description - Revert the description change to BCM63168 SoC-specific NAND controller --- 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 | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml b/Doc= umentation/devicetree/bindings/mtd/brcm,brcmnand.yaml index f57e96374e67..752c6ee98a7d 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: @@ -111,6 +113,20 @@ 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. By default the driver + uses a module parameter with default value set to enable to + control this feature for all boards. Use this dts property to + override the default behavior and enable/disable this feature + through board dts on a per board basis. + 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 +153,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 +203,8 @@ allOf: - const: iproc-idm - const: iproc-ext - if: + required: + - interrupts properties: interrupts: minItems: 2 @@ -189,7 +217,6 @@ unevaluatedProperties: false required: - reg - reg-names - - interrupts =20 examples: - | --=20 2.37.3 From nobody Wed Dec 24 20:09:32 2025 Received: from mail-ot1-f99.google.com (mail-ot1-f99.google.com [209.85.210.99]) (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 9B6AE566E for ; Wed, 24 Jan 2024 03:05:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065537; cv=none; b=se1J3546pSm+k5ZOi3fssouYNKEJkVnuX1MptSuY56Y//9JUD28Ae/FvtrOvJlmUNLQ/wUWH/V4HZsS9zAIrvGnFUfu38a1xOrOmanAXvjaTP8eLciPKobCl21FzYyqQofvznCnJkfNf2NS9ivM/rJBatgyN2uyFCR1kT8pRWLc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065537; c=relaxed/simple; bh=LouMiwwrPXt5Uhi4y6QsIegyH40WdfN7qrjk9//sGOA=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HWheVQjg2TDUcaFpDmSk5ps+zZfGpJCbvi6ViWFevuWKKbLy3PE0461z72SifF1R57Sh1uGVMyOmrmNem24d/RUzmyhmXYQZ1I74G2NuXM6RvqJZBKG9iWo0sT8VdV3+obyqG/IsfB1UWTn4uIKyhJT9BXaq+KrjuaB5pT5YTT4= 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=XOCdth9+; arc=none smtp.client-ip=209.85.210.99 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="XOCdth9+" Received: by mail-ot1-f99.google.com with SMTP id 46e09a7af769-6ddf05b1922so3779252a34.2 for ; Tue, 23 Jan 2024 19:05:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065533; x=1706670333; 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=ThJa0h4fa0Qqrzqap7bg7YPhFAxFKY8FrPLl0QLp5r8=; b=XOCdth9+enG/zGrm4DZOVWg6wY3//BmJSCbfFMxid1R6OEGWmMdrTCYJH0f1eHg5E3 TzjfeEdqB3uIDKRELzk1DnCPeWyZ7FZvz0T0Tzc0+fSvDJAx8F3oBlLYN3TbVUHid9El TnDDBWYIn4NS1YPXuLGIozkP0Uqi5w9Pv87zY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065533; x=1706670333; 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=ThJa0h4fa0Qqrzqap7bg7YPhFAxFKY8FrPLl0QLp5r8=; b=YlwlI7VDiBEgg6Cre12xFYp6wCZ9NuL078EURvftg8AedntQFKrmpGXc8D4Ibfvm9p Qpy9nr33LLUZZCWJBU+/KAAlwWLCvUJ2yKkhMkjNFaWC99eu4bPiZJa2zVjeNM765xZF NIaPhUb3v5wzin1mT+qsBMY8ctfJkTaRNPMNJbriYn5BbaBr8lV2WA22JK0eg728ToAD XVbzjYJ2mmio9Vb6S901qk0/SJxB/nt2x92kNr246Xcsjqu9EfEhHNohQSAf3MUGwNts y5Q/kD8hvTjDY7lXrUijxlJOr5ghqQFGAVMzIglIxAwe1ntMF/WPeiBlFlENoa28eNVF wtsA== X-Gm-Message-State: AOJu0YyZmG9bGCUEggYbHP9Qe/a0cg3LDIrzoEbHTsZR87sVP5Wx7P+3 Kk8fP6t+H3JqbNjLM1IVbjZ1tPyZGCzRKthkqI9xZZ+OIVIWdUFolVHAmDJqQB3R4YP0yg0Uh7N Dj+EocqqX9XdUUFnHrp3HujUlJmHaaQ== X-Google-Smtp-Source: AGHT+IGOJv4VmqhHKQ58MHbgQguDFk6gSt5vnWVA8ozPFeH+q78JxaJWfzyfQTlamkcygUhRcCMKi2l84hxm X-Received: by 2002:a05:6830:168e:b0:6dd:e17e:f714 with SMTP id k14-20020a056830168e00b006dde17ef714mr1099039otr.27.1706065533728; Tue, 23 Jan 2024 19:05:33 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:33 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 02/10] ARM: dts: broadcom: bcmbca: Add NAND controller node Date: Tue, 23 Jan 2024 19:04:50 -0800 Message-Id: <20240124030458.98408-3-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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 v3: None --- 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 Wed Dec 24 20:09:32 2025 Received: from mail-ot1-f99.google.com (mail-ot1-f99.google.com [209.85.210.99]) (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 59DADBA24 for ; Wed, 24 Jan 2024 03:05:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065539; cv=none; b=eKIOcXCtrvaJTK4sSZC8hA9KNiXuZAIvMSiF9IQbWAVHZVQ0HPB2Lvfoqyz3DqGhnsBiOXEwHaG5WtQyqJhgfM1AyXvIodZGTvATOLtWzKME1sbNjPQiU1Q8zWJ5cxYHNltxzcBRjYEF3pfbsTM42UVKFMs13XHiZ0MXrP68BtQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065539; c=relaxed/simple; bh=/M5B/BiWF0FZlF7E2anBHHPqiWaqdDQtOcSnRreQsV0=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=HTVjV1qKH5h5l5rwcG2yulIb5cEPI77KjXA8yvEsuZooFos9oUQByb09S/pikbj8WpGC2UbaSBxpC0+j6BtXduKIfrdC+b0Xg9gxQ755kaM4HqiOQKjlMCQtGuuprq7Y23F+V5PNSOCgLvI69La8Acl+fdj57xkpAefARjC8lZc= 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=KcT4P2zn; arc=none smtp.client-ip=209.85.210.99 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="KcT4P2zn" Received: by mail-ot1-f99.google.com with SMTP id 46e09a7af769-6e0f43074edso1137977a34.1 for ; Tue, 23 Jan 2024 19:05:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065535; x=1706670335; 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=ybV7pvMIAsaJOdsmH07LWJMa7Qdpq5l3yYOSDAPUHlc=; b=KcT4P2znW5HZ3yE2jlCILjNs1JgIdZoleM/s3IkGLMKudL9j7N/RXCvFTNPc+5A8YJ wC+mP3DJYt1kMjhTOrGVaHnJc9VoDXu0PV5JHsht6aOttrCxZjJM5Q/todZJEbEgD4aZ ibD6cwbO9QOgEcWVajquuLr3wAJBSMHz9xwF8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065535; x=1706670335; 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=ybV7pvMIAsaJOdsmH07LWJMa7Qdpq5l3yYOSDAPUHlc=; b=jkBMubWHUk5y8p55S6QJDK87ncilrvEp1jJGcY8pZXMMDb24wliNjyn0b5AoBTv0/h Pe9B4FnH2699MPaKCpmQVH6sjm4dp+Lg/4VRV/f3Xtx1cdU7UcvUNVktDIJQf4EJV/ED S8Q4RpPlfMnnAyRwEhieYhKz1KbNAk+6jQycLFlD5YAihkewizwMUdxh4VWCVg8ASxYq lHI9F8i/spG4GZ7R7GIv/2OZF2cK4RqLasLFjNa1pZSHOHRn6jK24bOyS9iyrqoi3jje V8rVWl0c8Aji2RM7xDYqSzIozVOP9OSD9NDfYhOD0YSljFQ1pWQgm5CmjyYV+xLGI3Yo r2CQ== X-Gm-Message-State: AOJu0YyeT7BieUkh40RyqI6B0IgsXbOuYn+P7yOduTUBpPtmu8LFZBOH I193PoJ6CT4YuZzBhlUxQjfuwt/+h/VtC3i4I/DT87JMfUptqlDjqcp5zzGE1Kcy4bFtbk/YNd6 KadK3/6oKRbk/+ztcF9Tc+Yxrt9QqPg== X-Google-Smtp-Source: AGHT+IGoQ8RVNrUCpvS1OvRHL8cARfhBaG1eIuL+ifmehV1J8yNFNd1XXc87USwGwubKJuakmBu7/2+8yAAi X-Received: by 2002:a9d:75c9:0:b0:6dd:e134:935c with SMTP id c9-20020a9d75c9000000b006dde134935cmr957278otl.28.1706065535405; Tue, 23 Jan 2024 19:05:35 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.33 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:35 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 03/10] arm64: dts: broadcom: bcmbca: Add NAND controller node Date: Tue, 23 Jan 2024 19:04:51 -0800 Message-Id: <20240124030458.98408-4-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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 v3: None --- 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 Wed Dec 24 20:09:32 2025 Received: from mail-oa1-f97.google.com (mail-oa1-f97.google.com [209.85.160.97]) (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 1CF73C2D9 for ; Wed, 24 Jan 2024 03:05:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.97 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065540; cv=none; b=cUX0zK6i2But7UzMiRMhT8xQcm84CHk6oaPEBGGnt/936Wu+dRil4uzv5JGDyN3A6H+wg87yL0ihwMhOdcR5s/0PpltVwLiLMWVuU6v9jM2fkcp28DURo99EHWgG4GJyxeH3sQ25u94RITrzkEEUXD0WhVUTAAQaDlo4Ka58wHc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065540; c=relaxed/simple; bh=LgK9YFvSVaOhWSi9pLclCKLFO6H21lb2bPG3XI4TJgE=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version:Content-Type; b=G5rmM66qhhT2elN28EVdI9tooWJW6FYX1Lhwf8roPPmLxYqs5b+fWuGVxpNOwc34XeXP3uk8VlzYJPvTS/w1ZmQxh89y1Qp5miWx67VMODzFbLIqVofn6BA95Q3f/ktQdFXKi6o3MArJ3YLozEmH9QgNijV169RjXMi8rrLO59o= 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=YbIH7/aO; arc=none smtp.client-ip=209.85.160.97 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="YbIH7/aO" Received: by mail-oa1-f97.google.com with SMTP id 586e51a60fabf-20503dc09adso3085550fac.2 for ; Tue, 23 Jan 2024 19:05:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065537; x=1706670337; 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=+mLcQeF9FuXOK8WBCCfjegF2sdhYHzfwLhFZBOTQRFw=; b=YbIH7/aOvPYYNsgF73hr/KRy+hux8xaXQrPsROuS7RA75JfgvYXEC7ABdy8Dt2uqO4 ja7k/pvCRajGLWXwcaiALCeee7LPBWJYb12Vzpxy5lDhlTysnYf5NUuTsLm++U/Cy96W x1nhXh60PL5FxmBspLuC/vUCTBLH5lYovzXrI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065537; x=1706670337; 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=+mLcQeF9FuXOK8WBCCfjegF2sdhYHzfwLhFZBOTQRFw=; b=weSngaKrtPHLPij7MET9T4zNTi6AGFWU6YgH2YKiS4kp2BJ82j2zQ60TG5TSkyfZs+ j1zznRLUyMSdiBZA9AvZaJqdE8ausLfz2jeV07q+K2MOyFAH9ggDVRz2sI6VjAFuuPQd 8WAT7WDdbn/ynlYZXyNEwal3F2US/jKIUEBc5sRTlt4B1hXmC0ahP5hG/R7Yh9qDppxF FMqU+J7/TzD4X3X8RlT5tcU8bUqi26CAobAF1mwvqKH3/Urn9syyr0FzqhqtOx/+lk5B rVPwOHFjBcPIlgNMYxq9GEsQpqcZVDIB0tYS8HNFucyoyNmmugZ8ABXPoa4RNS01J5ff JVCw== X-Gm-Message-State: AOJu0Yww6J4lmN2rrOPc/V7u5cPqlTcXmOt4xe/3U6ogEXRXbAUb6221 BpkSsE2PQ1DYDflu1t2qa9vngrZqlXOLZ7fUoIuj6kJCR3LmBGh5yol77bRKi5btgWbLQBEsGdF hG4Nzb7R8/wAKTXeMceRQs1Rr0TwoCQ== X-Google-Smtp-Source: AGHT+IEwti28KOgk5JZbqc8N7eflg26tiqxChRZ/UxnePrOnDyhH3lpOm9OG92/C6A9/jTILjSY5MuspsC4u X-Received: by 2002:a05:6871:4319:b0:206:862e:1b86 with SMTP id lu25-20020a056871431900b00206862e1b86mr3131367oab.31.1706065537115; Tue, 23 Jan 2024 19:05:37 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.35 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:37 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 04/10] mtd: rawnand: brcmnand: Rename bcm63138 nand driver Date: Tue, 23 Jan 2024 19:04:52 -0800 Message-Id: <20240124030458.98408-5-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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 v3: None --- 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 Wed Dec 24 20:09:32 2025 Received: from mail-ot1-f99.google.com (mail-ot1-f99.google.com [209.85.210.99]) (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 97F35DF4C for ; Wed, 24 Jan 2024 03:05:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065541; cv=none; b=JKSyyWlsZtqM5yw38lAqQpnUFlGYlkyfJjwWE6E6bWZ2MozWi3Usd3urqMoFC4Rfu++kvUl1n7aGOZdOTwaxiSmSP5j3p2jOzI17iSVAO149H4w8iYe+jJX9YQIEer4Puvo4UoCnpMh9W76Nw9vnTFsDYvA2bE8uE4YYLlyl+5M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065541; c=relaxed/simple; bh=KbPF/xPqazPFkDjQKd9eZBFY0txuBpXYRvWB0T5xYFs=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CcKqVvBfQQ3YBmsnZNOb6UJJyDH73CIMny3wCuRvvEvhzpkW5+9uRPCc55amuOpKBJnWogJK1yYGquLo83cT4M8abVqof1geigsqVaQly5QBKqfqfFx5qThsfYmXL5hwXCzuRrONtYZSK5Pj4cCdtMHwlX5ypS+B/h21xUqlrUY= 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=LZta96gY; arc=none smtp.client-ip=209.85.210.99 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="LZta96gY" Received: by mail-ot1-f99.google.com with SMTP id 46e09a7af769-6dde1f23060so3183675a34.2 for ; Tue, 23 Jan 2024 19:05:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065539; x=1706670339; 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=PwegdSybI33Nmb+F9DKKGVukdHc03A/AUPX3yW5tWW0=; b=LZta96gYH/juOdI4NKKrxhnKUtFUP6vA5EZasHjGZO1KDjHqmSufsy4umy1yLOmhIz ixWEYw/xkwwiR7JLgmWEwBYfjc6NVCJNcXMPWBir6sUjhgkf/Ga00Ixa47Qttv92XSkO H5fkXGpdB6aVnknywx8Dm6XYagroDmw4sj2sQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065539; x=1706670339; 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=PwegdSybI33Nmb+F9DKKGVukdHc03A/AUPX3yW5tWW0=; b=ZgGoksyC3YwElHqKe5I759WM4bVQ9q/V/B8wFQWQ0U4IeDdVvebwGWQLEE5lGw6DjW lLvufj6wZR25raziK4Gk4TIR+rpYzTsanqiWdCC961Ro/mSBHZ+Gohw1uSpFVKrFi6fa Gu0LH9GSjx9hpVQBOw8EwRrS/J4duFZ2Tfxb9ThesmEx2wgPZLMCCoS4DB7/qmvZ+9A+ mhGP+EzcFFyinzgRSthGZ6aQh7KyJiSaE+i2Q0V/3IxW+FClioyKs9qonxKka34r5aym 4AGHwFdQ++m57VFy1K+NWolwaVighFaq1tfTI0/RbVUpNsujEhkMIXh/fzI96zpDRQLA cD4A== X-Gm-Message-State: AOJu0Yx2iBH1gXwz4IDJUCclGpG6Ewc9ZAmrgdOPxYcqY0YLByvgn9a5 fhZ61n+gtTBCQJ0KTo5x7vT8fObwGGOzmJlQHHVtChuP4DER+kMWuTxEDSLj0Zrl85vaYVNfPBA AZUw9JgX3o7K6k2TgulKMxmw934GcjA== X-Google-Smtp-Source: AGHT+IFVKxA8y/gg9xufz6NOdEljs2B3vozRSVt/ENRpavZMC/Sj/xdFXZbx377gJMdUwpQqG0oqZkroTdnV X-Received: by 2002:a05:6830:22f8:b0:6db:ffb0:7a4d with SMTP id t24-20020a05683022f800b006dbffb07a4dmr958490otc.45.1706065538813; Tue, 23 Jan 2024 19:05:38 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.37 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:38 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 05/10] mtd: rawnand: brcmnand: Add BCMBCA read data bus interface Date: Tue, 23 Jan 2024 19:04:53 -0800 Message-Id: <20240124030458.98408-6-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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 v3: - Updated bcmbca_read_data_bus comment --- 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..7ad3e7a98f97 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_fromio in such case + */ + 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 Wed Dec 24 20:09:32 2025 Received: from mail-oi1-f225.google.com (mail-oi1-f225.google.com [209.85.167.225]) (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 5B99AF4FD for ; Wed, 24 Jan 2024 03:05:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.225 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065542; cv=none; b=py+iElduq1zk/G3U6MvLVKLK4tnRSnejU6Y0nqIbd5Qt0CkHW+XxCAuG/D35L3Ip+VSRLZvceOga8wQSQlblylR6QMLE7e62nV2rM6NKZbzt9fghOff6wT4pus6v4BTIQcOmcf7Ehkq7uxgpVJx1KEsOszKTSWSf1uQ9MyOeZeA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065542; c=relaxed/simple; bh=hzbG4OoPjAXRYBBpDTMlTNqRfUzJM+dhcP+1ZDzniQM=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=X4rIjWG9/7s8k9ev9/7BXAGCLqPncSUgewCRy3mYY5WPwY56N1JLM452WbPPAhUBNc/1VVvfcRWCWHulvannUkK6IjX4OZyEvYU6FkrZMBT9mVx/HC3YJ3OrvM1xfUocOukrH6aaMpi/IfIHe4LEOP/Z5fdek+1A0I1XAK60mck= 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=EPvVJ+KN; arc=none smtp.client-ip=209.85.167.225 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="EPvVJ+KN" Received: by mail-oi1-f225.google.com with SMTP id 5614622812f47-3bd5c4cffefso4953900b6e.1 for ; Tue, 23 Jan 2024 19:05:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065540; x=1706670340; 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=ynywjXfyuUDyBEky1TbYS2FW4j63gm4kdZM9CH++EkQ=; b=EPvVJ+KN4j1iLZiICIl7aaRHoGsoQB1LZU/f05uvVQKhJvAwdpH/8azrRz6Lfl8HdN DDoGlSEUzbtLDkNYA+xgK8qIADSLhzm01kb1IPGJ1AMVgJNh8AaioSZWqMsjOHaGucba hZp3eJlcvQ4K0c6P/B1SYVQhkE5g4lJj9SJ7o= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065540; x=1706670340; 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=ynywjXfyuUDyBEky1TbYS2FW4j63gm4kdZM9CH++EkQ=; b=vOOcEk3FqOftdL842Ojz58xBjQkjTsxRCRz7PF/6MvU165FnigD66+wlzu0BwxRsWl QF4jWYImxiP+lJjiXEUPWQtIkh2cdmTc0kIlC76RNW6x8/w7Tb+O09N3LBaZ5nY0pOyg mcWD+aDkpf2FrwH+OP/PLa2r6Wj0g0GzdjnOWwqk7mxRQfzD8FRJTwcq0R9nioGfd72T EPFKiQ+ai+rKeU2svE8l9ZnktBZTdIDhjd1UlUeyOJx9IMVBIafrftH2lI0jEvYhpU3K AUFQDmr/WFwsj9kEq84QXq0D7w27l6KBz540ZE+cxPY58ag53xKP9Xb+cq0l7TsKQQVA hiFQ== X-Gm-Message-State: AOJu0YyN22uiRWLhZIs5KLgKeIjZUlRTX3qvmqEL6IEGH2JOz2+3BcGa 3PBU+t41nJW5LtcjrKel4USn6c0JDDiWGDY4p2yHhB2SImitqP38K1mt3nvlsk7nvQDOifcrsbI 1HwrbR6eje5RcSawU6Srs4x6cGgC19A== X-Google-Smtp-Source: AGHT+IFK/2w2iG1AZMvtjj1jtWThPpJ7sawSzLyPn2mzN4taB1JWwBEzC/CVEwcbMMV+JpYCODWXvertPG7F X-Received: by 2002:a05:6871:3319:b0:213:84f3:b21a with SMTP id nf25-20020a056871331900b0021384f3b21amr2242246oac.61.1706065540433; Tue, 23 Jan 2024 19:05:40 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.38 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:40 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 06/10] mtd: rawnand: brcmnand: Add support for getting ecc setting from strap Date: Tue, 23 Jan 2024 19:04:54 -0800 Message-Id: <20240124030458.98408-7-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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 v3: None --- 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 Wed Dec 24 20:09:32 2025 Received: from mail-ot1-f99.google.com (mail-ot1-f99.google.com [209.85.210.99]) (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 F22F8F9F8 for ; Wed, 24 Jan 2024 03:05:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065545; cv=none; b=YnNfhdfJCpW2F1VZ130val7yvNRxx3wVnNtjSgj6IcnZTat/nVVv+Cc96GcjfIHlTwLfOthf8MAnnGvHJOCxcjZ+4TZVggqUuFP2tW8NaWRE4P/u9UsmHFjAL2TACPgzy/DbxSKsCgKdVNBoFHATuKyeT1fMtDm4++mtN5WIkKE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065545; c=relaxed/simple; bh=TX91Mzuk9qZQGswZAthzVUugJ/C9pE18baUJzbQpYeE=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=SoUVvjMBqu0Ms444QWOnK2djQZvyOmSeNziuO7N1pitQOO15k28M/Ztgl5MD53i1lXY6OCxnGzMPgCS2Jgdb2ZZP1KfKllC9iXXwMc8NklcgE7juM7d05pcrhj6Nlewm2bNTdybIYYLPyixpuL+rV9HOwM1XW2+8sz1ACHuWFKQ= 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=hSlbnvx1; arc=none smtp.client-ip=209.85.210.99 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="hSlbnvx1" Received: by mail-ot1-f99.google.com with SMTP id 46e09a7af769-6ddef319fabso3310515a34.1 for ; Tue, 23 Jan 2024 19:05:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065542; x=1706670342; 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=T27qW4zzYD2KNCPRIh3CSpIvD6wIUQ7nz6JSAMgdquY=; b=hSlbnvx12nooniGky0BTeb9H5ZMb3LO+akCE9VWHNsZnotYvJKJKscRg4JDcu69P3e qRoB6vcHOorckaLUx8wMvDl0HqVyfiL+9zz+O6vQ5/LdVn0AJxzO7YJFlOfJWmJB6gd3 ogxVlep1bPNgrdgPHNOolZSVXT2ZfywCqsQtU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065542; x=1706670342; 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=T27qW4zzYD2KNCPRIh3CSpIvD6wIUQ7nz6JSAMgdquY=; b=seeNq0rz1SRON6Ecj04O9AX80/uRO0kpxgSb1BRR+0dGwjnN4FIwBLZquDMmGZ1CWA rTZfAjHKnFbCNJmGp25jphEE+tcqo65q2U6adbHJm+WkpH7M7rOfKQCD3+UjWt+0fVhx 2FL+MuONfkhxnvePT1UoWD60zeM/MmwnAcfuVeqgZCO26iie3JOs6XSYt38qwQ4dFKCA SRedGyKJm3BgiUtQGhbMFzlVQLM1wzZT2IVRkYc6jH/KaEkZCxKcdIu8+0IbraS8UTze C1XNqdOD33dnx0TiBWa/2nV+McWx+WbkU5yXJN4kUA6iISBeti2ZBmLVdSJtgZ2fxRng L7GA== X-Gm-Message-State: AOJu0YwOdxPRNPOA7ec4z0qBAbGYe9etzUryfcgZcoNUDdIhGVh+WseJ Oy+0vvI2s0jSpzgCYT5TAUxl+83mrSqbbJMzLiqeMDGZN7HBc/gMJEUJhCwARgFGaFc7YEFDB56 tyzpFYp1EYyaMBC3y+uVyaaVkHusHow== X-Google-Smtp-Source: AGHT+IGIA6CSGHXai6wCUvWT+JTuolGf8dL4LUaj4MqP2aGMcA51O74ZV5BcrivqiVpljg8gEORZQAU1vCtL X-Received: by 2002:a9d:6ad5:0:b0:6dd:ef0b:4f62 with SMTP id m21-20020a9d6ad5000000b006ddef0b4f62mr879830otq.77.1706065542092; Tue, 23 Jan 2024 19:05:42 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:42 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 07/10] mtd: rawnand: brcmnand: Support write protection setting from dts Date: Tue, 23 Jan 2024 19:04:55 -0800 Message-Id: <20240124030458.98408-8-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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 v3: None --- 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 Wed Dec 24 20:09:32 2025 Received: from mail-ot1-f97.google.com (mail-ot1-f97.google.com [209.85.210.97]) (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 81A7116423 for ; Wed, 24 Jan 2024 03:05:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.97 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065546; cv=none; b=p8IUCVkDqiTCx7HU1XqcedCcqgvcYzw46LMPZj6dSYJt3UZ7AAtotifmOYAt4uCfyP1lVLS/jECM0AivzILHSH3a9/9o7efMzsI+/aA0f83cF41qcNJeRHVncCzYHy3pMrT9OeaVqK/Oq8SK0xuVDG0XBDgDx7Kzhupu4CJAVfc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065546; c=relaxed/simple; bh=b96KHiREw74fMJzr8TANv0oixW52LFoZ3Qwcx7HFK/s=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kuTrbtjpVa0wW+qsySMs20DKEMTrwlSj5t62GIdU7W7TOk14hcdbNMku67IDZFa0EKrNO8BeepU16r/G7dhEcqG/YFZER6ajlZQvmzcwyzy45lxiOSF2BL110WJ3VigjCwtE7SDzCHbM9h/Ka3tICnFMefYvT3/EGp7BHfqKeqU= 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=BdM+I+jF; arc=none smtp.client-ip=209.85.210.97 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="BdM+I+jF" Received: by mail-ot1-f97.google.com with SMTP id 46e09a7af769-6dde1f23060so3183716a34.2 for ; Tue, 23 Jan 2024 19:05:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065543; x=1706670343; 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=A1sI7nRj6Sb3+vzY3tBFzwAr+P5ADn9TFjJ984wNlHs=; b=BdM+I+jFJEq8+8qel0EoYBm2QVm0uXFjBy3PlLuZVVNF7wiCps9yRG0xEPmjpLUXJT y4f8VMnbmt+8Yz1+5feSKUjcZHxbTJlcMX2ZMZmGwM5UL5qwgLnLRi2JU0+5AUGqTWmx mCSIr6Q6Sc2eJNJRoa7i1QLI2U2PhME81N7r8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065543; x=1706670343; 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=A1sI7nRj6Sb3+vzY3tBFzwAr+P5ADn9TFjJ984wNlHs=; b=PuKgz/ZxKPrsT3KyIPVCTtkZPdg6UwGp2esolRKW4rVOzvL8VwtU/bunMBGNyW/Ea7 zDn/l9T42fFI4O420py4dKBFEYKJDCz1YThny6wQUGegi9g59NvBtnxlyITFYroUPI48 QHtpn4UmWldy0e/fFB6tXjbn29VYuYPR4uixbV9LR5puoOoLAEhnxooN7z1SHpoLa4xo 4zc46wrfKR6YArhAXLkWtdSlxnwvS0mXZjqjAyNZs71rELzrMjWs0HCEfwvQp175480X nujH/XUEC3U/2j8pcll3gbqZ9MQ/v1BF8Qcm4CfthhobY0sFxM/AzA5qD6TbnHHr4Ow2 9J+A== X-Gm-Message-State: AOJu0YyjAQmZAo5bhQFtu6uibsPzTTh4x1BCCHI1R7oOWyFmChg5tsxe 4j5PrHiEuu4EX40LrzjA/GpkhrjNSwUMw+7eC5UnWOmZlfiveTVsHT658E7IiOEZ/fyuGg42q+2 FR+F8yNJI/Rti/3Kvnb5qj1UuQ9FgqA== X-Google-Smtp-Source: AGHT+IE6/QlqXprWei1rIePUFWUKuwHJE0/o+ALcxQ84BQGJO6Em+rTO6MQXs78sdkGu/UVrkZ0YG02crven X-Received: by 2002:a05:6830:94:b0:6dd:e9ee:2568 with SMTP id a20-20020a056830009400b006dde9ee2568mr811597oto.22.1706065543726; Tue, 23 Jan 2024 19:05:43 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:43 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 08/10] mtd: rawnand: brcmnand: exec_op helper functions return type fixes Date: Tue, 23 Jan 2024 19:04:56 -0800 Message-Id: <20240124030458.98408-9-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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" 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 v3: None --- 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 Wed Dec 24 20:09:32 2025 Received: from mail-ot1-f99.google.com (mail-ot1-f99.google.com [209.85.210.99]) (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 78788171A6 for ; Wed, 24 Jan 2024 03:05:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065549; cv=none; b=B9st78oEfFq/TKqQvOqYzP3gSjvfIZWzYGmkNF6wYYAWqlO6iS5v9zCkcIXOIFuFO+C7PCoCMJeKpLIQbFQwrClkvzBCeCIcUpJ588ONcWkjSu5/OshZYV0FX7FjBEBL4FXS0PoLGmZJ3yVXEXZR83wJH+SBl2mA5WmasyX+1J4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065549; c=relaxed/simple; bh=gORbgX4teZi7rbooLeEPlNv6bc+nAkHkNdOAFysH/I4=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ZcGKO1KglBdqBdX4sbKTGpC/HClYskQV5R4vl2II0YN79Cv4fJtLbZ+gBnzBjtNJLH3/zgX/5sI9Ua/z5vNfmD0BJwo+rh0V84G8aqpMMG4kFYexLEDskeyLumvQIQ+zyvTywLYZ4WE/lSWdb6zFyD/fkJeq5aVc7l0S8iaqoag= 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=bw16DmCk; arc=none smtp.client-ip=209.85.210.99 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="bw16DmCk" Received: by mail-ot1-f99.google.com with SMTP id 46e09a7af769-6e0f43074edso1138021a34.1 for ; Tue, 23 Jan 2024 19:05:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065545; x=1706670345; 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=RFcgSd1V+HgKBuaL7L8NE1SRwQaKowsXm4oxPTjKU9s=; b=bw16DmCk0t3GcEnlUjWJl2I+qncVVKpqqhY+QFzgZTekbrTPGcEc59vzp8O9vXdcF2 eFwAFQje0EpTUZ2K60iVeLOI+4+l1iMZuCYN2D0iS3ojSM7ugtt8AR/5+mwcJ7LlhaLK dgwXagY3Mi7vpoBhM6D/Wg/+u8hIL1NyZDLFs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065545; x=1706670345; 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=RFcgSd1V+HgKBuaL7L8NE1SRwQaKowsXm4oxPTjKU9s=; b=QAoAckQ7P4wU9aoATCCR8rSPzishrW9TyctqVCu1zmmyMqC+uw8KBpIoDDboZpXCbq Lc79cY9npCtK8qSr77VJwDkJ4jI/HRrX5h4rK9hKpCzVyHREUJR0gudYlR9ht1qo2+y+ q97Qz7YPFfFt519e1Npcl0+r1x1hqSy+B2kSPf8VIWNpSDspV6aJf4lfVFjzMb5JpVA4 zn4qu8GlVmf5dgiIKmvYePNRjaYUkYV9vrmylzyqzsfCo2rlyHj4R8YFs6BAH2A0tUlK P6zFTV535E/S053fD3YFgzQE5AZKv1H6+91qpjHHnltgNmgeIDyu/Otrfy9UxoAOVQPK FcqQ== X-Gm-Message-State: AOJu0YyVo4Rgh/Ju7COI63djoHKZzn4VuFUhKcaPlItl96jUS0wszJZt QzHDQ02y2Wme7tNb3fxpJxyjqTg8fqjQFeSzYWWmZSBsYod65rdzFshxBW41WItTyaIAo1iZnOB 6+mgq/tRbiW3C27/Sx6IDe5lXPQeFqw== X-Google-Smtp-Source: AGHT+IFUczeGsTMucdCz87Q+XuPWNyli22xHQyTTbN3tL8x5ItmmZiArLg9wfVebnUPSv4u1XyEUy/6CxWC9 X-Received: by 2002:a05:6830:144a:b0:6dd:ee32:2843 with SMTP id w10-20020a056830144a00b006ddee322843mr937842otp.42.1706065545326; Tue, 23 Jan 2024 19:05:45 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.43 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:45 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 09/10] mtd: rawnand: brcmnand: update log level messages Date: Tue, 23 Jan 2024 19:04:57 -0800 Message-Id: <20240124030458.98408-10-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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" Update log level messages so that more critical messages can be seen. Signed-off-by: David Regan Reviewed-by: William Zhang --- Changes in v3: None --- 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 Wed Dec 24 20:09:32 2025 Received: from mail-oa1-f99.google.com (mail-oa1-f99.google.com [209.85.160.99]) (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 334B217547 for ; Wed, 24 Jan 2024 03:05:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.99 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065551; cv=none; b=k9aMl0WhkTDv10X1Pb1SOf7EsXYtBsNvUyym7u4lWE1exC4bEEOWhWsj4FqnUwVEw2p1RdL6Um1jnehhzZLlpbwmgr00CITlG0m+ce9eh6XMojwL76oMWCJEIn9vZbIeVQBGcVPNPLJBldxK6Bl+MNglivAMKXjLNjWNqBfMjOA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706065551; c=relaxed/simple; bh=OSS8fz0R/URNmGIQV9ECEcXaS+l2j4CeGiDfsdomdEk=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=BLF2MfS+qpnvTOmF0AI0MPh0Vt/nqk0XyTYWpKPLRGfbcZvZ1mGWOadO+H5PogHq7CCBRF9QpqwjVX0696T0O8AwaYuRjHqbqiGu9H9oVWRXB0reJCtpAgk7YEAWen65pG5yy4e4Kjwz3BP8Fu6nhS735bAvvivdMhGnelmKV/0= 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=NNNMf8+z; arc=none smtp.client-ip=209.85.160.99 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="NNNMf8+z" Received: by mail-oa1-f99.google.com with SMTP id 586e51a60fabf-210e5a5fa70so2428455fac.0 for ; Tue, 23 Jan 2024 19:05:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1706065547; x=1706670347; 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=EWrjbDqCG/a53iknaUN5XiQX6sRbzWT8kV4u/Nqcod0=; b=NNNMf8+zkru3b2zWt0l9SPmsl0egRVmhcd6r5T9l8ZnNpEcnvCjvJGo6Kh46qVPNwI taiGy1aZU2FbfKuLE7V6UoUks5IO9AZB7NJqxG77jxQmcefprUgToYFMCzjpFNM964dF rhhuCjhGiiG5xaFl1XZkwVIjp/qJioqS88sq4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706065547; x=1706670347; 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=EWrjbDqCG/a53iknaUN5XiQX6sRbzWT8kV4u/Nqcod0=; b=AR73bUrhLBuLSndCJXt6jHzSwefEnBSji+1m+/V4zNX0nVDhHjHNYFvdB4EPHKJzuo vUlptwKdRTL7HB3Sism9FpfyqibpVsVhNpxh81HlTs9yc5nURt2OajdTF0gAEvwL8yun lR3hruaW7LIioDq1xs4iZqimp549+ZH0CFTckOBk3kXEG1txPErLrRu8wD6lZuUE4917 ah1YT4xBSH7/05VISxcmW2mU2WmZ7LLJ+h73qozG/J/gK0BgjIwWTEqvM0EUMaYtL/qf pNwiIAA4cm7VCPdgTwhmKxAWxHM8A7zoSXAmSrEh0WoQNjhNPGDoB8CQqj41rpuHOTuM pFPQ== X-Gm-Message-State: AOJu0YyKDCUn7Fbzz/EiySJLXNEI2Lwqqp3Qmx0OSZaYWXLNoggC3CJO CmSPWhn5rtmuBHZOqOGB3agVGt0S57XV5uNDvmGjcrLI02LykJjQvy35Rdez22N15KXR4K+EDdo bbrO6sBDwHfxoAhut/661ODZLrGVIJA== X-Google-Smtp-Source: AGHT+IE2vHfCyYBih52W5M0f3AGmJiw1Z9U9eEUslAe6KVnFMwBp5+AcLPHZaEhOIqYfPDx3p0JRjIIhi8Zi X-Received: by 2002:a05:6871:2887:b0:210:9047:1e47 with SMTP id bq7-20020a056871288700b0021090471e47mr2612080oac.60.1706065547131; Tue, 23 Jan 2024 19:05:47 -0800 (PST) Received: from bcacpedev-irv-3.lvn.broadcom.net ([192.19.161.250]) by smtp-relay.gmail.com with ESMTPS id c22-20020a056830349600b006dc7502beabsm455320otu.3.2024.01.23.19.05.45 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 23 Jan 2024 19:05:47 -0800 (PST) X-Relaying-Domain: broadcom.com From: David Regan 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 v3 10/10] mtd: rawnand: brcmnand: allow for on-die ecc Date: Tue, 23 Jan 2024 19:04:58 -0800 Message-Id: <20240124030458.98408-11-dregan@broadcom.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20240124030458.98408-1-dregan@broadcom.com> References: <20240124030458.98408-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" 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 v3: None --- 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