11ab2f86fSChristophe Kerello# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 21ab2f86fSChristophe Kerello%YAML 1.2 31ab2f86fSChristophe Kerello--- 41ab2f86fSChristophe Kerello$id: http://devicetree.org/schemas/memory-controllers/st,stm32-fmc2-ebi.yaml# 51ab2f86fSChristophe Kerello$schema: http://devicetree.org/meta-schemas/core.yaml# 61ab2f86fSChristophe Kerello 71ab2f86fSChristophe Kerellotitle: STMicroelectronics Flexible Memory Controller 2 (FMC2) Bindings 81ab2f86fSChristophe Kerello 91ab2f86fSChristophe Kerellodescription: | 101ab2f86fSChristophe Kerello The FMC2 functional block makes the interface with: synchronous and 111ab2f86fSChristophe Kerello asynchronous static devices (such as PSNOR, PSRAM or other memory-mapped 121ab2f86fSChristophe Kerello peripherals) and NAND flash memories. 131ab2f86fSChristophe Kerello Its main purposes are: 141ab2f86fSChristophe Kerello - to translate AXI transactions into the appropriate external device 151ab2f86fSChristophe Kerello protocol 161ab2f86fSChristophe Kerello - to meet the access time requirements of the external devices 171ab2f86fSChristophe Kerello All external devices share the addresses, data and control signals with the 181ab2f86fSChristophe Kerello controller. Each external device is accessed by means of a unique Chip 191ab2f86fSChristophe Kerello Select. The FMC2 performs only one access at a time to an external device. 201ab2f86fSChristophe Kerello 211ab2f86fSChristophe Kerellomaintainers: 22f4eedebdSPatrice Chotard - Christophe Kerello <christophe.kerello@foss.st.com> 231ab2f86fSChristophe Kerello 241ab2f86fSChristophe Kerelloproperties: 251ab2f86fSChristophe Kerello compatible: 261ab2f86fSChristophe Kerello const: st,stm32mp1-fmc2-ebi 271ab2f86fSChristophe Kerello 281ab2f86fSChristophe Kerello reg: 291ab2f86fSChristophe Kerello maxItems: 1 301ab2f86fSChristophe Kerello 311ab2f86fSChristophe Kerello clocks: 321ab2f86fSChristophe Kerello maxItems: 1 331ab2f86fSChristophe Kerello 341ab2f86fSChristophe Kerello resets: 351ab2f86fSChristophe Kerello maxItems: 1 361ab2f86fSChristophe Kerello 371ab2f86fSChristophe Kerello "#address-cells": 381ab2f86fSChristophe Kerello const: 2 391ab2f86fSChristophe Kerello 401ab2f86fSChristophe Kerello "#size-cells": 411ab2f86fSChristophe Kerello const: 1 421ab2f86fSChristophe Kerello 431ab2f86fSChristophe Kerello ranges: 441ab2f86fSChristophe Kerello description: | 451ab2f86fSChristophe Kerello Reflects the memory layout with four integer values per bank. Format: 461ab2f86fSChristophe Kerello <bank-number> 0 <address of the bank> <size> 471ab2f86fSChristophe Kerello 481ab2f86fSChristophe KerellopatternProperties: 491ab2f86fSChristophe Kerello "^.*@[0-4],[a-f0-9]+$": 501ab2f86fSChristophe Kerello type: object 51*a11a5debSMarek Vasut $ref: mc-peripheral-props.yaml# 521ab2f86fSChristophe Kerello 531ab2f86fSChristophe Kerellorequired: 541ab2f86fSChristophe Kerello - "#address-cells" 551ab2f86fSChristophe Kerello - "#size-cells" 561ab2f86fSChristophe Kerello - compatible 571ab2f86fSChristophe Kerello - reg 581ab2f86fSChristophe Kerello - clocks 591ab2f86fSChristophe Kerello - ranges 601ab2f86fSChristophe Kerello 615be478f9SRob HerringadditionalProperties: false 625be478f9SRob Herring 631ab2f86fSChristophe Kerelloexamples: 641ab2f86fSChristophe Kerello - | 651ab2f86fSChristophe Kerello #include <dt-bindings/interrupt-controller/arm-gic.h> 661ab2f86fSChristophe Kerello #include <dt-bindings/clock/stm32mp1-clks.h> 671ab2f86fSChristophe Kerello #include <dt-bindings/reset/stm32mp1-resets.h> 681ab2f86fSChristophe Kerello memory-controller@58002000 { 691ab2f86fSChristophe Kerello #address-cells = <2>; 701ab2f86fSChristophe Kerello #size-cells = <1>; 711ab2f86fSChristophe Kerello compatible = "st,stm32mp1-fmc2-ebi"; 721ab2f86fSChristophe Kerello reg = <0x58002000 0x1000>; 731ab2f86fSChristophe Kerello clocks = <&rcc FMC_K>; 741ab2f86fSChristophe Kerello resets = <&rcc FMC_R>; 751ab2f86fSChristophe Kerello 761ab2f86fSChristophe Kerello ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */ 771ab2f86fSChristophe Kerello <1 0 0x64000000 0x04000000>, /* EBI CS 2 */ 781ab2f86fSChristophe Kerello <2 0 0x68000000 0x04000000>, /* EBI CS 3 */ 791ab2f86fSChristophe Kerello <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */ 801ab2f86fSChristophe Kerello <4 0 0x80000000 0x10000000>; /* NAND */ 811ab2f86fSChristophe Kerello 821ab2f86fSChristophe Kerello psram@0,0 { 831ab2f86fSChristophe Kerello compatible = "mtd-ram"; 841ab2f86fSChristophe Kerello reg = <0 0x00000000 0x100000>; 851ab2f86fSChristophe Kerello bank-width = <2>; 861ab2f86fSChristophe Kerello 871ab2f86fSChristophe Kerello st,fmc2-ebi-cs-transaction-type = <1>; 881ab2f86fSChristophe Kerello st,fmc2-ebi-cs-address-setup-ns = <60>; 891ab2f86fSChristophe Kerello st,fmc2-ebi-cs-data-setup-ns = <30>; 901ab2f86fSChristophe Kerello st,fmc2-ebi-cs-bus-turnaround-ns = <5>; 911ab2f86fSChristophe Kerello }; 921ab2f86fSChristophe Kerello 931ab2f86fSChristophe Kerello nand-controller@4,0 { 941ab2f86fSChristophe Kerello #address-cells = <1>; 951ab2f86fSChristophe Kerello #size-cells = <0>; 961ab2f86fSChristophe Kerello compatible = "st,stm32mp1-fmc2-nfc"; 971ab2f86fSChristophe Kerello reg = <4 0x00000000 0x1000>, 981ab2f86fSChristophe Kerello <4 0x08010000 0x1000>, 991ab2f86fSChristophe Kerello <4 0x08020000 0x1000>, 1001ab2f86fSChristophe Kerello <4 0x01000000 0x1000>, 1011ab2f86fSChristophe Kerello <4 0x09010000 0x1000>, 1021ab2f86fSChristophe Kerello <4 0x09020000 0x1000>; 1031ab2f86fSChristophe Kerello interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1041ab2f86fSChristophe Kerello dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>, 1051ab2f86fSChristophe Kerello <&mdma1 20 0x2 0x12000a08 0x0 0x0>, 1061ab2f86fSChristophe Kerello <&mdma1 21 0x2 0x12000a0a 0x0 0x0>; 1071ab2f86fSChristophe Kerello dma-names = "tx", "rx", "ecc"; 1081ab2f86fSChristophe Kerello 1091ab2f86fSChristophe Kerello nand@0 { 1101ab2f86fSChristophe Kerello reg = <0>; 1111ab2f86fSChristophe Kerello nand-on-flash-bbt; 1121ab2f86fSChristophe Kerello #address-cells = <1>; 1131ab2f86fSChristophe Kerello #size-cells = <1>; 1141ab2f86fSChristophe Kerello }; 1151ab2f86fSChristophe Kerello }; 1161ab2f86fSChristophe Kerello }; 1171ab2f86fSChristophe Kerello 1181ab2f86fSChristophe Kerello... 119