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 784e85359SKrzysztof Kozlowskititle: STMicroelectronics Flexible Memory Controller 2 (FMC2) 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: 2697dcd1efSChristophe Kerello enum: 2797dcd1efSChristophe Kerello - st,stm32mp1-fmc2-ebi 2897dcd1efSChristophe Kerello - st,stm32mp25-fmc2-ebi 291ab2f86fSChristophe Kerello 301ab2f86fSChristophe Kerello reg: 311ab2f86fSChristophe Kerello maxItems: 1 321ab2f86fSChristophe Kerello 331ab2f86fSChristophe Kerello clocks: 341ab2f86fSChristophe Kerello maxItems: 1 351ab2f86fSChristophe Kerello 361ab2f86fSChristophe Kerello resets: 371ab2f86fSChristophe Kerello maxItems: 1 381ab2f86fSChristophe Kerello 3997dcd1efSChristophe Kerello power-domains: 4097dcd1efSChristophe Kerello maxItems: 1 4197dcd1efSChristophe Kerello 421ab2f86fSChristophe Kerello "#address-cells": 431ab2f86fSChristophe Kerello const: 2 441ab2f86fSChristophe Kerello 451ab2f86fSChristophe Kerello "#size-cells": 461ab2f86fSChristophe Kerello const: 1 471ab2f86fSChristophe Kerello 481ab2f86fSChristophe Kerello ranges: 491ab2f86fSChristophe Kerello description: | 501ab2f86fSChristophe Kerello Reflects the memory layout with four integer values per bank. Format: 511ab2f86fSChristophe Kerello <bank-number> 0 <address of the bank> <size> 521ab2f86fSChristophe Kerello 53*02ec75edSGatien Chevallier access-controllers: 54*02ec75edSGatien Chevallier minItems: 1 55*02ec75edSGatien Chevallier maxItems: 2 56*02ec75edSGatien Chevallier 571ab2f86fSChristophe KerellopatternProperties: 581ab2f86fSChristophe Kerello "^.*@[0-4],[a-f0-9]+$": 59e62fc182SRob Herring additionalProperties: true 601ab2f86fSChristophe Kerello type: object 61a11a5debSMarek Vasut $ref: mc-peripheral-props.yaml# 621ab2f86fSChristophe Kerello 631ab2f86fSChristophe Kerellorequired: 641ab2f86fSChristophe Kerello - "#address-cells" 651ab2f86fSChristophe Kerello - "#size-cells" 661ab2f86fSChristophe Kerello - compatible 671ab2f86fSChristophe Kerello - reg 681ab2f86fSChristophe Kerello - clocks 691ab2f86fSChristophe Kerello - ranges 701ab2f86fSChristophe Kerello 715be478f9SRob HerringadditionalProperties: false 725be478f9SRob Herring 731ab2f86fSChristophe Kerelloexamples: 741ab2f86fSChristophe Kerello - | 751ab2f86fSChristophe Kerello #include <dt-bindings/interrupt-controller/arm-gic.h> 761ab2f86fSChristophe Kerello #include <dt-bindings/clock/stm32mp1-clks.h> 771ab2f86fSChristophe Kerello #include <dt-bindings/reset/stm32mp1-resets.h> 781ab2f86fSChristophe Kerello memory-controller@58002000 { 791ab2f86fSChristophe Kerello #address-cells = <2>; 801ab2f86fSChristophe Kerello #size-cells = <1>; 811ab2f86fSChristophe Kerello compatible = "st,stm32mp1-fmc2-ebi"; 821ab2f86fSChristophe Kerello reg = <0x58002000 0x1000>; 831ab2f86fSChristophe Kerello clocks = <&rcc FMC_K>; 841ab2f86fSChristophe Kerello resets = <&rcc FMC_R>; 851ab2f86fSChristophe Kerello 861ab2f86fSChristophe Kerello ranges = <0 0 0x60000000 0x04000000>, /* EBI CS 1 */ 871ab2f86fSChristophe Kerello <1 0 0x64000000 0x04000000>, /* EBI CS 2 */ 881ab2f86fSChristophe Kerello <2 0 0x68000000 0x04000000>, /* EBI CS 3 */ 891ab2f86fSChristophe Kerello <3 0 0x6c000000 0x04000000>, /* EBI CS 4 */ 901ab2f86fSChristophe Kerello <4 0 0x80000000 0x10000000>; /* NAND */ 911ab2f86fSChristophe Kerello 921ab2f86fSChristophe Kerello psram@0,0 { 931ab2f86fSChristophe Kerello compatible = "mtd-ram"; 941ab2f86fSChristophe Kerello reg = <0 0x00000000 0x100000>; 951ab2f86fSChristophe Kerello bank-width = <2>; 961ab2f86fSChristophe Kerello 971ab2f86fSChristophe Kerello st,fmc2-ebi-cs-transaction-type = <1>; 981ab2f86fSChristophe Kerello st,fmc2-ebi-cs-address-setup-ns = <60>; 991ab2f86fSChristophe Kerello st,fmc2-ebi-cs-data-setup-ns = <30>; 1001ab2f86fSChristophe Kerello st,fmc2-ebi-cs-bus-turnaround-ns = <5>; 1011ab2f86fSChristophe Kerello }; 1021ab2f86fSChristophe Kerello 1031ab2f86fSChristophe Kerello nand-controller@4,0 { 1041ab2f86fSChristophe Kerello #address-cells = <1>; 1051ab2f86fSChristophe Kerello #size-cells = <0>; 1061ab2f86fSChristophe Kerello compatible = "st,stm32mp1-fmc2-nfc"; 1071ab2f86fSChristophe Kerello reg = <4 0x00000000 0x1000>, 1081ab2f86fSChristophe Kerello <4 0x08010000 0x1000>, 1091ab2f86fSChristophe Kerello <4 0x08020000 0x1000>, 1101ab2f86fSChristophe Kerello <4 0x01000000 0x1000>, 1111ab2f86fSChristophe Kerello <4 0x09010000 0x1000>, 1121ab2f86fSChristophe Kerello <4 0x09020000 0x1000>; 1131ab2f86fSChristophe Kerello interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 1141ab2f86fSChristophe Kerello dmas = <&mdma1 20 0x2 0x12000a02 0x0 0x0>, 1151ab2f86fSChristophe Kerello <&mdma1 20 0x2 0x12000a08 0x0 0x0>, 1161ab2f86fSChristophe Kerello <&mdma1 21 0x2 0x12000a0a 0x0 0x0>; 1171ab2f86fSChristophe Kerello dma-names = "tx", "rx", "ecc"; 1181ab2f86fSChristophe Kerello 1191ab2f86fSChristophe Kerello nand@0 { 1201ab2f86fSChristophe Kerello reg = <0>; 1211ab2f86fSChristophe Kerello nand-on-flash-bbt; 1221ab2f86fSChristophe Kerello #address-cells = <1>; 1231ab2f86fSChristophe Kerello #size-cells = <1>; 1241ab2f86fSChristophe Kerello }; 1251ab2f86fSChristophe Kerello }; 1261ab2f86fSChristophe Kerello }; 1271ab2f86fSChristophe Kerello 1281ab2f86fSChristophe Kerello... 129