46 lines
1.3 KiB
YAML
46 lines
1.3 KiB
YAML
# 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
|