Commit d3353719 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull mtd updates from Miquel Raynal:
 "MTD core changes:
   - Call of_platform_populate() for MTD partitions
   - Check devicetree alias for index
   - mtdoops:
      - Add a timestamp to the mtdoops header.
      - Create a header structure for the saved mtdoops.
      - Fix the size of the header read buffer.
   - mtdblock: Warn if opened on NAND
   - Bindings:
      - reserved-memory: Support MTD/block device
      - jedec,spi-nor: remove unneeded properties
      - Extend fixed-partitions binding
      - Add Sercomm (Suzhou) Corporation vendor prefix

  MTD driver changes:
   - st_spi_fsm: add missing clk_disable_unprepare() in stfsm_remove()
   - phram:
      - Allow cached mappings
      - Allow probing via reserved-memory
   - maps: ixp4xx: Drop driver
   - bcm47xxpart: Print correct offset on read error

  CFI driver changes:
   - Rename chip_ready variables
   - Add S29GL064N ID definition
   - Use chip_ready() for write on S29GL064N
   - Move and rename chip_check/chip_ready/chip_good_for_write

  NAND core changes:
   - Print offset instead of page number for bad blocks

  Raw NAND controller drivers:
   - Cadence: Fix possible null-ptr-deref in cadence_nand_dt_probe()
   - CS553X: simplify the return expression of cs553x_write_ctrl_byte()
   - Davinci: Remove redundant unsigned comparison to zero
   - Denali: Use managed device resources
   - GPMI:
      - Add large oob bch setting support
      - Rename the variable ecc_chunk_size
      - Uninline the gpmi_check_ecc function
      - Add strict ecc strength check
      - Refactor BCH geometry settings function
   - Intel: Fix possible null-ptr-deref in ebu_nand_probe()
   - MPC5121: Check before clk_disable_unprepare() not needed
   - Mtk:
      - MTD_NAND_ECC_MEDIATEK should depend on ARCH_MEDIATEK
      - Also parse the default nand-ecc-engine property if available
      - Make mtk_ecc.c a separated module
   - OMAP ELM:
      - Convert the bindings to yaml
      - Describe the bindings for AM64 ELM
      - Add support for its compatible
   - Renesas: Use runtime PM instead of the raw clock API and update the
     bindings accordingly
   - Rockchip: Check before clk_disable_unprepare() not needed
   - TMIO: Check return value after calling platform_get_resource()

  Raw NAND chip driver:
   - Kioxia: Add support for TH58NVG3S0HBAI4 and TC58NVG0S3HTA00

  SPI-NAND chip drivers:
   - Gigadevice:
      - Add support for:
         - GD5FxGM7xExxG
         - GD5F{2,4}GQ5xExxG
         - GD5F1GQ5RExxG
         - GD5FxGQ4xExxG
      - Fix Quad IO for GD5F1GQ5UExxG
   - XTX: Add support for XT26G0xA

  SPI NOR core changes:
   - Read back written SR value to make sure the write was done
     correctly.
   - Introduce a common function for Read ID that manufacturer drivers
     can use to verify the Octal DTR switch worked correctly.
   - Add helpers for read/write any register commands so manufacturer
     drivers don't open code it every time.
   - Clarify rdsr dummy cycles documentation.
   - Add debugfs entry to expose internal flash parameters and state.

  SPI NOR manufacturer drivers changes:
   - Add support for Winbond W25Q512NW-IM, and Eon EN25QH256A.
   - Move spi_nor_write_ear() to Winbond module since only Winbond
     flashes use it.
   - Rework Micron and Cypress Octal DTR enable methods to improve
     readability.
   - Use the common Read ID function to verify switch to Octal DTR mode
     for Micron and Cypress flashes.
   - Skip polling status on volatile register writes for Micron and
     Cypress flashes since the operation is instant"

* tag 'mtd/for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (68 commits)
  mtd: st_spi_fsm: add missing clk_disable_unprepare() in stfsm_remove()
  dt-bindings: mtd: partitions: Extend fixed-partitions binding
  dt-bindings: Add Sercomm (Suzhou) Corporation vendor prefix
  mtd: phram: Allow cached mappings
  mtd: call of_platform_populate() for MTD partitions
  mtd: rawnand: renesas: Use runtime PM instead of the raw clock API
  dt-bindings: mtd: renesas: Fix the NAND controller description
  mtd: rawnand: mpc5121: Check before clk_disable_unprepare() not needed
  mtd: rawnand: rockchip: Check before clk_disable_unprepare() not needed
  mtd: nand: MTD_NAND_ECC_MEDIATEK should depend on ARCH_MEDIATEK
  mtd: rawnand: cs553x: simplify the return expression of cs553x_write_ctrl_byte()
  mtd: rawnand: kioxia: Add support for TH58NVG3S0HBAI4
  mtd: spi-nor: debugfs: fix format specifier
  mtd: spi-nor: support eon en25qh256a variant
  mtd: spi-nor: winbond: add support for W25Q512NW-IM
  mtd: spi-nor: expose internal parameters via debugfs
  mtd: spi-nor: export spi_nor_hwcaps_pp2cmd()
  mtd: spi-nor: move spi_nor_write_ear() to winbond module
  mtd: spi-nor: amend the rdsr dummy cycles documentation
  mtd: cfi_cmdset_0002: Rename chip_ready variables
  ...
