Commit b426433c authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull MTD updates from Miquel Raynal:
 "MTD:

   - Simon Glass wanted to support binman's output properties in order
     to check their validity using the binding checks and proposed
     changes with the missing properties as well as a binman compatible.

   - Krzysztof Kozlowski on his side shared a new yaml for describing
     Samsung's OneNAND interface.

   - The interface with NVMEM has also been slightly improved/fixed,
     especially now that OTP are also supported in the NAND subsystem.

   - Along with these changes, small cleanups have also been contributed
     around ID tables, structure sizes, arithmetic checks and comments.

  Raw NAND subsystem:

   - Two small fixes, one in the Hynix vendor code for properly
     returning an error which might have been ignored and another in the
     Davinci driver to properly synchronize the controller with the gpio
     domain.

  SPI NOR subsystem:

   - SPI NOR now uses div_u64() instead of div64_u64() in places where
     the divisor is 32 bits. Many 32 bit architectures can optimize this
     variant better than a full 64 bit divide"

* tag 'mtd/for-6.10' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
  mtd: spi-nor: replace unnecessary div64_u64() with div_u64()
  mtd: mchp23k256: drop unneeded MODULE_ALIAS
  dt-bindings: mtd: fixed-partition: Add binman compatibles
  dt-bindings: mtd: fixed-partitions: Add alignment properties
  mtd: maps: sa1100-flash: Prefer struct_size over open coded arithmetic
  mtd: core: Align comment with an action in mtd_otp_nvmem_add()
  mtd: rawnand: hynix: fixed typo
  mtd: rawnand: davinci: Add dummy read after sending command
  mtd: partitions: redboot: Added conversion of operands to a larger type
  dt-bindings: mtd: Add Samsung S5Pv210 OneNAND
  mtd: core: Don't fail mtd_otp_nvmem_add() if OTP is unsupported
  mtd: core: Report error if first mtd_otp_size() call fails in mtd_otp_nvmem_add()
parents 8b06f753 552c9380
Loading
Loading
Loading
Loading
+53 −0
Original line number Diff line number Diff line
# 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>;
        };
    };
+72 −0
Original line number Diff line number Diff line
@@ -57,6 +57,57 @@ properties:
      user space from
    type: boolean

  align:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 2
    maximum: 0x80000000
    multipleOf: 2
    description:
      This sets the alignment of the entry in bytes.

      The entry offset is adjusted so that the entry starts on an aligned
      boundary within the containing section or image. For example ‘align =
      <16>’ means that the entry will start on a 16-byte boundary. This may
      mean that padding is added before the entry. The padding is part of
      the containing section but is not included in the entry, meaning that
      an empty space may be created before the entry starts. Alignment
      must be a power of 2. If ‘align’ is not provided, no alignment is
      performed.

  align-size:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 2
    maximum: 0x80000000
    multipleOf: 2
    description:
      This sets the alignment of the entry size in bytes. It must be a power
      of 2.

      For example, to ensure that the size of an entry is a multiple of 64
      bytes, set this to 64. While this does not affect the content of the
      entry itself (the padding is performed only when its parent section is
      assembled), the end result is that the entry ends with the padding
      bytes, so may grow. If ‘align-size’ is not provided, no alignment is
      performed.

  align-end:
    $ref: /schemas/types.yaml#/definitions/uint32
    minimum: 2
    maximum: 0x80000000
    multipleOf: 2
    description:
      This sets the alignment (in bytes) of the end of an entry with respect
      to the containing section. It must be a power of 2.

      Some entries require that they end on an alignment boundary,
      regardless of where they start. This does not move the start of the
      entry, so the content of the entry will still start at the beginning.
      But there may be padding at the end. While this does not affect the
      content of the entry itself (the padding is performed only when its
      parent section is assembled), the end result is that the entry ends
      with the padding bytes, so may grow. If ‘align-end’ is not provided,
      no alignment is performed.

if:
  not:
    required: [ reg ]
@@ -67,3 +118,24 @@ then:

# This is a generic file other binding inherit from and extend
additionalProperties: true

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>;
        };
    };
+65 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/mtd/samsung,s5pv210-onenand.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Samsung S5Pv210 SoC OneNAND Controller

maintainers:
  - Krzysztof Kozlowski <krzk@kernel.org>

properties:
  compatible:
    enum:
      - samsung,s5pv210-onenand

  reg:
    items:
      - description: Control registers
      - description: OneNAND interface nCE[0]
      - description: OneNAND interface nCE[1]

  clocks:
    maxItems: 2

  clock-names:
    items:
      - const: bus
      - const: onenand

  interrupts:
    maxItems: 1

required:
  - compatible
  - reg
  - clocks
  - clock-names
  - interrupts

allOf:
  - $ref: nand-controller.yaml

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/clock/s5pv210.h>

    nand-controller@b0600000 {
        compatible = "samsung,s5pv210-onenand";
        reg = <0xb0600000 0x2000>,
              <0xb0000000 0x20000>,
              <0xb0040000 0x20000>;
        clocks = <&clocks CLK_NANDXL>, <&clocks DOUT_FLASH>;
        clock-names = "bus", "onenand";
        interrupt-parent = <&vic1>;
        interrupts = <31>;
        #address-cells = <1>;
        #size-cells = <0>;

        nand@0 {
            reg = <0>;
        };
    };
+5 −0
Original line number Diff line number Diff line
@@ -3671,6 +3671,11 @@ F: Documentation/filesystems/bfs.rst
F:	fs/bfs/
F:	include/uapi/linux/bfs_fs.h
BINMAN
M:	Simon Glass <sjg@chromium.org>
S:	Supported
F:	Documentation/devicetree/bindings/mtd/partitions/binman*
BITMAP API
M:	Yury Norov <yury.norov@gmail.com>
R:	Rasmus Villemoes <linux@rasmusvillemoes.dk>
+0 −1
Original line number Diff line number Diff line
@@ -257,4 +257,3 @@ module_spi_driver(mchp23k256_driver);
MODULE_DESCRIPTION("MTD SPI driver for MCHP23K256 RAM chips");
MODULE_AUTHOR("Andrew Lunn <andre@lunn.ch>");
MODULE_LICENSE("GPL v2");
MODULE_ALIAS("spi:mchp23k256");
Loading