# 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

  reg:
    minItems: 6
    maxItems: 7

  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

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

...
