# 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>;
    };