parents 076f222a 2c51d0d8
Loading
Loading
Loading
Loading
+0 −16
Original line number Diff line number Diff line
Error location module

Required properties:
- compatible: Must be "ti,am3352-elm"
- reg: physical base address and size of the registers map.
- interrupts: Interrupt number for the elm.

Optional properties:
- ti,hwmods: Name of the hwmod associated to the elm

Example:
elm: elm@0 {
	compatible = "ti,am3352-elm";
	reg = <0x48080000 0x2000>;
	interrupts = <4>;
};
+0 −8
Original line number Diff line number Diff line
@@ -50,10 +50,6 @@ properties:
    minItems: 1
    maxItems: 2

  spi-max-frequency: true
  spi-rx-bus-width: true
  spi-tx-bus-width: true

  m25p,fast-read:
    type: boolean
    description:
@@ -74,8 +70,6 @@ properties:
      be used on such systems, to denote the absence of a reliable reset
      mechanism.

  label: true

  partitions:
    type: object

@@ -99,8 +93,6 @@ examples:
        #size-cells = <0>;

        flash@0 {
            #address-cells = <1>;
            #size-cells = <1>;
            compatible = "spansion,m25p80", "jedec,spi-nor";
            reg = <0>;
            spi-max-frequency = <40000000>;
+53 −2
Original line number Diff line number Diff line
@@ -19,7 +19,11 @@ maintainers:

properties:
  compatible:
    const: fixed-partitions
    oneOf:
      - const: fixed-partitions
      - items:
          - const: sercomm,sc-partitions
          - const: fixed-partitions

  "#address-cells": true

@@ -27,7 +31,24 @@ properties:

patternProperties:
  "@[0-9a-f]+$":
    $ref: "partition.yaml#"
    allOf:
      - $ref: "partition.yaml#"
      - if:
          properties:
            compatible:
              contains:
                const: sercomm,sc-partitions
        then:
          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

required:
  - "#address-cells"
@@ -52,6 +73,7 @@ examples:
            reg = <0x0100000 0x200000>;
        };
    };

  - |
    partitions {
        compatible = "fixed-partitions";
@@ -64,6 +86,7 @@ examples:
            reg = <0x00000000 0x1 0x00000000>;
        };
    };

  - |
    partitions {
        compatible = "fixed-partitions";
@@ -82,6 +105,7 @@ examples:
            reg = <0x2 0x00000000 0x1 0x00000000>;
        };
    };

  - |
    partitions {
        compatible = "fixed-partitions";
@@ -119,3 +143,30 @@ examples:
            };
        };
    };

  - |
    partitions {
        compatible = "sercomm,sc-partitions", "fixed-partitions";
        #address-cells = <1>;
        #size-cells = <1>;

        partition@0 {
            label = "u-boot";
            reg = <0x0 0x100000>;
            sercomm,scpart-id = <0>;
            read-only;
        };

        partition@100000 {
            label = "dynamic partition map";
            reg = <0x100000 0x100000>;
            sercomm,scpart-id = <1>;
        };

        partition@200000 {
            label = "Factory";
            reg = <0x200000 0x100000>;
            sercomm,scpart-id = <2>;
            read-only;
        };
    };
+5 −0
Original line number Diff line number Diff line
@@ -36,11 +36,15 @@ properties:
      - const: hclk
      - const: eclk

  power-domains:
    maxItems: 1

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

unevaluatedProperties: false
@@ -56,6 +60,7 @@ examples:
        interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&sysctrl R9A06G032_HCLK_NAND>, <&sysctrl R9A06G032_CLK_NAND>;
        clock-names = "hclk", "eclk";
        power-domains = <&sysctrl>;
        #address-cells = <1>;
        #size-cells = <0>;
    };
+72 −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/ti,elm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Texas Instruments Error Location Module (ELM).

maintainers:
  - Roger Quadros <rogerq@kernel.org>

description:
  ELM module is used together with GPMC and NAND Flash to detect
  errors and the location of the error based on BCH algorithms
  so they can be corrected if possible.

properties:
  compatible:
    enum:
      - ti,am3352-elm
      - ti,am64-elm

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1
    description: Functional clock.

  clock-names:
    items:
      - const: fck

  power-domains:
    maxItems: 1

  ti,hwmods:
    description:
      Name of the HWMOD associated with ELM. This is for legacy
      platforms only.
    $ref: /schemas/types.yaml#/definitions/string
    deprecated: true

required:
  - compatible
  - reg
  - interrupts

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: ti,am64-elm
    then:
      required:
        - clocks
        - clock-names
        - power-domains

additionalProperties: false

examples:
  - |
    elm: ecc@0 {
        compatible = "ti,am3352-elm";
        reg = <0x0 0x2000>;
        interrupts = <4>;
    };
Loading