# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/mtd/st,stm32-fmc2-nand.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: STMicroelectronics Flexible Memory Controller 2 (FMC2)

maintainers:
  - Christophe Kerello <christophe.kerello@foss.st.com>

properties:
  compatible:
    enum:
      - st,stm32mp15-fmc2
      - st,stm32mp1-fmc2-nfc
      - st,stm32mp25-fmc2-nfc

  reg:
    minItems: 6
    maxItems: 12

  interrupts:
    maxItems: 1

  dmas:
    items:
      - description: tx DMA channel
      - description: rx DMA channel
      - description: ecc DMA channel

  dma-names:
    items:
      - const: tx
      - const: rx
      - const: ecc

patternProperties:
  "^nand@[a-f0-9]$":
    type: object
    $ref: raw-nand-chip.yaml
    properties:
      nand-ecc-step-size:
        const: 512

      nand-ecc-strength:
        enum: [1, 4, 8]

    unevaluatedProperties: false

allOf:
  - $ref: nand-controller.yaml#

  - if:
      properties:
        compatible:
          contains:
            const: st,stm32mp15-fmc2
    then:
      properties:
        reg:
          items:
            - description: Registers
            - 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

        clocks:
          maxItems: 1

        resets:
          maxItems: 1

      required:
        - clocks

  - if:
      properties:
        compatible:
          contains:
            const: st,stm32mp1-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

  - 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
  - interrupts

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/clock/stm32mp1-clks.h>
    #include <dt-bindings/reset/stm32mp1-resets.h>

    nand-controller@58002000 {
        compatible = "st,stm32mp15-fmc2";
        reg = <0x58002000 0x1000>,
              <0x80000000 0x1000>,
              <0x88010000 0x1000>,
              <0x88020000 0x1000>,
              <0x81000000 0x1000>,
              <0x89010000 0x1000>,
              <0x89020000 0x1000>;
        interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
        dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>,
               <&mdma1 20 0x2 0x12000a08 0x0 0x0>,
               <&mdma1 21 0x2 0x12000a0a 0x0 0x0>;
        dma-names = "tx", "rx", "ecc";
        clocks = <&rcc FMC_K>;
        resets = <&rcc FMC_R>;
        #address-cells = <1>;
        #size-cells = <0>;

        nand@0 {
            reg = <0>;
            nand-on-flash-bbt;
            #address-cells = <1>;
            #size-cells = <1>;
        };
    };

...
