summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2026-02-13 15:06:58 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2026-02-13 15:06:58 -0800
commit1b49e363252632d0493546511a41a65ed1a6fbbb (patch)
tree494eaff67b1b7d29f383dec827f58dfdeade9f64 /Documentation
parent72f05009d804c7ec92459da94ccc9ccb77686950 (diff)
parent7e96d76c74175ef9747f6fc14ee567f89d72153c (diff)
Merge tag 'mtd/for-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux
Pull MTD updates from Miquel Raynal: "MTD: - prioritize ofpart in physmap-core probing - conversions to scoped for each OF child loops Bindings: - The bulk of the changes consists of binding fixes/updates to restrict the use of undefined properties, which was mostly ineffective in the current form because of the nesting of partition nodes and the lack of compatible strings - YAML conversions and the addition of a dma-coherent property in the cdns,hp-nfc driver SPI NAND: - support for octal DTR modes (8D-8D-8D) - support for Foresee F35SQB002G chips And small misc fixes" * tag 'mtd/for-7.0' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (65 commits) mtd: spi-nor: hisi-sfc: fix refcounting bug in hisi_spi_nor_register_all() mtd: spinand: fix NULL pointer dereference in spinand_support_vendor_ops() mtd: rawnand: pl353: Add message about ECC mode mtd: rawnand: pl353: Fix software ECC support mtd: spinand: winbond: Remove unneeded semicolon dt-bindings: mtd: cdns,hp-nfc: Add dma-coherent property mtd: spinand: Disable continuous read during probe mtd: spinand: add Foresee F35SQB002G flash support mtd: spinand: winbond: W35N octal DTR support mtd: spinand: Add octal DTR support mtd: spinand: Warn if using SSDR-only vendor commands in a non SSDR mode mtd: spinand: Give the bus interface to the configuration helper mtd: spinand: Propagate the bus interface across core helpers mtd: spinand: Add support for setting a bus interface mtd: spinand: Gather all the bus interface steps in one single function mtd: spinand: winbond: Configure the IO mode after the dummy cycles mtd: spinand: winbond: Rename IO_MODE register macro mtd: spinand: winbond: Fix style mtd: spinand: winbond: Register W35N vendor specific operation mtd: spinand: winbond: Register W25N vendor specific operation ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/mmc/mmc-card.yaml20
-rw-r--r--Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml1
-rw-r--r--Documentation/devicetree/bindings/mtd/cdns,hp-nfc.yaml2
-rw-r--r--Documentation/devicetree/bindings/mtd/microchip,mchp23k256.txt18
-rw-r--r--Documentation/devicetree/bindings/mtd/microchip,mchp23k256.yaml49
-rw-r--r--Documentation/devicetree/bindings/mtd/mtd.yaml10
-rw-r--r--Documentation/devicetree/bindings/mtd/mxic,multi-itfc-v009-nand-controller.yaml78
-rw-r--r--Documentation/devicetree/bindings/mtd/mxic-nand.txt36
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.yaml2
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/binman.yaml53
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/brcm,bcm4908-partitions.yaml8
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/brcm,bcm947xx-cfe-partitions.yaml2
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/brcm,bcm963xx-imagetag.txt45
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt42
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml65
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml43
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.yaml10
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/partition.yaml44
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/partitions.yaml42
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/redboot-fis.yaml4
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/seama.yaml44
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/simple-partition.yaml61
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml2
-rw-r--r--Documentation/devicetree/bindings/mtd/partitions/u-boot.yaml2
-rw-r--r--Documentation/devicetree/bindings/mtd/spear_smi.txt29
-rw-r--r--Documentation/devicetree/bindings/mtd/st,spear600-smi.yaml72
-rw-r--r--Documentation/devicetree/bindings/mtd/st,spi-fsm.yaml68
-rw-r--r--Documentation/devicetree/bindings/mtd/st-fsm.txt25
-rw-r--r--Documentation/devicetree/bindings/mtd/ti,davinci-nand.yaml4
-rw-r--r--Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml2
30 files changed, 465 insertions, 418 deletions
diff --git a/Documentation/devicetree/bindings/mmc/mmc-card.yaml b/Documentation/devicetree/bindings/mmc/mmc-card.yaml
index 1d91d4272de0..a61d6c96df75 100644
--- a/Documentation/devicetree/bindings/mmc/mmc-card.yaml
+++ b/Documentation/devicetree/bindings/mmc/mmc-card.yaml
@@ -32,21 +32,13 @@ properties:
patternProperties:
"^partitions(-boot[12]|-gp[14])?$":
- $ref: /schemas/mtd/partitions/partitions.yaml
+ type: object
+ additionalProperties: true
- patternProperties:
- "^partition@[0-9a-f]+$":
- $ref: /schemas/mtd/partitions/partition.yaml
-
- properties:
- reg:
- description: Must be multiple of 512 as it's converted
- internally from bytes to SECTOR_SIZE (512 bytes)
-
- required:
- - reg
-
- unevaluatedProperties: false
+ properties:
+ compatible:
+ contains:
+ const: fixed-partitions
required:
- compatible
diff --git a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml
index 064e840aeaa1..3105f8e6cbd6 100644
--- a/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml
+++ b/Documentation/devicetree/bindings/mtd/brcm,brcmnand.yaml
@@ -66,7 +66,6 @@ properties:
items:
- const: brcm,nand-iproc
- const: brcm,brcmnand-v6.1
- - const: brcm,brcmnand
- description: BCM63168 SoC-specific NAND controller
items:
- const: brcm,nand-bcm63168
diff --git a/Documentation/devicetree/bindings/mtd/cdns,hp-nfc.yaml b/Documentation/devicetree/bindings/mtd/cdns,hp-nfc.yaml
index 73dc69cee4d8..367257a227b1 100644
--- a/Documentation/devicetree/bindings/mtd/cdns,hp-nfc.yaml
+++ b/Documentation/devicetree/bindings/mtd/cdns,hp-nfc.yaml
@@ -40,6 +40,8 @@ properties:
dmas:
maxItems: 1
+ dma-coherent: true
+
iommus:
maxItems: 1
diff --git a/Documentation/devicetree/bindings/mtd/microchip,mchp23k256.txt b/Documentation/devicetree/bindings/mtd/microchip,mchp23k256.txt
deleted file mode 100644
index 7328eb92a03c..000000000000
--- a/Documentation/devicetree/bindings/mtd/microchip,mchp23k256.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-* MTD SPI driver for Microchip 23K256 (and similar) serial SRAM
-
-Required properties:
-- #address-cells, #size-cells : Must be present if the device has sub-nodes
- representing partitions.
-- compatible : Must be one of "microchip,mchp23k256" or "microchip,mchp23lcv1024"
-- reg : Chip-Select number
-- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at
-
-Example:
-
- spi-sram@0 {
- #address-cells = <1>;
- #size-cells = <1>;
- compatible = "microchip,mchp23k256";
- reg = <0>;
- spi-max-frequency = <20000000>;
- };
diff --git a/Documentation/devicetree/bindings/mtd/microchip,mchp23k256.yaml b/Documentation/devicetree/bindings/mtd/microchip,mchp23k256.yaml
new file mode 100644
index 000000000000..32e9124594ac
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/microchip,mchp23k256.yaml
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/microchip,mchp23k256.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Microchip 23K256 SPI SRAM
+
+maintainers:
+ - Richard Weinberger <richard@nod.at>
+
+description:
+ The Microchip 23K256 is a 256 Kbit (32 Kbyte) serial SRAM with an
+ SPI interface,supporting clock frequencies up to 20 MHz. It features
+ a 32-byte page size for writes and supports byte, page, and
+ sequential access modes.
+
+allOf:
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+ compatible:
+ enum:
+ - microchip,mchp23k256
+ - microchip,mchp23lcv1024
+
+ reg:
+ maxItems: 1
+
+required:
+ - reg
+ - compatible
+ - spi-max-frequency
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ sram@0 {
+ compatible = "microchip,mchp23k256";
+ reg = <0>;
+ spi-max-frequency = <20000000>;
+ };
+ };
+...
diff --git a/Documentation/devicetree/bindings/mtd/mtd.yaml b/Documentation/devicetree/bindings/mtd/mtd.yaml
index bbb56216a4e2..5a2d06c96c0d 100644
--- a/Documentation/devicetree/bindings/mtd/mtd.yaml
+++ b/Documentation/devicetree/bindings/mtd/mtd.yaml
@@ -30,18 +30,14 @@ properties:
deprecated: true
partitions:
- $ref: /schemas/mtd/partitions/partitions.yaml
+ type: object
required:
- compatible
patternProperties:
- "@[0-9a-f]+$":
- $ref: partitions/partition.yaml
- deprecated: true
-
- "^partition@[0-9a-f]+":
- $ref: partitions/partition.yaml
+ "(^partition)?@[0-9a-f]+$":
+ $ref: /schemas/mtd/partitions/partition.yaml#/$defs/partition-node
deprecated: true
"^otp(-[0-9]+)?$":
diff --git a/Documentation/devicetree/bindings/mtd/mxic,multi-itfc-v009-nand-controller.yaml b/Documentation/devicetree/bindings/mtd/mxic,multi-itfc-v009-nand-controller.yaml
new file mode 100644
index 000000000000..81c041aa2610
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/mxic,multi-itfc-v009-nand-controller.yaml
@@ -0,0 +1,78 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/mxic,multi-itfc-v009-nand-controller.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Macronix Raw NAND Controller
+
+maintainers:
+ - Mason Yang <masonccyang@mxic.com.tw>
+
+description:
+ The Macronix Multi-Interface Raw NAND Controller is a versatile flash
+ memory controller for embedding in SoCs, capable of interfacing with
+ various NAND devices. It requires dedicated clock inputs for core, data
+ transmit, and delayed transmit paths along with register space and an
+ interrupt line for operation.
+
+allOf:
+ - $ref: nand-controller.yaml#
+
+properties:
+ compatible:
+ const: mxic,multi-itfc-v009-nand-controller
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 0
+
+ clocks:
+ minItems: 3
+ maxItems: 3
+
+ clock-names:
+ items:
+ - const: ps
+ - const: send
+ - const: send_dly
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - "#address-cells"
+ - "#size-cells"
+ - clocks
+ - clock-names
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ nand-controller@43c30000 {
+ compatible = "mxic,multi-itfc-v009-nand-controller";
+ reg = <0x43c30000 0x10000>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+ interrupts = <GIC_SPI 0x1d IRQ_TYPE_EDGE_RISING>;
+ clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>;
+ clock-names = "ps", "send", "send_dly";
+
+ nand@0 {
+ reg = <0>;
+ nand-ecc-mode = "soft";
+ nand-ecc-algo = "bch";
+ };
+ };
+...
diff --git a/Documentation/devicetree/bindings/mtd/mxic-nand.txt b/Documentation/devicetree/bindings/mtd/mxic-nand.txt
deleted file mode 100644
index 46c55295a3e6..000000000000
--- a/Documentation/devicetree/bindings/mtd/mxic-nand.txt
+++ /dev/null
@@ -1,36 +0,0 @@
-Macronix Raw NAND Controller Device Tree Bindings
--------------------------------------------------
-
-Required properties:
-- compatible: should be "mxic,multi-itfc-v009-nand-controller"
-- reg: should contain 1 entry for the registers
-- #address-cells: should be set to 1
-- #size-cells: should be set to 0
-- interrupts: interrupt line connected to this raw NAND controller
-- clock-names: should contain "ps", "send" and "send_dly"
-- clocks: should contain 3 phandles for the "ps", "send" and
- "send_dly" clocks
-
-Children nodes:
-- children nodes represent the available NAND chips.
-
-See Documentation/devicetree/bindings/mtd/nand-controller.yaml
-for more details on generic bindings.
-
-Example:
-
- nand: nand-controller@43c30000 {
- compatible = "mxic,multi-itfc-v009-nand-controller";
- reg = <0x43c30000 0x10000>;
- #address-cells = <1>;
- #size-cells = <0>;
- interrupts = <GIC_SPI 0x1d IRQ_TYPE_EDGE_RISING>;
- clocks = <&clkwizard 0>, <&clkwizard 1>, <&clkc 15>;
- clock-names = "send", "send_dly", "ps";
-
- nand@0 {
- reg = <0>;
- nand-ecc-mode = "soft";
- nand-ecc-algo = "bch";
- };
- };
diff --git a/Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.yaml b/Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.yaml
index e9b1a6869910..d4b6013aefcc 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/arm,arm-firmware-suite.yaml
@@ -9,8 +9,6 @@ title: ARM Firmware Suite (AFS) Partitions
maintainers:
- Linus Walleij <linusw@kernel.org>
-select: false
-
description: |
The ARM Firmware Suite is a flash partitioning system found on the
ARM reference designs: Integrator AP, Integrator CP, Versatile AB,
diff --git a/Documentation/devicetree/bindings/mtd/partitions/binman.yaml b/Documentation/devicetree/bindings/mtd/partitions/binman.yaml
deleted file mode 100644
index bb4b08546184..000000000000
--- a/Documentation/devicetree/bindings/mtd/partitions/binman.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/mtd/partitions/binman.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Binman entries
-
-description: |
- This corresponds to a binman 'entry'. It is a single partition which holds
- data of a defined type.
-
- Binman uses the type to indicate what data file / type to place in the
- partition. There are quite a number of binman-specific entry types, such as
- section, fill and files, to be added later.
-
-maintainers:
- - Simon Glass <sjg@chromium.org>
-
-allOf:
- - $ref: /schemas/mtd/partitions/partition.yaml#
-
-properties:
- compatible:
- enum:
- - u-boot # u-boot.bin from U-Boot project
- - tfa-bl31 # bl31.bin or bl31.elf from TF-A project
-
-required:
- - compatible
-
-unevaluatedProperties: false
-
-examples:
- - |
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@100000 {
- compatible = "u-boot";
- reg = <0x100000 0xf00000>;
- align-size = <0x1000>;
- align-end = <0x10000>;
- };
-
- partition@200000 {
- compatible = "tfa-bl31";
- reg = <0x200000 0x100000>;
- align = <0x4000>;
- };
- };
diff --git a/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm4908-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm4908-partitions.yaml
index 94f0742b375c..d9fefb46d2fa 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm4908-partitions.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm4908-partitions.yaml
@@ -17,8 +17,6 @@ description: |
maintainers:
- Rafał Miłecki <rafal@milecki.pl>
-select: false
-
properties:
compatible:
const: brcm,bcm4908-partitions
@@ -31,11 +29,7 @@ properties:
patternProperties:
"^partition@[0-9a-f]+$":
- $ref: partition.yaml#
- properties:
- compatible:
- const: brcm,bcm4908-firmware
- unevaluatedProperties: false
+ $ref: partition.yaml#/$defs/partition-node
required:
- "#address-cells"
diff --git a/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm947xx-cfe-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm947xx-cfe-partitions.yaml
index 939e7b50db22..3484e06d6bcb 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm947xx-cfe-partitions.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm947xx-cfe-partitions.yaml
@@ -35,8 +35,6 @@ description: |
maintainers:
- Rafał Miłecki <rafal@milecki.pl>
-select: false
-
properties:
compatible:
const: brcm,bcm947xx-cfe-partitions
diff --git a/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm963xx-imagetag.txt b/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm963xx-imagetag.txt
deleted file mode 100644
index f8b7418ed817..000000000000
--- a/Documentation/devicetree/bindings/mtd/partitions/brcm,bcm963xx-imagetag.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-Broadcom BCM963XX ImageTag Partition Container
-==============================================
-
-Some Broadcom BCM63XX SoC based devices contain additional, non discoverable
-partitions or non standard bootloader partition sizes. For these a mixed layout
-needs to be used with an explicit firmware partition.
-
-The BCM963XX ImageTag is a simple firmware header describing the offsets and
-sizes of the rootfs and kernel parts contained in the firmware.
-
-Required properties:
-- compatible : must be "brcm,bcm963xx-imagetag"
-
-Example:
-
-flash@1e000000 {
- compatible = "cfi-flash";
- reg = <0x1e000000 0x2000000>;
- bank-width = <2>;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- cfe@0 {
- reg = <0x0 0x10000>;
- read-only;
- };
-
- firmware@10000 {
- reg = <0x10000 0x7d0000>;
- compatible = "brcm,bcm963xx-imagetag";
- };
-
- caldata@7e0000 {
- reg = <0x7e0000 0x10000>;
- read-only;
- };
-
- nvram@7f0000 {
- reg = <0x7f0000 0x10000>;
- };
- };
-};
diff --git a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt
deleted file mode 100644
index c2175d3c82ec..000000000000
--- a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.txt
+++ /dev/null
@@ -1,42 +0,0 @@
-Broadcom TRX Container Partition
-================================
-
-TRX is Broadcom's official firmware format for the BCM947xx boards. It's used by
-most of the vendors building devices based on Broadcom's BCM47xx SoCs and is
-supported by the CFE bootloader.
-
-Design of the TRX format is very minimalistic. Its header contains
-identification fields, CRC32 checksum and the locations of embedded partitions.
-Its purpose is to store a few partitions in a format that can be distributed as
-a standalone file and written in a flash memory.
-
-Container can hold up to 4 partitions. The first partition has to contain a
-device executable binary (e.g. a kernel) as it's what the CFE bootloader starts
-executing. Other partitions can be used for operating system purposes. This is
-useful for systems that keep kernel and rootfs separated.
-
-TRX doesn't enforce any strict partition boundaries or size limits. All
-partitions have to be less than the 4GiB max size limit.
-
-There are two existing/known TRX variants:
-1) v1 which contains 3 partitions
-2) v2 which contains 4 partitions
-
-There aren't separated compatible bindings for them as version can be trivialy
-detected by a software parsing TRX header.
-
-Required properties:
-- compatible : (required) must be "brcm,trx"
-
-Optional properties:
-
-- brcm,trx-magic: TRX magic, if it is different from the default magic
- 0x30524448 as a u32.
-
-Example:
-
-flash@0 {
- partitions {
- compatible = "brcm,trx";
- };
-};
diff --git a/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
new file mode 100644
index 000000000000..71458b2c05fe
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/partitions/brcm,trx.yaml
@@ -0,0 +1,65 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/partitions/brcm,trx.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Broadcom TRX Container Partition
+
+maintainers:
+ - Hauke Mehrtens <hauke@hauke-m.de>
+ - Rafał Miłecki <rafal@milecki.pl>
+
+description: >
+ TRX is Broadcom's official firmware format for the BCM947xx boards. It's used by
+ most of the vendors building devices based on Broadcom's BCM47xx SoCs and is
+ supported by the CFE bootloader.
+
+ Design of the TRX format is very minimalistic. Its header contains
+ identification fields, CRC32 checksum and the locations of embedded partitions.
+ Its purpose is to store a few partitions in a format that can be distributed as
+ a standalone file and written in a flash memory.
+
+ Container can hold up to 4 partitions. The first partition has to contain a
+ device executable binary (e.g. a kernel) as it's what the CFE bootloader starts
+ executing. Other partitions can be used for operating system purposes. This is
+ useful for systems that keep kernel and rootfs separated.
+
+ TRX doesn't enforce any strict partition boundaries or size limits. All
+ partitions have to be less than the 4GiB max size limit.
+
+ There are two existing/known TRX variants:
+ 1) v1 which contains 3 partitions
+ 2) v2 which contains 4 partitions
+
+ There aren't separated compatible bindings for them as version can be trivially
+ detected by a software parsing TRX header.
+
+properties:
+ compatible:
+ oneOf:
+ - items:
+ - const: linksys,ns-firmware
+ - const: brcm,trx
+ - const: brcm,trx
+
+ brcm,trx-magic:
+ description: TRX magic, if it is different from the default magic.
+ $ref: /schemas/types.yaml#/definitions/uint32
+ default: 0x30524448
+
+required:
+ - compatible
+
+allOf:
+ - $ref: partition.yaml#
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ flash {
+ partitions {
+ compatible = "brcm,trx";
+ };
+ };
diff --git a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
index 62086366837c..984823108f9c 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/fixed-partitions.yaml
@@ -25,47 +25,25 @@ properties:
- const: sercomm,sc-partitions
- const: fixed-partitions
- "#address-cells": true
+ "#address-cells":
+ enum: [ 1, 2 ]
- "#size-cells": true
-
- compression:
- $ref: /schemas/types.yaml#/definitions/string
- description: |
- Compression algorithm used to store the data in this partition, chosen
- from a list of well-known algorithms.
-
- The contents are compressed using this algorithm.
-
- enum:
- - none
- - bzip2
- - gzip
- - lzop
- - lz4
- - lzma
- - xz
- - zstd
+ "#size-cells":
+ enum: [ 1, 2 ]
patternProperties:
"@[0-9a-f]+$":
- $ref: partition.yaml#
-
- properties:
- sercomm,scpart-id:
- description: Partition id in Sercomm partition map. Mtd parser
- uses this id to find a record in the partition map containing
- offset and size of the current partition. The values from
- partition map overrides partition offset and size defined in
- reg property of the dts. Frequently these values are the same,
- but may differ if device has bad eraseblocks on a flash.
- $ref: /schemas/types.yaml#/definitions/uint32
+ $ref: partition.yaml#/$defs/partition-node
required:
- "#address-cells"
- "#size-cells"
-additionalProperties: true
+# fixed-partitions can be nested
+allOf:
+ - $ref: partition.yaml#
+
+unevaluatedProperties: false
examples:
- |
@@ -141,7 +119,6 @@ examples:
compatible = "fixed-partitions";
label = "calibration";
reg = <0xf00000 0x100000>;
- ranges = <0 0xf00000 0x100000>;
#address-cells = <1>;
#size-cells = <1>;
diff --git a/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.yaml
index c5fa78ff7125..61d7e701b110 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/linksys,ns-partitions.yaml
@@ -18,8 +18,6 @@ description: |
maintainers:
- Rafał Miłecki <rafal@milecki.pl>
-select: false
-
properties:
compatible:
const: linksys,ns-partitions
@@ -32,13 +30,7 @@ properties:
patternProperties:
"^partition@[0-9a-f]+$":
- $ref: partition.yaml#
- properties:
- compatible:
- items:
- - const: linksys,ns-firmware
- - const: brcm,trx
- unevaluatedProperties: false
+ $ref: partition.yaml#/$defs/partition-node
required:
- "#address-cells"
diff --git a/Documentation/devicetree/bindings/mtd/partitions/partition.yaml b/Documentation/devicetree/bindings/mtd/partitions/partition.yaml
index 80d0452a2a33..2397d97ecac5 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/partition.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/partition.yaml
@@ -108,17 +108,59 @@ properties:
with the padding bytes, so may grow. If ‘align-end’ is not provided,
no alignment is performed.
+ compression:
+ $ref: /schemas/types.yaml#/definitions/string
+ description: |
+ Compression algorithm used to store the data in this partition, chosen
+ from a list of well-known algorithms.
+
+ The contents are compressed using this algorithm.
+
+ enum:
+ - none
+ - bzip2
+ - gzip
+ - lzop
+ - lz4
+ - lzma
+ - xz
+ - zstd
+
+ sercomm,scpart-id:
+ description: Partition id in Sercomm partition map. Mtd parser
+ uses this id to find a record in the partition map containing
+ offset and size of the current partition. The values from
+ partition map overrides partition offset and size defined in
+ reg property of the dts. Frequently these values are the same,
+ but may differ if device has bad eraseblocks on a flash.
+ $ref: /schemas/types.yaml#/definitions/uint32
+
+ nvmem-layout:
+ $ref: /schemas/nvmem/layouts/nvmem-layout.yaml
+
if:
not:
required: [ reg ]
then:
properties:
$nodename:
- pattern: '^partition-.*$'
+ pattern: '^partitions?(-.+)?$'
# This is a generic file other binding inherit from and extend
additionalProperties: true
+$defs:
+ partition-node:
+ type: object
+ if:
+ not:
+ required: [ compatible ]
+ then:
+ $ref: '#'
+ unevaluatedProperties: false
+ else:
+ $ref: '#'
+
examples:
- |
partitions {
diff --git a/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml
deleted file mode 100644
index 1dda2c80747b..000000000000
--- a/Documentation/devicetree/bindings/mtd/partitions/partitions.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/mtd/partitions/partitions.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Partitions
-
-description: |
- This binding is generic and describes the content of the partitions container
- node. All partition parsers must be referenced here.
-
-maintainers:
- - Miquel Raynal <miquel.raynal@bootlin.com>
-
-oneOf:
- - $ref: arm,arm-firmware-suite.yaml
- - $ref: brcm,bcm4908-partitions.yaml
- - $ref: brcm,bcm947xx-cfe-partitions.yaml
- - $ref: fixed-partitions.yaml
- - $ref: linksys,ns-partitions.yaml
- - $ref: qcom,smem-part.yaml
- - $ref: redboot-fis.yaml
- - $ref: tplink,safeloader-partitions.yaml
-
-properties:
- compatible: true
-
- '#address-cells':
- enum: [1, 2]
-
- '#size-cells':
- enum: [1, 2]
-
-patternProperties:
- "^partition(-.+|@[0-9a-f]+)$":
- $ref: partition.yaml
-
-required:
- - compatible
-
-unevaluatedProperties: false
diff --git a/Documentation/devicetree/bindings/mtd/partitions/redboot-fis.yaml b/Documentation/devicetree/bindings/mtd/partitions/redboot-fis.yaml
index e3978d2bc056..dc6421150c84 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/redboot-fis.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/redboot-fis.yaml
@@ -28,10 +28,6 @@ properties:
device. On a flash memory with 32KB eraseblocks, 0 means the first
eraseblock at 0x00000000, 1 means the second eraseblock at 0x00008000 and so on.
- '#address-cells': false
-
- '#size-cells': false
-
required:
- compatible
- fis-index-block
diff --git a/Documentation/devicetree/bindings/mtd/partitions/seama.yaml b/Documentation/devicetree/bindings/mtd/partitions/seama.yaml
deleted file mode 100644
index 4af185204b4b..000000000000
--- a/Documentation/devicetree/bindings/mtd/partitions/seama.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/mtd/partitions/seama.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Seattle Image Partitions
-
-description: The SEAttle iMAge (SEAMA) partition is a type of partition
- used for NAND flash devices. This type of flash image is found in some
- D-Link routers such as DIR-645, DIR-842, DIR-859, DIR-860L, DIR-885L,
- DIR890L and DCH-M225, as well as in WD and NEC routers on the ath79
- (MIPS), Broadcom BCM53xx, and RAMIPS platforms. This partition type
- does not have children defined in the device tree, they need to be
- detected by software.
-
-allOf:
- - $ref: partition.yaml#
-
-maintainers:
- - Linus Walleij <linusw@kernel.org>
-
-properties:
- compatible:
- const: seama
-
-required:
- - compatible
-
-unevaluatedProperties: false
-
-examples:
- - |
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- partition@0 {
- compatible = "seama";
- reg = <0x0 0x800000>;
- label = "firmware";
- };
- };
diff --git a/Documentation/devicetree/bindings/mtd/partitions/simple-partition.yaml b/Documentation/devicetree/bindings/mtd/partitions/simple-partition.yaml
new file mode 100644
index 000000000000..14f5006c54a8
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/partitions/simple-partition.yaml
@@ -0,0 +1,61 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/partitions/simple-partition.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Simple partition types
+
+description:
+ Simple partition types which only define a "compatible" value and no custom
+ properties.
+
+maintainers:
+ - Rafał Miłecki <rafal@milecki.pl>
+ - Simon Glass <sjg@chromium.org>
+
+allOf:
+ - $ref: partition.yaml#
+
+properties:
+ compatible:
+ oneOf:
+ - const: brcm,bcm4908-firmware
+ description:
+ Broadcom BCM4908 CFE bootloader firmware partition
+
+ - const: brcm,bcm963xx-imagetag
+ description:
+ The BCM963XX ImageTag is a simple firmware header describing the
+ offsets and sizes of the rootfs and kernel parts contained in the
+ firmware.
+
+ - const: seama
+ description:
+ The SEAttle iMAge (SEAMA) partition is a type of partition used for
+ NAND flash devices. This type of flash image is found in some D-Link
+ routers such as DIR-645, DIR-842, DIR-859, DIR-860L, DIR-885L, DIR890L
+ and DCH-M225, as well as in WD and NEC routers on the ath79 (MIPS),
+ Broadcom BCM53xx, and RAMIPS platforms. This partition type does not
+ have children defined in the device tree, they need to be detected by
+ software.
+
+ - const: u-boot
+ description: >
+ u-boot.bin from U-Boot project.
+
+ This corresponds to a binman 'entry'. It is a single partition which holds
+ data of a defined type.
+
+ Binman uses the type to indicate what data file / type to place in the
+ partition. There are quite a number of binman-specific entry types, such as
+ section, fill and files, to be added later.
+
+ - const: tfa-bl31
+ description: >
+ bl31.bin or bl31.elf from TF-A project
+
+ This corresponds to a binman 'entry'. It is a single partition which holds
+ data of a defined type.
+
+unevaluatedProperties: false
diff --git a/Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml b/Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml
index a24bbaac3a90..40e6eaab03ce 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/tplink,safeloader-partitions.yaml
@@ -38,7 +38,7 @@ properties:
patternProperties:
"^partition-.*$":
- $ref: partition.yaml#
+ $ref: partition.yaml#/$defs/partition-node
required:
- partitions-table-offset
diff --git a/Documentation/devicetree/bindings/mtd/partitions/u-boot.yaml b/Documentation/devicetree/bindings/mtd/partitions/u-boot.yaml
index 327fa872c001..d51bdcb7e585 100644
--- a/Documentation/devicetree/bindings/mtd/partitions/u-boot.yaml
+++ b/Documentation/devicetree/bindings/mtd/partitions/u-boot.yaml
@@ -29,7 +29,7 @@ properties:
patternProperties:
"^partition-.*$":
- $ref: partition.yaml#
+ $ref: partition.yaml#/$defs/partition-node
unevaluatedProperties: false
diff --git a/Documentation/devicetree/bindings/mtd/spear_smi.txt b/Documentation/devicetree/bindings/mtd/spear_smi.txt
deleted file mode 100644
index c41873e92d26..000000000000
--- a/Documentation/devicetree/bindings/mtd/spear_smi.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-* SPEAr SMI
-
-Required properties:
-- compatible : "st,spear600-smi"
-- reg : Address range of the mtd chip
-- #address-cells, #size-cells : Must be present if the device has sub-nodes
- representing partitions.
-- interrupts: Should contain the STMMAC interrupts
-- clock-rate : Functional clock rate of SMI in Hz
-
-Optional properties:
-- st,smi-fast-mode : Flash supports read in fast mode
-
-Example:
-
- smi: flash@fc000000 {
- compatible = "st,spear600-smi";
- #address-cells = <1>;
- #size-cells = <1>;
- reg = <0xfc000000 0x1000>;
- interrupt-parent = <&vic1>;
- interrupts = <12>;
- clock-rate = <50000000>; /* 50MHz */
-
- flash@f8000000 {
- st,smi-fast-mode;
- ...
- };
- };
diff --git a/Documentation/devicetree/bindings/mtd/st,spear600-smi.yaml b/Documentation/devicetree/bindings/mtd/st,spear600-smi.yaml
new file mode 100644
index 000000000000..8fe27aae7527
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/st,spear600-smi.yaml
@@ -0,0 +1,72 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/st,spear600-smi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics SPEAr600 Serial Memory Interface (SMI) Controller
+
+maintainers:
+ - Richard Weinberger <richard@nod.at>
+
+description:
+ The SPEAr600 Serial Memory Interface (SMI) is a dedicated serial flash
+ controller supporting up to four chip selects for serial NOR flashes
+ connected in parallel. The controller is memory-mapped and the attached
+ flash devices appear in the CPU address space.The driver
+ (drivers/mtd/devices/spear_smi.c) probes the attached flashes
+ dynamically by sending commands (e.g., RDID) to each bank.
+ Flash sub nodes describe the memory range and optional per-flash
+ properties.
+
+allOf:
+ - $ref: mtd.yaml#
+
+properties:
+ compatible:
+ const: st,spear600-smi
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ "#address-cells":
+ const: 1
+
+ "#size-cells":
+ const: 1
+
+ clock-rate:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Functional clock rate of the SMI controller in Hz.
+
+ st,smi-fast-mode:
+ type: boolean
+ description: Indicates that the attached flash supports fast read mode.
+
+required:
+ - compatible
+ - reg
+ - clock-rate
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ flash@fc000000 {
+ compatible = "st,spear600-smi";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ reg = <0xfc000000 0x1000>;
+ interrupt-parent = <&vic1>;
+ interrupts = <12>;
+ clock-rate = <50000000>; /* 50 MHz */
+
+ flash@f8000000 {
+ reg = <0xfc000000 0x1000>;
+ st,smi-fast-mode;
+ };
+ };
+...
diff --git a/Documentation/devicetree/bindings/mtd/st,spi-fsm.yaml b/Documentation/devicetree/bindings/mtd/st,spi-fsm.yaml
new file mode 100644
index 000000000000..77099dc0fe53
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/st,spi-fsm.yaml
@@ -0,0 +1,68 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/st,spi-fsm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: STMicroelectronics SPI FSM Serial NOR Flash Controller
+
+maintainers:
+ - Angus Clark <angus.clark@st.com>
+
+description:
+ The STMicroelectronics Fast Sequence Mode (FSM) controller is a dedicated
+ hardware accelerator integrated in older STiH4xx/STiDxxx set-top box SoCs
+ (such as STiH407, STiH416, STiD127). It connects directly to a single
+ external serial flash device used as the primary boot device. The FSM
+ executes hard-coded or configurable instruction sequences in hardware,
+ providing low-latency reads suitable for execute-in-place (XIP) boot
+ and high read bandwidth.
+
+properties:
+ compatible:
+ const: st,spi-fsm
+
+ reg:
+ maxItems: 1
+
+ reg-names:
+ const: spi-fsm
+
+ interrupts:
+ maxItems: 1
+
+ st,syscfg:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description: Phandle to the system configuration registers used for boot-device selection.
+
+ st,boot-device-reg:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Offset of the boot-device register within the st,syscfg node.
+
+ st,boot-device-spi:
+ $ref: /schemas/types.yaml#/definitions/uint32
+ description: Expected boot-device value when booting from this SPI controller.
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - interrupts
+ - pinctrl-0
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ spifsm@fe902000 {
+ compatible = "st,spi-fsm";
+ reg = <0xfe902000 0x1000>;
+ reg-names = "spi-fsm";
+ interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
+ pinctrl-0 = <&pinctrl_fsm>;
+ st,syscfg = <&syscfg_rear>;
+ st,boot-device-reg = <0x958>;
+ st,boot-device-spi = <0x1a>;
+ };
+...
diff --git a/Documentation/devicetree/bindings/mtd/st-fsm.txt b/Documentation/devicetree/bindings/mtd/st-fsm.txt
deleted file mode 100644
index 54cef9ef3083..000000000000
--- a/Documentation/devicetree/bindings/mtd/st-fsm.txt
+++ /dev/null
@@ -1,25 +0,0 @@
-* ST-Microelectronics SPI FSM Serial (NOR) Flash Controller
-
-Required properties:
- - compatible : Should be "st,spi-fsm"
- - reg : Contains register's location and length.
- - reg-names : Should contain the reg names "spi-fsm"
- - interrupts : The interrupt number
- - pinctrl-0 : Standard Pinctrl phandle (see: pinctrl/pinctrl-bindings.txt)
-
-Optional properties:
- - st,syscfg : Phandle to boot-device system configuration registers
- - st,boot-device-reg : Address of the aforementioned boot-device register(s)
- - st,boot-device-spi : Expected boot-device value if booted via this device
-
-Example:
- spifsm: spifsm@fe902000{
- compatible = "st,spi-fsm";
- reg = <0xfe902000 0x1000>;
- reg-names = "spi-fsm";
- pinctrl-0 = <&pinctrl_fsm>;
- st,syscfg = <&syscfg_rear>;
- st,boot-device-reg = <0x958>;
- st,boot-device-spi = <0x1a>;
- };
-
diff --git a/Documentation/devicetree/bindings/mtd/ti,davinci-nand.yaml b/Documentation/devicetree/bindings/mtd/ti,davinci-nand.yaml
index ed24b0ea86e5..7619b19e7a04 100644
--- a/Documentation/devicetree/bindings/mtd/ti,davinci-nand.yaml
+++ b/Documentation/devicetree/bindings/mtd/ti,davinci-nand.yaml
@@ -24,7 +24,9 @@ properties:
- description: AEMIF control registers.
partitions:
- $ref: /schemas/mtd/partitions/partitions.yaml
+ type: object
+ required:
+ - compatible
ti,davinci-chipselect:
description:
diff --git a/Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml b/Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml
index 7d3ace4f5505..8db991dee7eb 100644
--- a/Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml
+++ b/Documentation/devicetree/bindings/mtd/ti,gpmc-onenand.yaml
@@ -36,7 +36,7 @@ properties:
patternProperties:
"@[0-9a-f]+$":
- $ref: /schemas/mtd/partitions/partition.yaml
+ $ref: /schemas/mtd/partitions/partition.yaml#/$defs/partition-node
allOf:
- $ref: /schemas/memory-controllers/ti,gpmc-child.yaml