aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2024-03-15 12:29:57 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2024-03-15 12:29:57 -0700
commit8eb838e35ade9a0bade376e5ae8cd88051257dd1 (patch)
treee2d327e58c5b90d96cf19d41f124efb2d3f71cac
parent7497080a0edae8e715f3d386e09864f5bab22080 (diff)
parent7311bc58c1583df71305fc5ad905131e5a9526fe (diff)
downloaddevicetree-rebasing-8eb838e35ade9a0bade376e5ae8cd88051257dd1.tar.gz
Merge tag 'mtd/for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
Pull MTD updates from Miquel Raynal: "MTD: - The Carillo Ranch driver has been removed - Top level mtd bindings have received a couple of improvements (references, selects) - The ssfdc driver received few minor adjustments - The usual load of misc/small improvements and fixes Raw NAND: - The main series brought is an update of the Broadcom support to support all BCMBCA SoCs and their specificity (ECC, write protection, configuration straps), plus a few misc fixes and changes in the main driver. Device tree updates are also part of this PR, initially because of a misunderstanding on my side. - The STM32_FMC2 controller driver is also upgraded to properly support MP1 and MP25 SoCs. - A new compatible is added for an Atmel flavor. - Among all these feature changes, there is as well a load of continuous read related fixes, avoiding more corner conditions and clarifying the logic. Finally a few miscellaneous fixes are made to the core, the lpx32xx_mlc, fsl_lbc, Meson and Atmel controller driver, as well as final one in the Hynix vendor driver. SPI-NAND: - The ESMT support has been extended to match 5 bytes ID to avoid collisions. Winbond support on its side receives support for W25N04KV chips. SPI NOR: - SPI NOR gets the non uniform erase code cleaned. We stopped using bitmasks for erase types and flags, and instead introduced dedicated members. We then passed the SPI NOR erase map to MTD. Users can now determine the erase regions and make informed decisions on partitions size. - An optional interrupt property is now described in the bindings" * tag 'mtd/for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (50 commits) mtd: rawnand: Ensure continuous reads are well disabled mtd: rawnand: Constrain even more when continuous reads are enabled mtd: rawnand: brcmnand: Add support for getting ecc setting from strap mtd: rawnand: brcmnand: fix sparse warnings mtd: nand: raw: atmel: Fix comment in timings preparation mtd: rawnand: Ensure all continuous terms are always in sync mtd: rawnand: Add a helper for calculating a page index mtd: rawnand: Fix and simplify again the continuous read derivations mtd: rawnand: hynix: remove @nand_technology kernel-doc description dt-bindings: atmel-nand: add microchip,sam9x7-pmecc mtd: rawnand: brcmnand: Support write protection setting from dts mtd: rawnand: brcmnand: Add BCMBCA read data bus interface mtd: rawnand: brcmnand: Rename bcm63138 nand driver arm64: dts: broadcom: bcmbca: Update router boards arm64: dts: broadcom: bcmbca: Add NAND controller node ARM: dts: broadcom: bcmbca: Add NAND controller node mtd: spi-nor: core: correct type of i mtd: spi-nor: core: set mtd->eraseregions for non-uniform erase map mtd: spi-nor: core: get rid of SNOR_OVERLAID_REGION flag mtd: spi-nor: core: get rid of SNOR_LAST_REGION flag ... [ upstream commit: 3c5d127fb5aa96e89875fcc92182bc1eacfef3af ]
-rw-r--r--Bindings/mtd/atmel-nand.txt1
-rw-r--r--Bindings/mtd/brcm,brcmnand.yaml44
-rw-r--r--Bindings/mtd/davinci-nand.txt2
-rw-r--r--Bindings/mtd/flctl-nand.txt2
-rw-r--r--Bindings/mtd/fsl-upm-nand.txt2
-rw-r--r--Bindings/mtd/gpio-control-nand.txt2
-rw-r--r--Bindings/mtd/gpmi-nand.yaml2
-rw-r--r--Bindings/mtd/hisi504-nand.txt2
-rw-r--r--Bindings/mtd/jedec,spi-nor.yaml3
-rw-r--r--Bindings/mtd/mtd.yaml2
-rw-r--r--Bindings/mtd/nvidia-tegra20-nand.txt2
-rw-r--r--Bindings/mtd/orion-nand.txt2
-rw-r--r--Bindings/mtd/samsung-s3c2410.txt2
-rw-r--r--Bindings/mtd/st,stm32-fmc2-nand.yaml25
-rw-r--r--src/arm/broadcom/bcm47622.dtsi14
-rw-r--r--src/arm/broadcom/bcm63138.dtsi7
-rw-r--r--src/arm/broadcom/bcm63148.dtsi14
-rw-r--r--src/arm/broadcom/bcm63178.dtsi14
-rw-r--r--src/arm/broadcom/bcm6756.dtsi14
-rw-r--r--src/arm/broadcom/bcm6846.dtsi14
-rw-r--r--src/arm/broadcom/bcm6855.dtsi14
-rw-r--r--src/arm/broadcom/bcm6878.dtsi14
-rw-r--r--src/arm/broadcom/bcm947622.dts10
-rw-r--r--src/arm/broadcom/bcm963138.dts10
-rw-r--r--src/arm/broadcom/bcm963138dvt.dts14
-rw-r--r--src/arm/broadcom/bcm963148.dts10
-rw-r--r--src/arm/broadcom/bcm963178.dts10
-rw-r--r--src/arm/broadcom/bcm96756.dts10
-rw-r--r--src/arm/broadcom/bcm96846.dts10
-rw-r--r--src/arm/broadcom/bcm96855.dts10
-rw-r--r--src/arm/broadcom/bcm96878.dts10
-rw-r--r--src/arm64/broadcom/bcmbca/bcm4906-netgear-r8000p.dts5
-rw-r--r--src/arm64/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts5
-rw-r--r--src/arm64/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts6
-rw-r--r--src/arm64/broadcom/bcmbca/bcm4908.dtsi4
-rw-r--r--src/arm64/broadcom/bcmbca/bcm4912.dtsi14
-rw-r--r--src/arm64/broadcom/bcmbca/bcm63146.dtsi14
-rw-r--r--src/arm64/broadcom/bcmbca/bcm63158.dtsi14
-rw-r--r--src/arm64/broadcom/bcmbca/bcm6813.dtsi14
-rw-r--r--src/arm64/broadcom/bcmbca/bcm6856.dtsi14
-rw-r--r--src/arm64/broadcom/bcmbca/bcm6858.dtsi14
-rw-r--r--src/arm64/broadcom/bcmbca/bcm94908.dts10
-rw-r--r--src/arm64/broadcom/bcmbca/bcm94912.dts10
-rw-r--r--src/arm64/broadcom/bcmbca/bcm963146.dts10
-rw-r--r--src/arm64/broadcom/bcmbca/bcm963158.dts10
-rw-r--r--src/arm64/broadcom/bcmbca/bcm96813.dts10
-rw-r--r--src/arm64/broadcom/bcmbca/bcm96856.dts10
-rw-r--r--src/arm64/broadcom/bcmbca/bcm96858.dts10
48 files changed, 440 insertions, 26 deletions
diff --git a/Bindings/mtd/atmel-nand.txt b/Bindings/mtd/atmel-nand.txt
index 50645828ac20aa..4598930851d94d 100644
--- a/Bindings/mtd/atmel-nand.txt
+++ b/Bindings/mtd/atmel-nand.txt
@@ -56,6 +56,7 @@ Required properties:
"atmel,sama5d4-pmecc"
"atmel,sama5d2-pmecc"
"microchip,sam9x60-pmecc"
+ "microchip,sam9x7-pmecc", "atmel,at91sam9g45-pmecc"
- reg: should contain 2 register ranges. The first one is pointing to the PMECC
block, and the second one to the PMECC_ERRLOC block.
diff --git a/Bindings/mtd/brcm,brcmnand.yaml b/Bindings/mtd/brcm,brcmnand.yaml
index f57e96374e6718..064e840aeaa115 100644
--- a/Bindings/mtd/brcm,brcmnand.yaml
+++ b/Bindings/mtd/brcm,brcmnand.yaml
@@ -9,6 +9,7 @@ title: Broadcom STB NAND Controller
maintainers:
- Brian Norris <computersforpeace@gmail.com>
- Kamal Dasu <kdasu.kdev@gmail.com>
+ - William Zhang <william.zhang@broadcom.com>
description: |
The Broadcom Set-Top Box NAND controller supports low-level access to raw NAND
@@ -18,9 +19,10 @@ description: |
supports basic PROGRAM and READ functions, among other features.
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 register
- compatible) versions.
+ available on a variety of Broadcom SoCs, including some BCM3xxx, MIPS based
+ Broadband SoC (BCM63xx), ARM based Broadband SoC (BCMBCA) and iProc/Cygnus.
+ Its history includes several similar (but not fully register compatible)
+ versions.
-- Additional SoC-specific NAND controller properties --
@@ -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,13 @@ properties:
earlier versions of this core that include WP
type: boolean
+ brcm,wp-not-connected:
+ description:
+ Use this property when WP pin is not physically wired to the NAND chip.
+ Write protection feature cannot be used. By default, controller assumes
+ the pin is connected and feature is used.
+ $ref: /schemas/types.yaml#/definitions/flag
+
patternProperties:
"^nand@[a-f0-9]$":
type: object
@@ -137,6 +146,15 @@ patternProperties:
layout.
$ref: /schemas/types.yaml#/definitions/uint32
+ brcm,nand-ecc-use-strap:
+ description:
+ This property requires the host system to get the ECC related
+ settings from the SoC NAND boot strap configuration instead of
+ the generic NAND ECC settings. This is a common hardware design
+ on BCMBCA based boards. This strap ECC option and generic NAND
+ ECC option can not be specified at the same time.
+ $ref: /schemas/types.yaml#/definitions/flag
+
unevaluatedProperties: false
allOf:
@@ -177,6 +195,8 @@ allOf:
- const: iproc-idm
- const: iproc-ext
- if:
+ required:
+ - interrupts
properties:
interrupts:
minItems: 2
@@ -184,12 +204,26 @@ allOf:
required:
- interrupt-names
+ - if:
+ patternProperties:
+ "^nand@[a-f0-9]$":
+ required:
+ - brcm,nand-ecc-use-strap
+ then:
+ patternProperties:
+ "^nand@[a-f0-9]$":
+ properties:
+ nand-ecc-strength: false
+ nand-ecc-step-size: false
+ nand-ecc-maximize: false
+ nand-ecc-algo: false
+ brcm,nand-oob-sector-size: false
+
unevaluatedProperties: false
required:
- reg
- reg-names
- - interrupts
examples:
- |
diff --git a/Bindings/mtd/davinci-nand.txt b/Bindings/mtd/davinci-nand.txt
index edebeae1f5b31e..eb8e2ff4dbd290 100644
--- a/Bindings/mtd/davinci-nand.txt
+++ b/Bindings/mtd/davinci-nand.txt
@@ -68,7 +68,7 @@ Deprecated properties:
false.
Nand device bindings may contain additional sub-nodes describing partitions of
-the address space. See partition.txt for more detail. The NAND Flash timing
+the address space. See mtd.yaml for more detail. The NAND Flash timing
values must be programmed in the chip select’s node of AEMIF
memory-controller (see Documentation/devicetree/bindings/memory-controllers/
davinci-aemif.txt).
diff --git a/Bindings/mtd/flctl-nand.txt b/Bindings/mtd/flctl-nand.txt
index 427f46dc60add1..51518399d73779 100644
--- a/Bindings/mtd/flctl-nand.txt
+++ b/Bindings/mtd/flctl-nand.txt
@@ -15,7 +15,7 @@ The DMA fields are not used yet in the driver but are listed here for
completing the bindings.
The device tree may optionally contain sub-nodes describing partitions of the
-address space. See partition.txt for more detail.
+address space. See mtd.yaml for more detail.
Example:
diff --git a/Bindings/mtd/fsl-upm-nand.txt b/Bindings/mtd/fsl-upm-nand.txt
index 25f07c1f9e44d9..530c017e014e29 100644
--- a/Bindings/mtd/fsl-upm-nand.txt
+++ b/Bindings/mtd/fsl-upm-nand.txt
@@ -22,7 +22,7 @@ Deprecated properties:
(R/B# pins not connected).
Each flash chip described may optionally contain additional sub-nodes
-describing partitions of the address space. See partition.txt for more
+describing partitions of the address space. See mtd.yaml for more
detail.
Examples:
diff --git a/Bindings/mtd/gpio-control-nand.txt b/Bindings/mtd/gpio-control-nand.txt
index 486a17d533d7a3..0edf55d47ea8ec 100644
--- a/Bindings/mtd/gpio-control-nand.txt
+++ b/Bindings/mtd/gpio-control-nand.txt
@@ -26,7 +26,7 @@ Optional properties:
read to ensure that the GPIO accesses have completed.
The device tree may optionally contain sub-nodes describing partitions of the
-address space. See partition.txt for more detail.
+address space. See mtd.yaml for more detail.
Examples:
diff --git a/Bindings/mtd/gpmi-nand.yaml b/Bindings/mtd/gpmi-nand.yaml
index ba086c34626d10..021c0da0b072ff 100644
--- a/Bindings/mtd/gpmi-nand.yaml
+++ b/Bindings/mtd/gpmi-nand.yaml
@@ -12,7 +12,7 @@ maintainers:
description: |
The GPMI nand controller provides an interface to control the NAND
flash chips. The device tree may optionally contain sub-nodes
- describing partitions of the address space. See partition.txt for
+ describing partitions of the address space. See mtd.yaml for
more detail.
properties:
diff --git a/Bindings/mtd/hisi504-nand.txt b/Bindings/mtd/hisi504-nand.txt
index 8963983ae7cbac..362203e7d50e75 100644
--- a/Bindings/mtd/hisi504-nand.txt
+++ b/Bindings/mtd/hisi504-nand.txt
@@ -22,7 +22,7 @@ The following ECC strength and step size are currently supported:
- nand-ecc-strength = <16>, nand-ecc-step-size = <1024>
Flash chip may optionally contain additional sub-nodes describing partitions of
-the address space. See partition.txt for more detail.
+the address space. See mtd.yaml for more detail.
Example:
diff --git a/Bindings/mtd/jedec,spi-nor.yaml b/Bindings/mtd/jedec,spi-nor.yaml
index 58f0cea160ef54..6e3afb42926ea6 100644
--- a/Bindings/mtd/jedec,spi-nor.yaml
+++ b/Bindings/mtd/jedec,spi-nor.yaml
@@ -52,6 +52,9 @@ properties:
minItems: 1
maxItems: 2
+ interrupts:
+ maxItems: 1
+
m25p,fast-read:
type: boolean
description:
diff --git a/Bindings/mtd/mtd.yaml b/Bindings/mtd/mtd.yaml
index f322290ee5165f..ee442ecb11cd9c 100644
--- a/Bindings/mtd/mtd.yaml
+++ b/Bindings/mtd/mtd.yaml
@@ -10,6 +10,8 @@ maintainers:
- Miquel Raynal <miquel.raynal@bootlin.com>
- Richard Weinberger <richard@nod.at>
+select: false
+
properties:
$nodename:
pattern: "^(flash|.*sram|nand)(@.*)?$"
diff --git a/Bindings/mtd/nvidia-tegra20-nand.txt b/Bindings/mtd/nvidia-tegra20-nand.txt
index e737e5beb7bf48..4a00ec2b2540c5 100644
--- a/Bindings/mtd/nvidia-tegra20-nand.txt
+++ b/Bindings/mtd/nvidia-tegra20-nand.txt
@@ -39,7 +39,7 @@ Optional children node properties:
- wp-gpios: GPIO specifier for the write protect pin.
Optional child node of NAND chip nodes:
-Partitions: see partition.txt
+Partitions: see mtd.yaml
Example:
nand-controller@70008000 {
diff --git a/Bindings/mtd/orion-nand.txt b/Bindings/mtd/orion-nand.txt
index 2d6ab660e6032a..b9997b1f13ac70 100644
--- a/Bindings/mtd/orion-nand.txt
+++ b/Bindings/mtd/orion-nand.txt
@@ -13,7 +13,7 @@ Optional properties:
registers in usecs
The device tree may optionally contain sub-nodes describing partitions of the
-address space. See partition.txt for more detail.
+address space. See mtd.yaml for more detail.
Example:
diff --git a/Bindings/mtd/samsung-s3c2410.txt b/Bindings/mtd/samsung-s3c2410.txt
index 09815c40fc8aee..6354553506602d 100644
--- a/Bindings/mtd/samsung-s3c2410.txt
+++ b/Bindings/mtd/samsung-s3c2410.txt
@@ -19,7 +19,7 @@ Optional child properties:
Each child device node may optionally contain a 'partitions' sub-node,
which further contains sub-nodes describing the flash partition mapping.
-See partition.txt for more detail.
+See mtd.yaml for more detail.
Example:
diff --git a/Bindings/mtd/st,stm32-fmc2-nand.yaml b/Bindings/mtd/st,stm32-fmc2-nand.yaml
index e72cb5bacaf0a9..b8ef9ba88e92a5 100644
--- a/Bindings/mtd/st,stm32-fmc2-nand.yaml
+++ b/Bindings/mtd/st,stm32-fmc2-nand.yaml
@@ -14,10 +14,11 @@ properties:
enum:
- st,stm32mp15-fmc2
- st,stm32mp1-fmc2-nfc
+ - st,stm32mp25-fmc2-nfc
reg:
minItems: 6
- maxItems: 7
+ maxItems: 12
interrupts:
maxItems: 1
@@ -92,6 +93,28 @@ allOf:
- description: Chip select 1 command
- description: Chip select 1 address space
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: st,stm32mp25-fmc2-nfc
+ then:
+ properties:
+ reg:
+ items:
+ - description: Chip select 0 data
+ - description: Chip select 0 command
+ - description: Chip select 0 address space
+ - description: Chip select 1 data
+ - description: Chip select 1 command
+ - description: Chip select 1 address space
+ - description: Chip select 2 data
+ - description: Chip select 2 command
+ - description: Chip select 2 address space
+ - description: Chip select 3 data
+ - description: Chip select 3 command
+ - description: Chip select 3 address space
+
required:
- compatible
- reg
diff --git a/src/arm/broadcom/bcm47622.dtsi b/src/arm/broadcom/bcm47622.dtsi
index 7cd38de118c320..485863f9c4203d 100644
--- a/src/arm/broadcom/bcm47622.dtsi
+++ b/src/arm/broadcom/bcm47622.dtsi
@@ -138,6 +138,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm/broadcom/bcm63138.dtsi b/src/arm/broadcom/bcm63138.dtsi
index 4ef02283612bb4..e74ba6bf370da6 100644
--- a/src/arm/broadcom/bcm63138.dtsi
+++ b/src/arm/broadcom/bcm63138.dtsi
@@ -229,7 +229,12 @@
reg-names = "nand", "nand-int-base";
status = "disabled";
interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "nand";
+ interrupt-names = "nand_ctlrdy";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
};
serial@4400 {
diff --git a/src/arm/broadcom/bcm63148.dtsi b/src/arm/broadcom/bcm63148.dtsi
index 24431de1810ed0..53703827ee3fe5 100644
--- a/src/arm/broadcom/bcm63148.dtsi
+++ b/src/arm/broadcom/bcm63148.dtsi
@@ -119,5 +119,19 @@
num-cs = <8>;
status = "disabled";
};
+
+ nand_controller: nand-controller@2000 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x2000 0x600>, <0xf0 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
};
};
diff --git a/src/arm/broadcom/bcm63178.dtsi b/src/arm/broadcom/bcm63178.dtsi
index 3f9aed96babfc7..6d8d33498983ac 100644
--- a/src/arm/broadcom/bcm63178.dtsi
+++ b/src/arm/broadcom/bcm63178.dtsi
@@ -129,6 +129,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm/broadcom/bcm6756.dtsi b/src/arm/broadcom/bcm6756.dtsi
index 1d8d957d65dd08..6433f8fa5effd7 100644
--- a/src/arm/broadcom/bcm6756.dtsi
+++ b/src/arm/broadcom/bcm6756.dtsi
@@ -139,6 +139,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm/broadcom/bcm6846.dtsi b/src/arm/broadcom/bcm6846.dtsi
index cf92cf8c469330..ee361cb00b7ca6 100644
--- a/src/arm/broadcom/bcm6846.dtsi
+++ b/src/arm/broadcom/bcm6846.dtsi
@@ -119,5 +119,19 @@
num-cs = <8>;
status = "disabled";
};
+
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
};
};
diff --git a/src/arm/broadcom/bcm6855.dtsi b/src/arm/broadcom/bcm6855.dtsi
index 52d6bc89f9f828..52915ec6f33933 100644
--- a/src/arm/broadcom/bcm6855.dtsi
+++ b/src/arm/broadcom/bcm6855.dtsi
@@ -129,6 +129,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm/broadcom/bcm6878.dtsi b/src/arm/broadcom/bcm6878.dtsi
index 2c5d706bac7e3d..70cf23a65fdb5a 100644
--- a/src/arm/broadcom/bcm6878.dtsi
+++ b/src/arm/broadcom/bcm6878.dtsi
@@ -120,6 +120,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm/broadcom/bcm947622.dts b/src/arm/broadcom/bcm947622.dts
index 93b8ce22678d3a..6241485408d3b4 100644
--- a/src/arm/broadcom/bcm947622.dts
+++ b/src/arm/broadcom/bcm947622.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm/broadcom/bcm963138.dts b/src/arm/broadcom/bcm963138.dts
index 1b405c2492137a..7fd87e05ec20ad 100644
--- a/src/arm/broadcom/bcm963138.dts
+++ b/src/arm/broadcom/bcm963138.dts
@@ -29,3 +29,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm/broadcom/bcm963138dvt.dts b/src/arm/broadcom/bcm963138dvt.dts
index b5af61853a0726..f60d09908ab964 100644
--- a/src/arm/broadcom/bcm963138dvt.dts
+++ b/src/arm/broadcom/bcm963138dvt.dts
@@ -32,15 +32,15 @@
};
&nand_controller {
+ brcm,wp-not-connected;
status = "okay";
+};
- nand@0 {
- compatible = "brcm,nandcs";
- reg = <0>;
- nand-ecc-strength = <4>;
- nand-ecc-step-size = <512>;
- brcm,nand-oob-sectors-size = <16>;
- };
+&nandcs {
+ nand-ecc-strength = <4>;
+ nand-ecc-step-size = <512>;
+ brcm,nand-oob-sector-size = <16>;
+ nand-on-flash-bbt;
};
&ahci {
diff --git a/src/arm/broadcom/bcm963148.dts b/src/arm/broadcom/bcm963148.dts
index 1f5d6d783f090f..44bca063a3273d 100644
--- a/src/arm/broadcom/bcm963148.dts
+++ b/src/arm/broadcom/bcm963148.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm/broadcom/bcm963178.dts b/src/arm/broadcom/bcm963178.dts
index d036e99dd8d16e..098a222cd71a47 100644
--- a/src/arm/broadcom/bcm963178.dts
+++ b/src/arm/broadcom/bcm963178.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm/broadcom/bcm96756.dts b/src/arm/broadcom/bcm96756.dts
index 8b104f3fb14ae7..402038d3cd0c93 100644
--- a/src/arm/broadcom/bcm96756.dts
+++ b/src/arm/broadcom/bcm96756.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm/broadcom/bcm96846.dts b/src/arm/broadcom/bcm96846.dts
index 55852c2296087e..943896afb7cc68 100644
--- a/src/arm/broadcom/bcm96846.dts
+++ b/src/arm/broadcom/bcm96846.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm/broadcom/bcm96855.dts b/src/arm/broadcom/bcm96855.dts
index 2ad880af210440..571663d9a1eac3 100644
--- a/src/arm/broadcom/bcm96855.dts
+++ b/src/arm/broadcom/bcm96855.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm/broadcom/bcm96878.dts b/src/arm/broadcom/bcm96878.dts
index b7af8ade7a9d00..8d6eddd54c6e48 100644
--- a/src/arm/broadcom/bcm96878.dts
+++ b/src/arm/broadcom/bcm96878.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm64/broadcom/bcmbca/bcm4906-netgear-r8000p.dts b/src/arm64/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
index 78204d71ecd21f..999d9373024069 100644
--- a/src/arm64/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
+++ b/src/arm64/broadcom/bcmbca/bcm4906-netgear-r8000p.dts
@@ -125,6 +125,11 @@
};
};
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
&nandcs {
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
diff --git a/src/arm64/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts b/src/arm64/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
index fcf092c81b595e..19fc03ef47a08c 100644
--- a/src/arm64/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
+++ b/src/arm64/broadcom/bcmbca/bcm4906-tplink-archer-c2300-v1.dts
@@ -155,6 +155,11 @@
};
};
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
&nandcs {
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
diff --git a/src/arm64/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts b/src/arm64/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
index d94a53d68320b3..52f928dbfa3cd7 100644
--- a/src/arm64/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
+++ b/src/arm64/broadcom/bcmbca/bcm4908-asus-gt-ac5300.dts
@@ -166,11 +166,15 @@
};
};
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
&nandcs {
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-on-flash-bbt;
- brcm,nand-has-wp;
#address-cells = <1>;
#size-cells = <0>;
diff --git a/src/arm64/broadcom/bcmbca/bcm4908.dtsi b/src/arm64/broadcom/bcmbca/bcm4908.dtsi
index 2f124b027bbf0a..336016e334d937 100644
--- a/src/arm64/broadcom/bcmbca/bcm4908.dtsi
+++ b/src/arm64/broadcom/bcmbca/bcm4908.dtsi
@@ -589,7 +589,7 @@
status = "disabled";
};
- nand-controller@1800 {
+ nand_controller: nand-controller@1800 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
@@ -597,7 +597,7 @@
reg-names = "nand", "nand-int-base";
interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "nand_ctlrdy";
- status = "okay";
+ status = "disabled";
nandcs: nand@0 {
compatible = "brcm,nandcs";
diff --git a/src/arm64/broadcom/bcmbca/bcm4912.dtsi b/src/arm64/broadcom/bcmbca/bcm4912.dtsi
index d658c81f7285ec..14b2adfb817c2a 100644
--- a/src/arm64/broadcom/bcmbca/bcm4912.dtsi
+++ b/src/arm64/broadcom/bcmbca/bcm4912.dtsi
@@ -138,6 +138,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm64/broadcom/bcmbca/bcm63146.dtsi b/src/arm64/broadcom/bcmbca/bcm63146.dtsi
index 4f474d47022e26..589b8a1efc72f8 100644
--- a/src/arm64/broadcom/bcmbca/bcm63146.dtsi
+++ b/src/arm64/broadcom/bcmbca/bcm63146.dtsi
@@ -119,6 +119,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm64/broadcom/bcmbca/bcm63158.dtsi b/src/arm64/broadcom/bcmbca/bcm63158.dtsi
index 909f254dc47d11..48d618e7586645 100644
--- a/src/arm64/broadcom/bcmbca/bcm63158.dtsi
+++ b/src/arm64/broadcom/bcmbca/bcm63158.dtsi
@@ -137,6 +137,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm64/broadcom/bcmbca/bcm6813.dtsi b/src/arm64/broadcom/bcmbca/bcm6813.dtsi
index 685ae32951c9c7..1d1303cf90f307 100644
--- a/src/arm64/broadcom/bcmbca/bcm6813.dtsi
+++ b/src/arm64/broadcom/bcmbca/bcm6813.dtsi
@@ -138,6 +138,20 @@
status = "disabled";
};
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
+
uart0: serial@12000 {
compatible = "arm,pl011", "arm,primecell";
reg = <0x12000 0x1000>;
diff --git a/src/arm64/broadcom/bcmbca/bcm6856.dtsi b/src/arm64/broadcom/bcmbca/bcm6856.dtsi
index 820553ce541b4f..00c62c1e5df00c 100644
--- a/src/arm64/broadcom/bcmbca/bcm6856.dtsi
+++ b/src/arm64/broadcom/bcmbca/bcm6856.dtsi
@@ -119,5 +119,19 @@
num-cs = <8>;
status = "disabled";
};
+
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
};
};
diff --git a/src/arm64/broadcom/bcmbca/bcm6858.dtsi b/src/arm64/broadcom/bcmbca/bcm6858.dtsi
index 0eb93c29829722..caeaf428dc15db 100644
--- a/src/arm64/broadcom/bcmbca/bcm6858.dtsi
+++ b/src/arm64/broadcom/bcmbca/bcm6858.dtsi
@@ -156,5 +156,19 @@
num-cs = <8>;
status = "disabled";
};
+
+ nand_controller: nand-controller@1800 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ compatible = "brcm,nand-bcm63138", "brcm,brcmnand-v7.1", "brcm,brcmnand";
+ reg = <0x1800 0x600>, <0x2000 0x10>;
+ reg-names = "nand", "nand-int-base";
+ status = "disabled";
+
+ nandcs: nand@0 {
+ compatible = "brcm,nandcs";
+ reg = <0>;
+ };
+ };
};
};
diff --git a/src/arm64/broadcom/bcmbca/bcm94908.dts b/src/arm64/broadcom/bcmbca/bcm94908.dts
index c4e6e71f63107d..030ffa5364fbc1 100644
--- a/src/arm64/broadcom/bcmbca/bcm94908.dts
+++ b/src/arm64/broadcom/bcmbca/bcm94908.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm64/broadcom/bcmbca/bcm94912.dts b/src/arm64/broadcom/bcmbca/bcm94912.dts
index e69cd683211a99..4b779e6c22e1cc 100644
--- a/src/arm64/broadcom/bcmbca/bcm94912.dts
+++ b/src/arm64/broadcom/bcmbca/bcm94912.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm64/broadcom/bcmbca/bcm963146.dts b/src/arm64/broadcom/bcmbca/bcm963146.dts
index db2c82d6dfd828..2851e8e41bf4e0 100644
--- a/src/arm64/broadcom/bcmbca/bcm963146.dts
+++ b/src/arm64/broadcom/bcmbca/bcm963146.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm64/broadcom/bcmbca/bcm963158.dts b/src/arm64/broadcom/bcmbca/bcm963158.dts
index 25c12bc63545d6..17dc594fe83f21 100644
--- a/src/arm64/broadcom/bcmbca/bcm963158.dts
+++ b/src/arm64/broadcom/bcmbca/bcm963158.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm64/broadcom/bcmbca/bcm96813.dts b/src/arm64/broadcom/bcmbca/bcm96813.dts
index faba21f031203f..34832a73473405 100644
--- a/src/arm64/broadcom/bcmbca/bcm96813.dts
+++ b/src/arm64/broadcom/bcmbca/bcm96813.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm64/broadcom/bcmbca/bcm96856.dts b/src/arm64/broadcom/bcmbca/bcm96856.dts
index 9808331eede2cb..e1396b5544b7cc 100644
--- a/src/arm64/broadcom/bcmbca/bcm96856.dts
+++ b/src/arm64/broadcom/bcmbca/bcm96856.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};
diff --git a/src/arm64/broadcom/bcmbca/bcm96858.dts b/src/arm64/broadcom/bcmbca/bcm96858.dts
index 1f561c8e13b0ec..30bbf6f2917e75 100644
--- a/src/arm64/broadcom/bcmbca/bcm96858.dts
+++ b/src/arm64/broadcom/bcmbca/bcm96858.dts
@@ -32,3 +32,13 @@
&hsspi {
status = "okay";
};
+
+&nand_controller {
+ brcm,wp-not-connected;
+ status = "okay";
+};
+
+&nandcs {
+ nand-on-flash-bbt;
+ brcm,nand-ecc-use-strap;
+};