# Copyright (c) 2020, Teslabs Engineering S.L.
# SPDX-License-Identifier: Apache-2.0

description: |
  STM32 Flexible Memory Controller (FMC).

  The FMC allows to interface with static-memory mapped external devices such as
  SRAM, NOR Flash, NAND Flash, SDRAM...

  All external memories share the addresses, data and control signals with the
  controller. Each external device is accessed by means of a unique chip select.
  The FMC performs only one access at a time to an external device.

  The flexible memory controller includes three memory controllers:

    - NOR/PSRAM memory controller
    - NAND memory controller (some devices also support PC Card)
    - Synchronous DRAM (SDRAM/Mobile LPSDR SDRAM) controller

  Each memory controller is defined below the FMC DeviceTree node and is managed
  by a separate Zephyr device. However, because signals are shared the FMC
  device handles the signals and the peripheral clocks. FMC can be enabled
  in your board DeviceTree file like this:

  &fmc {
      status = "okay";
      pinctrl-0 = <&fmc_nbl0_pe0 &fmc_nbl1_pe1 &fmc_nbl2_pi4...>;
  };

compatible: "st,stm32-fmc"

include: [base.yaml, pinctrl-device.yaml]

properties:
    reg:
      required: true

    clocks:
      required: true

    pinctrl-0:
      required: true

    pinctrl-names:
      required: true
