1# Copyright (c) 2020, Teslabs Engineering S.L.
2# SPDX-License-Identifier: Apache-2.0
3
4description: |
5  STM32 Flexible Memory Controller (FMC).
6
7  The FMC allows to interface with static-memory mapped external devices such as
8  SRAM, NOR Flash, NAND Flash, SDRAM...
9
10  All external memories share the addresses, data and control signals with the
11  controller. Each external device is accessed by means of a unique chip select.
12  The FMC performs only one access at a time to an external device.
13
14  The flexible memory controller includes three memory controllers:
15
16    - NOR/PSRAM memory controller
17    - NAND memory controller (some devices also support PC Card)
18    - Synchronous DRAM (SDRAM/Mobile LPSDR SDRAM) controller
19
20  Each memory controller is defined below the FMC DeviceTree node and is managed
21  by a separate Zephyr device. However, because signals are shared the FMC
22  device handles the signals and the peripheral clocks. FMC can be enabled
23  in your board DeviceTree file like this:
24
25  &fmc {
26      status = "okay";
27      pinctrl-0 = <&fmc_nbl0_pe0 &fmc_nbl1_pe1 &fmc_nbl2_pi4...>;
28  };
29
30compatible: "st,stm32-fmc"
31
32include: [base.yaml, pinctrl-device.yaml]
33
34properties:
35  reg:
36    required: true
37
38  clocks:
39    required: true
40
41  pinctrl-0:
42    required: true
43
44  pinctrl-names:
45    required: true
46