1985ede63SLi Yang# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2985ede63SLi Yang%YAML 1.2 3985ede63SLi Yang--- 4985ede63SLi Yang$id: http://devicetree.org/schemas/memory-controllers/fsl/fsl,ifc.yaml# 5985ede63SLi Yang$schema: http://devicetree.org/meta-schemas/core.yaml# 6985ede63SLi Yang 7985ede63SLi Yangtitle: FSL/NXP Integrated Flash Controller 8985ede63SLi Yang 9985ede63SLi Yangmaintainers: 10*815cc771SMichael Walle - Shawn Guo <shawnguo@kernel.org> 11985ede63SLi Yang 12985ede63SLi Yangdescription: | 13985ede63SLi Yang NXP's integrated flash controller (IFC) is an advanced version of the 14985ede63SLi Yang enhanced local bus controller which includes similar programming and signal 15985ede63SLi Yang interfaces with an extended feature set. The IFC provides access to multiple 16985ede63SLi Yang external memory types, such as NAND flash (SLC and MLC), NOR flash, EPROM, 17985ede63SLi Yang SRAM and other memories where address and data are shared on a bus. 18985ede63SLi Yang 19985ede63SLi Yangproperties: 20985ede63SLi Yang $nodename: 21985ede63SLi Yang pattern: "^memory-controller@[0-9a-f]+$" 22985ede63SLi Yang 23985ede63SLi Yang compatible: 24985ede63SLi Yang const: fsl,ifc 25985ede63SLi Yang 26985ede63SLi Yang "#address-cells": 27985ede63SLi Yang enum: [2, 3] 28985ede63SLi Yang description: | 29985ede63SLi Yang Should be either two or three. The first cell is the chipselect 30985ede63SLi Yang number, and the remaining cells are the offset into the chipselect. 31985ede63SLi Yang 32985ede63SLi Yang "#size-cells": 33985ede63SLi Yang enum: [1, 2] 34985ede63SLi Yang description: | 35985ede63SLi Yang Either one or two, depending on how large each chipselect can be. 36985ede63SLi Yang 37985ede63SLi Yang reg: 38985ede63SLi Yang maxItems: 1 39985ede63SLi Yang 40985ede63SLi Yang interrupts: 41985ede63SLi Yang minItems: 1 42985ede63SLi Yang maxItems: 2 43985ede63SLi Yang description: | 44985ede63SLi Yang IFC may have one or two interrupts. If two interrupt specifiers are 45985ede63SLi Yang present, the first is the "common" interrupt (CM_EVTER_STAT), and the 46985ede63SLi Yang second is the NAND interrupt (NAND_EVTER_STAT). If there is only one, 47985ede63SLi Yang that interrupt reports both types of event. 48985ede63SLi Yang 49985ede63SLi Yang little-endian: 50985ede63SLi Yang type: boolean 51985ede63SLi Yang description: | 52985ede63SLi Yang If this property is absent, the big-endian mode will be in use as default 53985ede63SLi Yang for registers. 54985ede63SLi Yang 55985ede63SLi Yang ranges: 56985ede63SLi Yang description: | 57985ede63SLi Yang Each range corresponds to a single chipselect, and covers the entire 58985ede63SLi Yang access window as configured. 59985ede63SLi Yang 60985ede63SLi YangpatternProperties: 61985ede63SLi Yang "^.*@[a-f0-9]+(,[a-f0-9]+)+$": 62985ede63SLi Yang type: object 63985ede63SLi Yang description: | 64985ede63SLi Yang Child device nodes describe the devices connected to IFC such as NOR (e.g. 65985ede63SLi Yang cfi-flash) and NAND (fsl,ifc-nand). There might be board specific devices 66985ede63SLi Yang like FPGAs, CPLDs, etc. 67985ede63SLi Yang 68985ede63SLi Yang required: 69985ede63SLi Yang - compatible 70985ede63SLi Yang - reg 71985ede63SLi Yang 72985ede63SLi Yangrequired: 73985ede63SLi Yang - compatible 74985ede63SLi Yang - reg 75985ede63SLi Yang - interrupts 76985ede63SLi Yang 77985ede63SLi YangadditionalProperties: false 78985ede63SLi Yang 79985ede63SLi Yangexamples: 80985ede63SLi Yang - | 81985ede63SLi Yang soc { 82985ede63SLi Yang #address-cells = <2>; 83985ede63SLi Yang #size-cells = <2>; 84985ede63SLi Yang 85985ede63SLi Yang memory-controller@ffe1e000 { 86985ede63SLi Yang compatible = "fsl,ifc"; 87985ede63SLi Yang #address-cells = <2>; 88985ede63SLi Yang #size-cells = <1>; 89985ede63SLi Yang reg = <0x0 0xffe1e000 0 0x2000>; 90985ede63SLi Yang interrupts = <16 2 19 2>; 91985ede63SLi Yang little-endian; 92985ede63SLi Yang 93985ede63SLi Yang /* NOR, NAND Flashes and CPLD on board */ 94985ede63SLi Yang ranges = <0x0 0x0 0x0 0xee000000 0x02000000>, 95985ede63SLi Yang <0x1 0x0 0x0 0xffa00000 0x00010000>, 96985ede63SLi Yang <0x3 0x0 0x0 0xffb00000 0x00020000>; 97985ede63SLi Yang 98985ede63SLi Yang flash@0,0 { 99985ede63SLi Yang #address-cells = <1>; 100985ede63SLi Yang #size-cells = <1>; 101985ede63SLi Yang compatible = "cfi-flash"; 102985ede63SLi Yang reg = <0x0 0x0 0x2000000>; 103985ede63SLi Yang bank-width = <2>; 104985ede63SLi Yang device-width = <1>; 105985ede63SLi Yang 106985ede63SLi Yang partition@0 { 107985ede63SLi Yang /* 32MB for user data */ 108985ede63SLi Yang reg = <0x0 0x02000000>; 109985ede63SLi Yang label = "NOR Data"; 110985ede63SLi Yang }; 111985ede63SLi Yang }; 112985ede63SLi Yang }; 113985ede63SLi Yang }; 114